Details
-
Bug
-
Status: Closed
-
Major - P3
-
Resolution: Fixed
-
None
-
Fully Compatible
-
ALL
-
Repl 2018-01-29
-
0
Description
CollectionCloner::shutdown() may block waiting for the implicit join inside RemoteCommandRetryScheduler's destructor (while calling reset() in "_verifyCollectionDroppedScheduler").
collection_cloner.cpp |
void CollectionCloner::_cancelRemainingWork_inlock() { |
if (_arm) { |
Client::initThreadIfNotAlready();
|
_killArmHandle = _arm->kill(cc().getOperationContext());
|
}
|
_countScheduler.shutdown();
|
_listIndexesFetcher.shutdown();
|
if (_establishCollectionCursorsScheduler) { |
_establishCollectionCursorsScheduler->shutdown();
|
}
|
if (_verifyCollectionDroppedScheduler) { |
_verifyCollectionDroppedScheduler->shutdown();
|
_verifyCollectionDroppedScheduler.reset();
|
}
|
_dbWorkTaskRunner.cancel();
|
}
|
Attachments
Issue Links
- is related to
-
SERVER-31267 CollectionCloner fails if collection is dropped between getMore calls
-
- Closed
-