-
Type:
Improvement
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Catalog and Routing
-
🟦 Shard Catalog
-
None
-
None
-
None
-
None
-
None
-
None
In SERVER-105873, we encountered a bug where the query engine was caching raw pointers to objects owned by the catalog. These objects could be deleted during a yield and concurrent DDL, resulting in a dangling pointer and use-after-free.
In order to preemptively catch more of these class of bugs, it would be useful for the catalog to provide a mode with all copy-on-write and caching disabled and provide a deep copy on every access. This would result in every yield removing the only reference to that version of the catalog, destroying it. This would catch unsafe uses of the catalog.
We could use this mode in debug variants and/or the config fuzzer.
Ideas based on discussion with max.hirschhorn@mongodb.com.
- is related to
-
SERVER-105873 QueryPlannerParams should not maintain pointers owned by the IndexCatalogEntry
-
- Closed
-