Due to changes introduced by the disagg merge we now obtain 2 references instead of 1 when we find an existing dhandle in the following code:
static int __session_find_shared_dhandle(WT_SESSION_IMPL *session, const char *uri, const char *checkpoint) { WT_DECL_RET; WT_WITH_HANDLE_LIST_READ_LOCK(session, if ((ret=__wt_conn_dhandle_find(session, uri, checkpoint)) ==0) WT_DHANDLE_ACQUIRE(session->dhandle)); // >> get first ref if (ret!=WT_NOTFOUND) // go to alloc since ret == 0 return (ret); WT_WITH_HANDLE_LIST_WRITE_LOCK(session, if ((ret=__wt_conn_dhandle_alloc(session, uri, checkpoint)) ==0) // ret == 0 since dhandle already exists WT_DHANDLE_ACQUIRE(session->dhandle)); // >> get second reference return (ret); }
Since this reference is not released later, dhandles couldn't be swept until the connection close in many cases.
Guilty commit: https://github.com/wiredtiger/wiredtiger/commit/50b05eb051ef702abbe2e07a7d5a995ffda904a7
- is related to
-
WT-15667 Handle abandoned checkpoints in PALite
-
- Closed
-
-
WT-15648 Fix memory heap-use-after-free issue when packing the internal page delta
-
- Closed
-
-
WT-15661 Memory leak in reconciliation in disagg
-
- Closed
-
-
WT-15658 Disable block cache in WT
-
- Closed
-
-
WT-15687 Add stat to track in-memory restorations due to invisible updates
-
- Closed
-
-
WT-15644 Add verbose logging for disagg checkpoints
-
- Closed
-
-
WT-15670 Fix verify output in test/format
-
- Closed
-
-
WT-15683 Fix comment describing __wt_btree_bytes_updates
-
- Closed
-
- related to
-
WT-15192 Incorrect comparison between local table and metadata checkpoint orders during pruning
-
- Closed
-
-
WT-15488 test_verify.py fails with mismatch in page IDs from PALM and btree walk
-
- Closed
-
-
WT-15640 __wti_page_inmem_updates assertion failure (disagg)
-
- Closed
-
-
WT-14885 Rewrite pages with delta directly to a full page
-
- Closed
-
-
WT-15413 Verify accounts for followers missing stable constituent prior to checkpoint pickup
-
- Closed
-
-
WT-15623 Add realtime output to run.py
-
- Closed
-
-
WT-15519 Abort when seeing OOO keys in __verify_row_key_order_check
-
- Closed
-
-
WT-15279 Fix race in prefetch where the same page is selected by two threads
-
- Closed
-
-
WT-15602 test/format (disagg.mode=switch) heap-use-after-free when comparing keys in disagg
-
- Closed
-
-
WT-15603 test_wt4105_large_doc_small_upd: assertion failure
-
- Closed
-