Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-37406

A stashed Locker should keep information about the owning transaction

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 4.1.8, 4.0.15
    • Component/s: None
    • Labels:
      None
    • Backwards Compatibility:
      Fully Compatible
    • Backport Requested:
      v4.0
    • Sprint:
      Storage NYC 2019-01-14, Storage NYC 2019-01-28
    • Linked BF Score:
      62

      Description

      When the hang analyzer runs, it prints information and address of the LockRequests and Lockers for each thread. If that Locker is owned by an idle, stashed transaction, something like this is printed:

      LockRequest 795830 @ 0x7FD023737680: Mode = IX; Thread = thread::id of a non-executing thread
      

      This is pretty useless to a debugger, because the information about which session and transaction own that Locker is not attainable from this output. Instead it requires finding the SessionCatalog and searching through the list of sessions.

      When unsetThreadId() is called, we should replace the thread ID with the owning session ID, or just always keep a reference to the session ID on the locker.

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                1 Vote for this issue
                Watchers:
                7 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: