Define whether or not cursor reset can throw WT_ROLLBACK

XMLWordPrintableJSON

    • Type: Improvement
    • Resolution: Fixed
    • Priority: Major - P3
    • WT11.3.0, 8.1.0-rc0
    • Affects Version/s: None
    • Component/s: Cursors
    • Storage Engines
    • 2024-07-23 - Mining crypto, 2024-08-06 - Withholding Tax
    • 5

      Until SERVER-81493, MongoDB made an assumption that WT_CURSOR::reset() would never return WT_ROLLBACK. That still appears to be true, but it's not well-defined in the API. We would like the WT API to explicitly tell us whether or not that is possible.

      We would prefer that reset() cannot throw WT_ROLLBACK, because we often reset cursors in destructors. Since we convert WT_ROLLBACK to WriteConflictExceptions, we risk crashing, since exceptions cannot be thrown in destructors.

        1. callgraph-to-wt-rollback.png
          379 kB
          Yury Ershov
        2. callgraph-to-wt-rollback.png
          333 kB
          Yury Ershov

              Assignee:
              Luke Pearson
              Reporter:
              Louis Williams
              Votes:
              0 Vote for this issue
              Watchers:
              17 Start watching this issue

                Created:
                Updated:
                Resolved: