This work should be a strictly time boxed investigation into the root cause. The work here may be informed (or inform) any work in WT-12118.
The following reproducer generates a segfault.
Code diff that makes the sweep server aggressive:
diff --git a/test/csuite/wt2323_join_visibility/main.c b/test/csuite/wt2323_join_visibility/main.c index 326908bdeb..b0610a2f40 100644 --- a/test/csuite/wt2323_join_visibility/main.c +++ b/test/csuite/wt2323_join_visibility/main.c @@ -113,7 +113,9 @@ main(int argc, char *argv[]) testutil_snprintf(sharedopts->joinuri, sizeof(sharedopts->joinuri), "join:%s", opts->uri); testutil_check(wiredtiger_open(opts->home, NULL, - "create,cache_size=1G,statistics=(all),statistics_log=(json,on_close,wait=1)", &opts->conn)); + "create,cache_size=1G,statistics=(all),statistics_log=(json,on_close,wait=1),file_manager=(" + "close_scan_interval=1,close_idle_time=1,close_handle_minimum=0)", + &opts->conn)); test_join(opts, sharedopts, true, true); test_join(opts, sharedopts, true, false);
Test to execute:
cd ./test/csuite/wt2323_join_visibility ./test_wt2323_join_visibility
Output:
join thread 0 did 2624 joins join thread 1 did 2540 joins insert thread 0 did 417224 inserts, 82744 removes, 0 notfound, 32 rollbacks insert thread 1 did 417738 inserts, 82211 removes, 0 notfound, 51 rollbacks Segmentation fault (core dumped)
Stack trace:
#0 0x00007f664dc84c92 in __wt_schema_get_index (session=session@entry=0x7f664e335c78, uri=uri@entry=0x7fffa86a6fe0 "index:test_wt2323_join_visibility:flag", invalidate=invalidate@entry=true, quiet=quiet@entry=false, indexp=indexp@entry=0x7fffa86a6018) at ../src/schema/schema_open.c:542 #1 0x00007f664dc81886 in __drop_index (session=session@entry=0x7f664e335c78, uri=uri@entry=0x7fffa86a6fe0 "index:test_wt2323_join_visibility:flag", force=force@entry=false, cfg=cfg@entry=0x7fffa86a6510) at ../src/schema/schema_drop.c:83 #2 0x00007f664dc81ebf in __schema_drop (session=0x7f664e335c78, uri=uri@entry=0x7fffa86a6fe0 "index:test_wt2323_join_visibility:flag", cfg=cfg@entry=0x7fffa86a6510) at ../src/schema/schema_drop.c:345 #3 0x00007f664dc816a0 in __wt_schema_drop (session=session@entry=0x7f664e335c78, uri=uri@entry=0x7fffa86a6fe0 "index:test_wt2323_join_visibility:flag", cfg=cfg@entry=0x7fffa86a6510) at ../src/schema/schema_drop.c:393 #4 0x00007f664dc989fd in __session_drop (wt_session=0x7f664e335c78, uri=0x7fffa86a6fe0 "index:test_wt2323_join_visibility:flag", config=<optimized out>) at ../src/session/session_api.c:1249 #5 0x0000000000402c1b in test_join (opts=opts@entry=0x7fffa86a6ac0, sharedopts=sharedopts@entry=0x7fffa86a6de0, bloom=bloom@entry=true, sometimes_remove=sometimes_remove@entry=true) at ../test/csuite/wt2323_join_visibility/main.c:214 #6 0x0000000000403b9e in main (argc=<optimized out>, argv=<optimized out>) at ../test/csuite/wt2323_join_visibility/main.c:120
Gdb shows that the indices array has been freed:
(gdb) p table->nindices $1 = 3 (gdb) p table->indices $2 = (WT_INDEX **) 0x0 (gdb) p table->idx_alloc $3 = 0
- is duplicated by
-
WT-13196 test_wt2323_join_visibility index segmentation fault with aggressive sweep server
- Closed