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

[4.2] Opening a transaction at the all durable timestamp can go backwards

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Blocker - P1 Blocker - P1
    • 4.2.12
    • Affects Version/s: None
    • Component/s: Storage
    • None
    • Fully Compatible
    • ALL
    • Sharding 2021-01-25
    • 33

      SERVER-41766 introduced ghost timestamps on a primary for multi-statement transactions doing a multikey write. This causes WT's perspective of the all durable timestamp to go backwards.

      To compensate, the method to get the all durable that the storage engine exposes ensures the value does not go backwards.

      However, the 4.2 version of reading at the all durable timestamp uses the API that can go backwards. This can result in causal reads not seeing their own writes when they are concurrent with other writers flipping multikey inside a multi statement transaction. Reading at the no overlap, however does use from the safe API.

      4.4 (and master) use the WTKVEngine call which protects them from this bug.

            daniel.gottlieb@mongodb.com Daniel Gottlieb (Inactive)
            daniel.gottlieb@mongodb.com Daniel Gottlieb (Inactive)
            0 Vote for this issue
            7 Start watching this issue