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

Stop allowing checkpoint cursors to attempt eviction

    • Storage Engines
    • 5
    • StorEng - 2024-01-23

      Automated testing uncovered a case where a user operation on a checkpoint cursor attempts to directly evict a page. That isn't currently safe - since the application thread transaction context is used for making visibility decisions.

      There is an assertion in place here src/evict/evict_page.c@870: __evict_reconcile to detect if such an eviction is attempted:

          WT_ASSERT(session, !F_ISSET(session->txn, WT_TXN_IS_CHECKPOINT));
      

      Which fired in a test case. The assertion fired when attempting to evict a page from the WiredTiger metadata because a cursor was configured to aggressively remove content from the cache when finished with it.

      We should update the code to no longer rely on the assertion, but instead to ensure that such a dirty page eviction is not attempted.

            Assignee:
            chenhao.qu@mongodb.com Chenhao Qu
            Reporter:
            alexander.gorrod@mongodb.com Alexander Gorrod
            Votes:
            0 Vote for this issue
            Watchers:
            10 Start watching this issue

              Created:
              Updated:
              Resolved: