axiom_optimizer_tests fails intermittently on macOS CI with:
SharedArbitrator.cpp:358, Function:shutdown
Unexpected alive participants on destruction: query.q128.136
The failure occurs during test teardown when SharedArbitrator::shutdown finds a query participant still registered.
Root cause
QueryTestBase::waitForCompletion uses a 50ms timeout (50'000 microseconds) and silently swallows timeout exceptions. On loaded CI runners, 50ms can be insufficient for async task cleanup. When the timeout is silently ignored, the query's memory pool participant remains registered, and OperatorTestBase::TearDown → resetMemory destroys the arbitrator, which fails on the alive participant.
For comparison, LocalRunnerTest uses a 500ms timeout (500'000 microseconds).
Example failure
https://github.com/facebookincubator/axiom/actions/runs/24513051374/job/71649369546
axiom_optimizer_testsfails intermittently on macOS CI with:The failure occurs during test teardown when
SharedArbitrator::shutdownfinds a query participant still registered.Root cause
QueryTestBase::waitForCompletionuses a 50ms timeout (50'000 microseconds) and silently swallows timeout exceptions. On loaded CI runners, 50ms can be insufficient for async task cleanup. When the timeout is silently ignored, the query's memory pool participant remains registered, andOperatorTestBase::TearDown→resetMemorydestroys the arbitrator, which fails on the alive participant.For comparison,
LocalRunnerTestuses a 500ms timeout (500'000 microseconds).Example failure
https://github.com/facebookincubator/axiom/actions/runs/24513051374/job/71649369546