diff options
author | Benety Goh <benety@mongodb.com> | 2017-01-18 15:47:02 -0500 |
---|---|---|
committer | Benety Goh <benety@mongodb.com> | 2017-01-21 17:03:13 -0500 |
commit | 44743ea0c00dd3df1d297a08c7b69402d1a35f70 (patch) | |
tree | bb8eddf1b7a8c70a2797c7e8962f1271e054d70d | |
parent | bdece8fbb3e8e39e406b461ccb4933e127b4a13a (diff) | |
download | mongo-44743ea0c00dd3df1d297a08c7b69402d1a35f70.tar.gz |
SERVER-27741 fixed race in DataReplicatorTest::DataReplicatorResetsOnCompletionCallbackFunctionPointerUponCompletion
(cherry picked from commit 6a2af712f71774dae250c4cbe5f8ac695cfec3ea)
-rw-r--r-- | src/mongo/db/repl/data_replicator_test.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/mongo/db/repl/data_replicator_test.cpp b/src/mongo/db/repl/data_replicator_test.cpp index 524c95125b7..7fec2ca9862 100644 --- a/src/mongo/db/repl/data_replicator_test.cpp +++ b/src/mongo/db/repl/data_replicator_test.cpp @@ -833,6 +833,13 @@ TEST_F(DataReplicatorTest, DataReplicatorResetsOnCompletionCallbackFunctionPoint ASSERT_FALSE(sharedCallbackStateDestroyed); ASSERT_OK(dr->shutdown()); + + // Depending on which DataReplicator stage (_chooseSyncSource or _rollbackCheckerResetCallback) + // was interrupted by shutdown(), we may have to request the network interface to deliver + // cancellation signals to the DataReplicator callbacks in for DataReplicator to run to + // completion. + executor::NetworkInterfaceMock::InNetworkGuard(getNet())->runReadyNetworkOperations(); + dr->join(); ASSERT_EQUALS(ErrorCodes::CallbackCanceled, lastApplied); |