-
Type: Bug
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
StorEng - Refinement Pipeline
In WT-9446 and WT-9486 we have been running into problems with work units referencing a stale pointer for the tiered structure. In WT-9446 some infrastructure and other (needed) cleanup was done for schema-related operations. This ticket is to fix the work units to not use dhandle/tiered structure pointers.
I think the work will be some form of:
- Instead of the tiered structure, the work unit will store the tiered URI name.
- The getter functions will need to do a wt_session_get_dhandle call on the tiered name to reference it. That reference should cause other schema operations like drop to return EBUSY.
- The work unit free function wt_tiered_work_free will call wt_session_release_dhandle to release the reference.
Note that the free might need to release conditionally because the wt_tiered_remove_work function should not reference the dhandle. This function now needs to take the tiered URI instead of the tiered structure.