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

Create a session stash history buffer to track how and when a page gets freed

    • Type: Icon: Build Failure Build Failure
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Labels:
    • 5
    • StorEng - Defined Pipeline

      WT-11007 introduced some diagnostic information to track split history within pages. This was an attempt to improve the debuggability of bugs involving split generations, in particular, WT-10789. WT-10789 saw a segmentation fault when trying to access pindex on a page likely due to the page being free’d from another sessions stash. To improve this further we should add a similar history buffer to the session to track when we free the split-gen stash. By tracking this we could verify which thread freed the memory in WT-10789 and when. Here's an example of what that history would look like:
       

      Unable to find source-code formatter for language: java. Available languages are: actionscript, ada, applescript, bash, c, c#, c++, cpp, css, erlang, go, groovy, haskell, html, java, javascript, js, json, lua, none, nyan, objc, perl, php, python, r, rainbow, ruby, scala, sh, sql, swift, visualbasic, xml, yaml
      -exec p session->stash_hist[0]
      $2 = {
        name = 0x7ffff79c7cbb "WT_SESSION.commit_transaction", 
        func = 0x7ffff79ccdd0 <__PRETTY_FUNCTION__.0> "__stash_discard", 
        gen = 5, 
        oldest = 6, 
        time_sec = 1686035499, 
        line = 370, 
        len = 9
      }
      

            Assignee:
            backlog-server-storage-engines [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            sean.watt@mongodb.com Sean Watt
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: