-
Type:
Task
-
Resolution: Unresolved
-
Priority:
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.