diff --git a/workloads/IMDB_extended/run_repeating_analytics.py b/workloads/IMDB_extended/run_repeating_analytics.py index 5e32b591..eac1e5f7 100644 --- a/workloads/IMDB_extended/run_repeating_analytics.py +++ b/workloads/IMDB_extended/run_repeating_analytics.py @@ -124,7 +124,11 @@ def noop(_signal, _frame): query_order = query_order_main.copy() # Signal that we're ready to start and wait for the controller. - print(f"Runner {runner_idx} is ready to start running.") + print( + f"Runner {runner_idx} is ready to start running.", + flush=True, + file=sys.stderr, + ) start_queue.put_nowait("") control_semaphore.acquire() # type: ignore @@ -132,7 +136,7 @@ def noop(_signal, _frame): # Note that `False` means to not block. should_exit = control_semaphore.acquire(False) # type: ignore if should_exit: - print(f"Runner {runner_idx} is exiting.") + print(f"Runner {runner_idx} is exiting.", file=sys.stderr, flush=True) break if execution_gap_dist is not None: @@ -249,6 +253,7 @@ def noop(_signal, _frame): os.fsync(file.fileno()) file.close() database.close_sync() + print(f"Runner {runner_idx} has exited.", flush=True, file=sys.stderr) def simulation_runner( @@ -769,6 +774,9 @@ def signal_handler(_signal, _frame): for p in processes: p.join() + for idx, p in enumerate(processes): + print("Runner {idx} exit code:", p.exitcode, flush=True, file=sys.stderr) + print("Done repeating analytics!", flush=True, file=sys.stderr)