From 65aeeff2a2d8a3c53a4c8ba3c1db61fd78076f5b Mon Sep 17 00:00:00 2001 From: Chaoguang Lin Date: Fri, 28 Oct 2022 18:03:22 -0700 Subject: [PATCH] Update long running tests configs and add more debugging info in the summary (#8615) * Disable simulation speedup knob and increase the trace limit for long running tests; Add some debugging info for the summary of long running tests * Solve comments --- contrib/TestHarness2/test_harness/run.py | 11 ++++++++--- contrib/TestHarness2/test_harness/summarize.py | 7 ++++++- contrib/TestHarness2/test_harness/timeout.py | 2 +- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/contrib/TestHarness2/test_harness/run.py b/contrib/TestHarness2/test_harness/run.py index d9c7238d1b..31ae326947 100644 --- a/contrib/TestHarness2/test_harness/run.py +++ b/contrib/TestHarness2/test_harness/run.py @@ -303,7 +303,6 @@ class TestRun: self.stats: str | None = stats self.expected_unseed: int | None = expected_unseed self.use_valgrind: bool = config.use_valgrind - self.long_running: bool = config.long_running self.old_binary_path: Path = config.old_binaries_path self.buggify_enabled: bool = buggify_enabled self.fault_injection_enabled: bool = True @@ -315,7 +314,7 @@ class TestRun: # state for the run self.retryable_error: bool = False self.summary: Summary = Summary(binary, uid=self.uid, stats=self.stats, expected_unseed=self.expected_unseed, - will_restart=will_restart) + will_restart=will_restart, long_running=config.long_running) self.run_time: int = 0 self.success = self.run() @@ -367,6 +366,11 @@ class TestRun: command += ['-b', 'on'] if config.crash_on_error: command.append('--crash') + if config.long_running: + # disable simulation speedup + command += ['--knob-sim-speedup-after-seconds=36000'] + # disable traceTooManyLines Error MAX_TRACE_LINES + command += ['--knob-max-trace-lines=1000000000'] self.temp_path.mkdir(parents=True, exist_ok=True) @@ -376,7 +380,8 @@ class TestRun: process = subprocess.Popen(command, stdout=subprocess.DEVNULL, stderr=subprocess.PIPE, cwd=self.temp_path, text=True, env=env) did_kill = False - timeout = 20 * config.kill_seconds if self.use_valgrind or self.long_running else config.kill_seconds + # No timeout for long running tests + timeout = 20 * config.kill_seconds if self.use_valgrind else (None if config.long_running else config.kill_seconds) err_out: str try: _, err_out = process.communicate(timeout=timeout) diff --git a/contrib/TestHarness2/test_harness/summarize.py b/contrib/TestHarness2/test_harness/summarize.py index 3ecfa2243b..a0271c37dc 100644 --- a/contrib/TestHarness2/test_harness/summarize.py +++ b/contrib/TestHarness2/test_harness/summarize.py @@ -291,11 +291,12 @@ class Summary: def __init__(self, binary: Path, runtime: float = 0, max_rss: int | None = None, was_killed: bool = False, uid: uuid.UUID | None = None, expected_unseed: int | None = None, exit_code: int = 0, valgrind_out_file: Path | None = None, stats: str | None = None, - error_out: str = None, will_restart: bool = False): + error_out: str = None, will_restart: bool = False, long_running: bool = False): self.binary = binary self.runtime: float = runtime self.max_rss: int | None = max_rss self.was_killed: bool = was_killed + self.long_running = long_running self.expected_unseed: int | None = expected_unseed self.exit_code: int = exit_code self.out: SummaryTree = SummaryTree('Test') @@ -396,6 +397,10 @@ class Summary: if self.was_killed: child = SummaryTree('ExternalTimeout') child.attributes['Severity'] = '40' + if self.long_running: + # debugging info for long-running tests + child.attributes['LongRunning'] = '1' + child.attributes['Runtime'] = str(self.runtime) self.out.append(child) self.error = True if self.max_rss is not None: diff --git a/contrib/TestHarness2/test_harness/timeout.py b/contrib/TestHarness2/test_harness/timeout.py index 90af7096fd..d2063c37d5 100644 --- a/contrib/TestHarness2/test_harness/timeout.py +++ b/contrib/TestHarness2/test_harness/timeout.py @@ -55,6 +55,6 @@ if __name__ == '__main__': summary.summarize_files(files) summary.out.dump(sys.stdout) else: - summary = Summary(Path('bin/fdbserver'), was_killed=True) + summary = Summary(Path('bin/fdbserver'), was_killed=True, long_running=config.long_running) summary.summarize_files(files) summary.out.dump(sys.stdout)