Details

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

      Description

      The page-split cleanup needs review and cleanup, there are a few different obvious problems:

      • wt_split_rewrite isn't discarding the newly created page on error
      • split_multi_inmem discards the replacement disk image which means on failure, the reconciliation state is corrupted
      • wt_split_insert doesn't get the accounting correct if the page-split fails.

      This is exacerbated by the new code that relies on split_parent locking the page (using the reconciliation lock), and returning EBUSY if the lock isn't available and the file is being checkpointed, to avoid deadlock. This makes it likely that a busy system can trigger one of these failures.

        Issue Links

          Activity

          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 #2249 from wiredtiger/wt-2126-panic-on-deepen

          WT-2126: __split_deepen() doesn't really need to panic
          Branch: develop
          https://github.com/wiredtiger/wiredtiger/commit/0766b6d7251310f6a0d8a98a191d66c6b8618e65

          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 #2249 from wiredtiger/wt-2126-panic-on-deepen WT-2126 : __split_deepen() doesn't really need to panic Branch: develop https://github.com/wiredtiger/wiredtiger/commit/0766b6d7251310f6a0d8a98a191d66c6b8618e65
          Hide
          xgen-internal-githook Githook User added a comment -

          Author:

          {u'username': u'keithbostic', u'name': u'Keith Bostic', u'email': u'keith@wiredtiger.com'}

          Message: WT-2126: panic if we see an error after possibly moving update lists
          from the original page to a newly instantiated page, we've corrupted
          the original page and cannot continue.
          Branch: develop
          https://github.com/wiredtiger/wiredtiger/commit/92006f5118ea47b6bd6dd84d46f8cec791d5d950

          Show
          xgen-internal-githook Githook User added a comment - Author: {u'username': u'keithbostic', u'name': u'Keith Bostic', u'email': u'keith@wiredtiger.com'} Message: WT-2126 : panic if we see an error after possibly moving update lists from the original page to a newly instantiated page, we've corrupted the original page and cannot continue. Branch: develop https://github.com/wiredtiger/wiredtiger/commit/92006f5118ea47b6bd6dd84d46f8cec791d5d950
          Hide
          xgen-internal-githook Githook User added a comment -

          Author:

          {u'username': u'keithbostic', u'name': u'Keith Bostic', u'email': u'keith@wiredtiger.com'}

          Message: WT-2126: instead of panicing on failure after moving the update chains
          to the new page, break the move into two parts: first reference the
          update chains from the new pages, and then once that's all done and
          the parent page has split, discard the original page's references.
          Branch: develop
          https://github.com/wiredtiger/wiredtiger/commit/c6be1a08767f4a5caafc7b8cba0f213592ab8342

          Show
          xgen-internal-githook Githook User added a comment - Author: {u'username': u'keithbostic', u'name': u'Keith Bostic', u'email': u'keith@wiredtiger.com'} Message: WT-2126 : instead of panicing on failure after moving the update chains to the new page, break the move into two parts: first reference the update chains from the new pages, and then once that's all done and the parent page has split, discard the original page's references. Branch: develop https://github.com/wiredtiger/wiredtiger/commit/c6be1a08767f4a5caafc7b8cba0f213592ab8342
          Hide
          xgen-internal-githook Githook User added a comment -

          Author:

          {u'username': u'keithbostic', u'name': u'Keith Bostic', u'email': u'keith@wiredtiger.com'}

          Message: WT-2126: Instead of leaking memory when a multi-page-split fails, set
          a flag on the newly created page, allowing us to discard it without
          freeing the updates (which are referenced by the original page).
          Branch: develop
          https://github.com/wiredtiger/wiredtiger/commit/9aee40b1e9cf4c9db0b8fc8f8579d5fe7ed81259

          Show
          xgen-internal-githook Githook User added a comment - Author: {u'username': u'keithbostic', u'name': u'Keith Bostic', u'email': u'keith@wiredtiger.com'} Message: WT-2126 : Instead of leaking memory when a multi-page-split fails, set a flag on the newly created page, allowing us to discard it without freeing the updates (which are referenced by the original page). Branch: develop https://github.com/wiredtiger/wiredtiger/commit/9aee40b1e9cf4c9db0b8fc8f8579d5fe7ed81259
          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 #2241 from wiredtiger/wt-2126-panic-on-failure

          WT-2126: clean up if there is an error during splits
          Branch: develop
          https://github.com/wiredtiger/wiredtiger/commit/346ad40308d143269884d47b67ad4519aa952da5

          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 #2241 from wiredtiger/wt-2126-panic-on-failure WT-2126 : clean up if there is an error during splits Branch: develop https://github.com/wiredtiger/wiredtiger/commit/346ad40308d143269884d47b67ad4519aa952da5

            People

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

              Dates

              • Created:
                Updated:
                Resolved:
                Days since reply:
                1 year, 31 weeks, 1 day ago
                Date of 1st Reply: