-
Type: Improvement
-
Resolution: Works as Designed
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Internal Code
-
None
-
Service Arch
While working on SERVER-53035 unittest::ThreadAssertionMonitor, it was found that stdx::condition_variable would segfault or hit invariants where std::condition would succeed reliably.
The segfaults and invariants were observed in the SharedFuture concurrency tests, which are the first clients of the ThreadAssertionMonitor.
There's a note in thread_assertion_monitor.h, next to the _cv variable about it.
Changing _cv back to stdx::condition_variable for experimentation should reproduce the bug. It was readily observable.
It's also possible that ThreadAssertionMonitor's use of _cv is incorrect somehow and we haven't thought about it hard enough to see how.
- related to
-
SERVER-53035 provide a way to ASSERT from a non-main thread in unit tests
- Closed