-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Minor - P4
-
Affects Version/s: None
-
Component/s: None
-
None
-
Replication
-
Fully Compatible
-
ALL
-
-
0
-
None
-
None
-
None
-
None
-
None
-
None
-
None
The test hangs because shutdown() causes _finishCallback to be scheduled on _exec->scheduleWork(), which enqueues a task into the ThreadPoolMock. But the mock's single worker thread is blocked in NetworkInterfaceMock::waitForWork() and nobody signals it to wake up. The task sits in the queue forever, so _finishCallback never runs and the failpoint is never hit.
The sibling test (InitialSyncerResetsOnCompletionCallbackFunctionPointerUponCompletion) handles this correctly by calling NetworkInterfaceMock::InNetworkGuard(getNet())->runReadyNetworkOperations() after shutdown() to wake the mock executor thread.
Fix: Add executor::NetworkInterfaceMock::InNetworkGuard(getNet())->runReadyNetworkOperations() between shutdown() and waitForTimesEntered() in the test.