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

Make IndexCatalog::resetUnfinishedIndexForRecovery retry the drop

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 8.1.0-rc0
    • Affects Version/s: 8.1.0-rc0, 7.0.13, 8.0.0-rc12
    • Component/s: None
    • None
    • RSS Sydney
    • Fully Compatible
    • ALL
    • v8.0, v7.3, v7.0
    • RSS Sydney - 2024-07-23, RSS Sydney - 2024-08-06
    • 200

      from BF-34053 it is possible to EBUSY during recovery, which the server doesn't handle well (it crashes)

       

      The underlying cause is https://github.com/mongodb/mongo/blob/76668d15b512e334dba15f49ec0a0dc217b1f903/src/mongo/db/catalog/index_catalog_impl.cpp#L1316 where we drop+create indices that were incompletely built when recovery began.

      The proposed fix is to remove all of the index entries (using truncate) rather than drop+create

            Assignee:
            nic.hollingum@mongodb.com Nic Hollingum
            Reporter:
            nic.hollingum@mongodb.com Nic Hollingum
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: