Schedule orphan range deletions sooner after migration

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Fixed
    • Priority: Major - P3
    • 3.6.0-rc0
    • Affects Version/s: None
    • Component/s: Sharding
    • None
    • Fully Compatible
    • Sharding 2017-07-31, Sharding 2017-08-21, Sharding 2017-09-11, Sharding 2017-10-02
    • 0
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None

      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.

            Assignee:
            Nathan Myers (Inactive)
            Reporter:
            Dianna Hohensee (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: