-
Type:
Improvement
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Not Applicable
-
Storage Engines
-
22,379.278
-
2024-05-28 - FOLLOW ON SPRINT, 2024-06-11 - Dinosaurs go rawr
-
8
The function __conn_open_session has been suppressed in tsan_warnings.supp due to a race condition present in CONNECTION_API_CALL. CONNECTION_API_CALL is a macro that in turn calls a large number of other macros making it hard to identify where this race is coming from.
Initial investigation points towards some race in the WT_CONNECTION->session_array, however it's uncertain whether this is a valid warning. WiredTiger allocates the array once at startup and then reuses memory as sessions are created and closed, so TSan's memory location based instrumentation may be detecting a new session using the same memory location of a previously closed session. When a session is closed we only zero out part of the structure, so this may add additional complexity to the problem.
This ticket is to remove the TSan suppression of __conn_open_session, investigate the reported data race, and if possible resolve it. This ticket should be timeboxed, and if investigation isn't looking productive this ticket can be closed with the suppression still applied.
Repoduction steps:
- Compile under TSan
- Remove the suppression
- Run: while ctest -R "(ex_access|ex_col_store|ex_config_parse|ex_cursor|ex_event_handler|ex_extending|ex_extra_diagnostics|ex_extractor|ex_hello|ex_pack|ex_process|ex_schema|ex_smoke|ex_verbose|ex_thread)" -j $(nproc) ; do : ; done in build/examples/c.
- is related to
-
WT-18743 Data race on the connection's default session between concurrent WT_CONNECTION API calls
-
- In Progress
-