Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-11871

Define whether or not cursor reset can throw WT_ROLLBACK

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

      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
          callgraph-to-wt-rollback.png
          379 kB
        2. callgraph-to-wt-rollback.png
          callgraph-to-wt-rollback.png
          333 kB

            Assignee:
            luke.pearson@mongodb.com Luke Pearson
            Reporter:
            louis.williams@mongodb.com Louis Williams
            Votes:
            0 Vote for this issue
            Watchers:
            16 Start watching this issue

              Created:
              Updated:
              Resolved: