Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-30083

Schedule orphan range deletions sooner after migration

    XMLWordPrintable

Details

    • Task
    • Status: Closed
    • Major - P3
    • Resolution: Fixed
    • None
    • 3.6.0-rc0
    • Sharding
    • None
    • Fully Compatible
    • Sharding 2017-07-31, Sharding 2017-08-21, Sharding 2017-09-11, Sharding 2017-10-02
    • 0

    Description

      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.

      Attachments

        Issue Links

          Activity

            People

              nathan.myers Nathan Myers
              dianna.hohensee@mongodb.com Dianna Hohensee
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: