This commit, which was subsequently reverted, caused a test hang in CollectionRangeDeleter::DeleteNotification::waitStatus: https://github.com/mongodb/mongo/commit/344bf6e257e1427bc594bacac3f5983c2bdeaacf The hang can be seen in this build https://evergreen.mongodb.com/task/mongodb_mongo_master_enterprise_rhel_62_64_bit_slow1_344bf6e257e1427bc594bacac3f5983c2bdeaacf_17_07_07_12_44_23 and in the linked BF-5886. The CollectionRangeDeleter functions called in moveChunk were changed in the above commit. It seems to have unwittingly surfaced a bug.
The original sequence of range deleter calls was
- DeleteNotification notification = cleanUpRange()
- notification.abandon()
- waitForClean()
The failed commit did
- DeleteNotification notification = cleanUpRange()
- notification.waitStatus() <-- hangs non-deterministically, though frequent enough to be reproducible
There's no corresponding "Finished deleting mr_during_migrate.coll range ...." message after the donor finishes the migration and starts waiting in the hung test logs. And one of the thread dumps has CollectionRangeDeleter::DeleteNotification::waitStatus in it.
- related to
-
SERVER-29745 Range deletion after moving away a chunk must wait for metadata update to finish before proceeding
- Closed