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

Make sweep server respect WT_DHANDLES_DROPPED flag plus prevent user creating a bulk cursor when a transaction is running

    • 3
    • 2023-05-16 Chook-n-Nuts Farm, 2023-05-02 StorEng Bug Bash, 2023-05-30 - 7.0 Readiness
    • v7.0, v6.0, v5.0

      The goal of this ticket was to create a reproducer, and then a fix, for a range of seemingly related tickets for problems that had been found in specific, and initially hard to repro, scenarios around cursors (including bulk cursors), the sweep server, and use-after-free ASAN/MSAN errors. 

      During the work on this ticket, it became clear that there were actually two seperate issues, each of which was related to one or more BFs:

      Issue #1: The sweep server incorrectly ignored WT_DHANDLE_DROPPED. 

      • Main symptom is an ASAN use-after-free error, very easily reproducible in the new tests written as part of this ticket.
      • The sweep server frees the dhandle/memory too early when it shouldn’t
      • This is a duplicate of WT-11055/BF-28710, which we’ve not yet been able to reproduce directly. After more work, we no longer believe these are duplicates.
      • BF-28485 partially duplicates this ticket (BF-28485 requires this fix, but also requires additional changes).
      • NOTE: this change caused testing fallout and was reverted by WT-11143

      Issue #2: Assert/abort triggered by metadata rollback caused by a user creating a bulk cursor when a transaction is running

      • __wt_txn_rollback() has an assert to check that metadata updates should never be rolled back. This assert is being triggered in a test case using a bulk cursor. It is very easily reproducible in the new tests written as part of this ticket.
      • This is a duplicate of WT-10751 and WT-10677.

       

       

            Assignee:
            jeremy.thorp@mongodb.com Jeremy Thorp
            Reporter:
            jeremy.thorp@mongodb.com Jeremy Thorp
            Votes:
            0 Vote for this issue
            Watchers:
            10 Start watching this issue

              Created:
              Updated:
              Resolved: