Lazy stable open on a step-down-created table assumes a follower, turning a search miss into a spurious WT_ROLLBACK

XMLWordPrintableJSON

    • Storage Engines - Foundations
    • 4.049
    • None
    • None

      A table created while the step-down timestamp is set has no stable constituent by design. On a search miss, the layered cursor lazily opens the stable constituent, and that lazy-open path unconditionally treats the deferred open as the follower case — the created-during-step-down state is not consulted there. Once the leader has completed any checkpoint (its own checkpoint is implicitly adopted, so the connection LSN is set), the follower-branch era check runs against the leader-era snapshot and refuses the bind.

      The result is that a plain search miss on such a table returns WT_ROLLBACK where WT_NOTFOUND is expected — no role transition needs to be involved at all. Retrying does not converge: each retried transaction is again a leader-era snapshot on the same leader, so the application keeps rolling back until the step-down actually completes.

      This is not urgent: there is no crash or wrong data, only a spurious retryable rollback in place of a not-found result.

            Assignee:
            [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            Ivan Kochin
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: