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

Reset cursor bounds on the first entry to the API either in the file or the table cursor implementation

    • Type: Icon: New Feature New Feature
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • WT11.1.0, 6.2.0-rc0, 6.1.0-rc2
    • Affects Version/s: None
    • Component/s: None
    • None
    • 5
    • Storage Engines - 2022-08-22, Storage Engines - 2022-09-05

      Occasionally WiredTiger calls top level API functions internally. In one case complex tables will call reset on all the cursors held for each colgroup. If those cursors have bounds applied the bounds reset logic will take place and they will have their bounds unintentionally cleared.

      To fix this we should only reset bounds when cursor->reset() is called by a user instead of by WT. To check we can use the api_call_counter held on the session to guarantee the API was called externally, then we reset the bounds on the cursor.

      A macro should be written to check the API call counter so it can be standardized across use case, and the logic should be added to the file cursor and possibly the table cursor as it may call into the file cursor.

      Testing should be written to validate the logic.

            Assignee:
            jie.chen@mongodb.com Jie Chen
            Reporter:
            luke.pearson@mongodb.com Luke Pearson
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: