Summary
ThreadPoolTest.NoWorkAfterShutdown hangs indefinitely when run under ThreadSanitizer (TSan), causing the CI job to time out.
Test Location
tests/unit/test_thread_pool.cpp:133
Repro
make compile.debug.tsan.native
./build/x86.debug.tsan/bin/concurrency_unit_tests --gtest_filter=ThreadPoolTest.NoWorkAfterShutdown
# Hangs indefinitely
Root Cause (Suspected)
The test calls pool.submit() after pool.shutdown(). Under TSan's overhead, this appears to cause a deadlock. The likely issue is that TSan slows execution enough that a race condition in the ThreadPool's shutdown/submit path manifests as a hang.
Current Workaround
Test disabled via DISABLED_NoWorkAfterShutdown prefix.
Investigation Needed
- Reproduce the hang under TSan locally
- Identify whether the ThreadPool has a deadlock in the submit-after-shutdown path
- Either fix the race or document why submit-after-shutdown is safe to be a no-op
🤖 Generated with Claude Code
Summary
ThreadPoolTest.NoWorkAfterShutdownhangs indefinitely when run under ThreadSanitizer (TSan), causing the CI job to time out.Test Location
tests/unit/test_thread_pool.cpp:133Repro
make compile.debug.tsan.native ./build/x86.debug.tsan/bin/concurrency_unit_tests --gtest_filter=ThreadPoolTest.NoWorkAfterShutdown # Hangs indefinitelyRoot Cause (Suspected)
The test calls
pool.submit()afterpool.shutdown(). Under TSan's overhead, this appears to cause a deadlock. The likely issue is that TSan slows execution enough that a race condition in the ThreadPool's shutdown/submit path manifests as a hang.Current Workaround
Test disabled via
DISABLED_NoWorkAfterShutdownprefix.Investigation Needed
🤖 Generated with Claude Code