-
Type:
Improvement
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Cursors
-
None
-
Storage Engines, Storage Engines - Foundations
-
460.71
-
None
-
None
We explicitly do not cache metadata cursors:
/* Cursors on metadata should not be cached, doing so interferes with named checkpoints. */ if (cacheable && strcmp(WT_METAFILE_URI, cursor->internal_uri) != 0) F_SET(cursor, WT_CURSTD_CACHEABLE);
We should understand this and see if this is still the case. There's more going on, because if we remove the metadata check and run test_base01.py, we get a bad access here:
frame #0: 0x0000000105ef5154 libwiredtiger.12.0.0.dylib`__wt_atomic_load_uint64_v_relaxed(vp=0x0000000000000008) at gcc.h:398:1
frame #1: 0x0000000105ef4f40 libwiredtiger.12.0.0.dylib`__wt_txn_release_snapshot(session=0x00000007f8588000) at txn.c:102:5
frame #2: 0x0000000105aede20 libwiredtiger.12.0.0.dylib`__wt_txn_read_last(session=0x00000007f8588000) at txn_inline.h:2328:9
frame #3: 0x0000000105ae2ca8 libwiredtiger.12.0.0.dylib`__cursor_reset(cbt=0x00000007f9579400) at cursor_inline.h:279:9
frame #4: 0x0000000105aea1ac libwiredtiger.12.0.0.dylib`__wt_btcur_close(cbt=0x00000007f9579400, lowlevel=false) at bt_cursor.c:1991:15
frame #5: 0x0000000105c9d628 libwiredtiger.12.0.0.dylib`__curfile_close(cursor=0x00000007f9579400) at cur_file.c:639:5
frame #6: 0x0000000105e5e65c libwiredtiger.12.0.0.dylib`__session_close_cursors(session=0x00000007f8588000, cursors=0x00000007f8082420) at session_api.c:280:9
frame #7: 0x0000000105e5e7b8 libwiredtiger.12.0.0.dylib`__session_close_cached_cursors(session=0x00000007f8588000) at session_api.c:300:9
frame #8: 0x0000000105e5d258 libwiredtiger.12.0.0.dylib`__wt_session_close_internal(session=0x00000007f8588000) at session_api.c:380:5
frame #9: 0x0000000105c5afb4 libwiredtiger.12.0.0.dylib`__wti_connection_close(conn=0x00000007f805c000) at conn_open.c:187:9
frame #10: 0x0000000105c18770 libwiredtiger.12.0.0.dylib`__conn_close(wt_conn=0x00000007f805c000, config=0x0000000000000000) at conn_api.c:1295:5
If this can be fixed, we should see if we can tighten up the python test in changes from WT-17124. Right now, it has a lot of slop in calculating the number of cursors that should be created vs cached because of the metadata cursors that cannot be cached.
- is related to
-
WT-17124 Investigate/Fix cursor caching
-
- Closed
-