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

A race in eviction determining whether an internal page is dirty

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: WT2.7.0
    • Labels:
      None
    • # Replies:
      4
    • Last comment by Customer:
      true

      Description

      There was a test/format failure in Jenkins that triggered the following assertion:

      t, file:wt, eviction-worker: ../src/btree/bt_discard.c, 57: !__wt_page_is_modified(page)
      

      i.e: That a page is clean when we are attempting to discard it. The particular page is an internal page and all of it's children are marked deleted.

      Failure:
      http://build.wiredtiger.com:8080/job/wiredtiger-test-format-stress/9003/

        Issue Links

          Activity

          Hide
          alexander.gorrod Alexander Gorrod added a comment -

          There was a change to __evict_review recently that switched the order of the is evictable and is modified checks. The change was related to code shuffling triggered by WT-2178.

          There is nothing stopping a child ref being switching from WT_REF_MEM to WT_REF_DISK while eviction is walking the index of child pages. If that happens the parent page will become modified.

          Show
          alexander.gorrod Alexander Gorrod added a comment - There was a change to __evict_review recently that switched the order of the is evictable and is modified checks. The change was related to code shuffling triggered by WT-2178 . There is nothing stopping a child ref being switching from WT_REF_MEM to WT_REF_DISK while eviction is walking the index of child pages. If that happens the parent page will become modified.
          Hide
          xgen-internal-githook Githook User added a comment -

          Author:

          {u'username': u'agorrod', u'name': u'Alex Gorrod', u'email': u'alexg@wiredtiger.com'}

          Message: WT-2192 Fix the logic around checking whether internal page is evictable.

          There is a race between checking whether all children are in state
          WT_REF_DISK and whether the internal page is modified.
          Branch: develop
          https://github.com/wiredtiger/wiredtiger/commit/72efdadb71084ba15887e5950e81998277435392

          Show
          xgen-internal-githook Githook User added a comment - Author: {u'username': u'agorrod', u'name': u'Alex Gorrod', u'email': u'alexg@wiredtiger.com'} Message: WT-2192 Fix the logic around checking whether internal page is evictable. There is a race between checking whether all children are in state WT_REF_DISK and whether the internal page is modified. Branch: develop https://github.com/wiredtiger/wiredtiger/commit/72efdadb71084ba15887e5950e81998277435392
          Hide
          xgen-internal-githook Githook User added a comment -

          Author:

          {u'username': u'michaelcahill', u'name': u'Michael Cahill', u'email': u'michael.cahill@mongodb.com'}

          Message: Merge pull request #2281 from wiredtiger/evict-clean-internal

          WT-2192 Fix the logic around checking whether internal page is evictable.
          Branch: develop
          https://github.com/wiredtiger/wiredtiger/commit/4ba56985d6cb290e1981018fd04b017f5dcdad90

          Show
          xgen-internal-githook Githook User added a comment - Author: {u'username': u'michaelcahill', u'name': u'Michael Cahill', u'email': u'michael.cahill@mongodb.com'} Message: Merge pull request #2281 from wiredtiger/evict-clean-internal WT-2192 Fix the logic around checking whether internal page is evictable. Branch: develop https://github.com/wiredtiger/wiredtiger/commit/4ba56985d6cb290e1981018fd04b017f5dcdad90
          Hide
          xgen-internal-githook Githook User added a comment -

          Author:

          {u'username': u'agorrod', u'name': u'Alex Gorrod', u'email': u'alexg@wiredtiger.com'}

          Message: WT-2192 Update a comment to describe a race condition better.
          Branch: develop
          https://github.com/wiredtiger/wiredtiger/commit/a3019fcc09f00dd104efb675dd3df4bc564e08bb

          Show
          xgen-internal-githook Githook User added a comment - Author: {u'username': u'agorrod', u'name': u'Alex Gorrod', u'email': u'alexg@wiredtiger.com'} Message: WT-2192 Update a comment to describe a race condition better. Branch: develop https://github.com/wiredtiger/wiredtiger/commit/a3019fcc09f00dd104efb675dd3df4bc564e08bb

            People

            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:
                Days since reply:
                1 year, 33 weeks, 5 days ago
                Date of 1st Reply: