Skip to content

Commit 822074c

Browse files
authored
Merge pull request #283 from Venkat-Kunaparaju/debug-enhance
Add debug logging for test failures and suppress expected block errors
2 parents d679e9c + 48e97f9 commit 822074c

3 files changed

Lines changed: 56 additions & 4 deletions

File tree

task.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -996,6 +996,14 @@ def aggregate_output(self, tft_result_builder: tftbase.TftResultBuilder) -> None
996996

997997
if not result.success:
998998
logger.warn(f"Result of {type(self).__name__} failed: {result.eval_msg}")
999+
logger.debug(
1000+
f"Failure details: pod={self.pod_name}, "
1001+
f"port={getattr(self, 'port', 'N/A')}, "
1002+
f"node={self.node_name}, "
1003+
f"test_type={getattr(self, 'test_type', 'N/A')}, "
1004+
f"connection_mode="
1005+
f"{getattr(self, 'connection_mode', 'N/A')}"
1006+
)
9991007
else:
10001008
self._aggregate_output_log_success(result)
10011009

@@ -1187,6 +1195,11 @@ def confirm_server_alive(self) -> None:
11871195
)
11881196
if not r:
11891197
logger.error(f"Failed to start server {self.pod_name}: {r.err}")
1198+
logger.debug(
1199+
f"Server startup failure details: pod={self.pod_name}, "
1200+
f"port={self.port}, node={self.node_name}, "
1201+
f"connection_mode={self.connection_mode.name}"
1202+
)
11901203
raise RuntimeError(f"Failed to start server {self.pod_name}: {r.err}")
11911204

11921205
if not self.pre_provisioning:
@@ -1264,6 +1277,11 @@ def _wait_for_server_listening(self) -> None:
12641277
check_port = self.external_port if is_external else self.port
12651278
error_msg = f"Server failed to start listening on port {check_port} within {max_wait_time}s"
12661279
logger.error(error_msg)
1280+
logger.debug(
1281+
f"Server listen timeout: pod={self.pod_name}, "
1282+
f"port={self.port}, node={self.node_name}, "
1283+
f"connection_mode={self.connection_mode.name}"
1284+
)
12671285
raise RuntimeError(error_msg)
12681286

12691287
@abstractmethod

testTypeHttp.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,8 @@ def _check_success_podman(r: host.Result) -> bool:
8787
err="",
8888
)
8989

90+
expects_blocked = self.ts.test_case_id.info.expects_blocked
91+
9092
def _thread_action() -> BaseOutput:
9193
self.ts.clmo_barrier.wait()
9294

@@ -99,7 +101,7 @@ def _thread_action() -> BaseOutput:
99101
end_timestamp = time.monotonic() + self.get_duration() - sleep_time
100102

101103
while True:
102-
r = self.run_oc_exec(cmd)
104+
r = self.run_oc_exec(cmd, may_fail=expects_blocked)
103105
if not _check_success(r):
104106
break
105107
if time.monotonic() >= end_timestamp:
@@ -120,6 +122,17 @@ def _thread_action() -> BaseOutput:
120122
else:
121123
msg = f'Output of "{cmd}" failed: {r.debug_msg()[:100]}'
122124

125+
if not success and not expects_blocked:
126+
logger.debug(
127+
f"HTTP failure context: "
128+
f"client_pod={self.pod_name}, "
129+
f"server_pod={self.server.pod_name}, "
130+
f"server_port={self.server.port}, "
131+
f"node={self.node_name}, "
132+
f"exit_code={r.returncode}, "
133+
f"error={r.err.strip()!r}"
134+
)
135+
123136
# For deny tests, curl failing to connect is the expected outcome.
124137
test_metadata = self.ts.get_test_metadata()
125138
if test_metadata.expects_blocked:

testTypeIperf.py

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -156,9 +156,11 @@ def _create_task_operation(self) -> TaskOperation:
156156
if self.reverse:
157157
cmd += f" {IPERF_REV_OPT}"
158158

159+
expects_blocked = self.ts.test_case_id.info.expects_blocked
160+
159161
def _thread_action() -> BaseOutput:
160162
self.ts.clmo_barrier.wait()
161-
r = self.run_oc_exec(cmd)
163+
r = self.run_oc_exec(cmd, may_fail=expects_blocked)
162164
self.ts.event_client_finished.set()
163165

164166
success = True
@@ -168,9 +170,20 @@ def _thread_action() -> BaseOutput:
168170
if not r.success:
169171
success = False
170172
msg = f'Command "{cmd}" failed: {r.debug_msg()}'
173+
if not expects_blocked:
174+
logger.debug(
175+
f"iperf3 failure context: "
176+
f"client_pod={self.pod_name}, "
177+
f"server_pod={self.server.pod_name}, "
178+
f"server_port={self.server.port}, "
179+
f"node={self.node_name}, "
180+
f"exit_code={r.returncode}, "
181+
f"error={r.err.strip()!r}"
182+
)
171183

172-
# Log raw output for debugging
173-
logger.debug(f"iperf3 raw output: {repr(r.out)}")
184+
if not expects_blocked:
185+
# Log raw output for debugging
186+
logger.debug(f"iperf3 raw output: {repr(r.out)}")
174187

175188
if success:
176189
try:
@@ -195,6 +208,14 @@ def _thread_action() -> BaseOutput:
195208
if "error" in result:
196209
success = False
197210
msg = f'Output of "{cmd}" contains "error": {r.debug_msg()}'
211+
if not expects_blocked:
212+
logger.debug(
213+
f"iperf3 reported error: "
214+
f"client_pod={self.pod_name}, "
215+
f"server_pod={self.server.pod_name}, "
216+
f"server_port={self.server.port}, "
217+
f"error={result.get('error', '')!r}"
218+
)
198219

199220
bitrate_gbps = _calculate_gbps(self.test_type, result)
200221
if success:

0 commit comments

Comments
 (0)