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

While a split or merge is being committed change streams can return a hwm token that skips events on the recipient.

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 7.1.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • None
    • Fully Compatible
    • ALL
    • QE 2023-05-15

      after the donor has reached the block timestamp it won't allow any more writes so normal resume tokens from an an actual change event can't be higher than block timestamp, but it can still generate high water mark tokens above the block time stamp. if a write happens on the recipient after the commit it could be skipped if the hwmt is higher than the cluster time of that write on the recipient.

      an easy solution is to disable this block https://github.com/mongodb/mongo/blob/983d4ca5e0c50d644c64be42bd59df481dee0a57/src/mongo/db/exec/collection_scan.cpp#L256-L260 to avoid returning tokens higher than the last write. This solution only works for replica sets and we will need to revisit this problem while working on sub-tenant splits and sharding support for serverless

            Assignee:
            mickey.winters@mongodb.com Mickey Winters
            Reporter:
            mickey.winters@mongodb.com Mickey Winters
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: