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

Save more information when the connection cannot be closed gracefully

    • Type: Icon: Task Task
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Not Applicable
    • None
    • Storage Engines
    • 5
    • StorEng - Refinement Pipeline

      When the connection is getting closed, we call several functions that perform some cleanup (__wt_session_array_walk, __wt_txn_activity_drain, etc). Each function returns an error code that is ignored - if one function does not return 0, we keep going but we do save the error code through WT_TRET.

      Because of this, an application may observe a non-zero error code when closing the connection without knowing exactly why and this makes the diagnosis complicated. This ticket should improve this, here are a few possible solutions:

      • We could log a message after each call that is not successful.
        • We could enhance the WT_TRET macro, create a new one or we could only add those logs inside the connection.close() function.
      • We could expand the WT_SESSION struct with a new struct to save information about each non-zero error code encountered inside a function, and then print that new struct at some point, for example at the end of the function.
      • Use what has been added in SPM-3810 - there might be more work needed to make it work with connection APIs.

            Assignee:
            backlog-server-storage-engines [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            etienne.petrel@mongodb.com Etienne Petrel
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: