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

findAndModify deletes unconditionally write preImage no-op oplog entries, leading to crash during chunk migration

    • Fully Compatible
    • ALL
    • v5.0, v4.4
    • Repl 2021-05-03, Repl 2021-06-14
    • 127

      OpObserverImpl::onDelete() is always called with engaged deletedDoc value for findAndModify deletes.

      The consequences of this are two-fold:

      1. findAndModify deletes within a multi-statement transaction write preImage no-op oplog entries, even when the recordPreImages collection option is set to false (the default). This leads to write amplification akin to SERVER-45442.
      2. preImage no-oplog entries from multi-statement transaction deletes do not include session information. This leads donor shards in chunk migrations to crash when parsing them.

            Assignee:
            daniel.gottlieb@mongodb.com Daniel Gottlieb (Inactive)
            Reporter:
            max.hirschhorn@mongodb.com Max Hirschhorn
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: