While running the test_random_abort or test_random_directio tests on the durable history branch is generating a core dump with the following call stack.
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51 #1 0x00007f1e200b7801 in __GI_abort () at abort.c:79 #2 0x000056073784d105 in __wt_abort (session=0x7f1e20c7aeb0) at ../src/os_common/os_abort.c:30 #3 0x0000560737818d2f in __wt_evict_file_exclusive_on (session=0x7f1e20c7aeb0) at ../src/evict/evict_lru.c:843 #4 0x00005607377ec0b5 in __wt_conn_dhandle_open (session=0x7f1e20c7aeb0, cfg=0x7f1e1e17b9a0, flags=0) at ../src/conn/conn_dhandle.c:433 #5 0x0000560737892adb in __wt_session_get_dhandle (session=0x7f1e20c7aeb0, uri=0x5607379ea686 "file:WiredTigerHS.wt", checkpoint=0x0, cfg=0x7f1e1e17b9a0, flags=0) at ../src/session/session_dhandle.c:504 #6 0x0000560737892a84 in __wt_session_get_dhandle (session=0x7f1e20c7aeb0, uri=0x5607379ea686 "file:WiredTigerHS.wt", checkpoint=0x0, cfg=0x7f1e1e17b9a0, flags=0) at ../src/session/session_dhandle.c:497 #7 0x0000560737892112 in __wt_session_get_btree_ckpt (session=0x7f1e20c7aeb0, uri=0x5607379ea686 "file:WiredTigerHS.wt", cfg=0x7f1e1e17b9a0, flags=0) at ../src/session/session_dhandle.c:320 #8 0x0000560737803beb in __wt_curfile_open (session=0x7f1e20c7aeb0, uri=0x5607379ea686 "file:WiredTigerHS.wt", owner=0x0, cfg=0x7f1e1e17b9a0, cursorp=0x7f1e1e17b990) at ../src/cursor/cur_file.c:806 #9 0x000056073787b903 in __session_open_cursor_int (session=0x7f1e20c7aeb0, uri=0x5607379ea686 "file:WiredTigerHS.wt", owner=0x0, other=0x0, cfg=0x7f1e1e17b9a0, cursorp=0x7f1e1e17b990) at ../src/session/session_api.c:464 #10 0x000056073787bcc7 in __wt_open_cursor (session=0x7f1e20c7aeb0, uri=0x5607379ea686 "file:WiredTigerHS.wt", owner=0x0, cfg=0x7f1e1e17b9a0, cursorp=0x7f1e1e17b990) at ../src/session/session_api.c:528 #11 0x000056073782431a in __wt_hs_cursor_open (session=0x7f1e20c7aeb0) at ../src/history/hs.c:220 #12 0x00005607378243c4 in __wt_hs_cursor (session=0x7f1e20c7aeb0, session_flags=0x7f1e1e17ba14) at ../src/history/hs.c:248 #13 0x000056073786b543 in __rec_hs_wrapup (session=0x7f1e20c7aeb0, r=0x7f1e143eb2e0) at ../src/reconcile/rec_write.c:2290 #14 0x000056073786ad69 in __rec_write_wrapup (session=0x7f1e20c7aeb0, r=0x7f1e143eb2e0, page=0x56073a607350) at ../src/reconcile/rec_write.c:2130 #15 0x00005607378661e8 in __reconcile (session=0x7f1e20c7aeb0, ref=0x56073a027be0, salvage=0x0, flags=86, page_lockedp=0x7f1e1e17bbaa) at ../src/reconcile/rec_write.c:200 #16 0x0000560737865dcd in __wt_reconcile (session=0x7f1e20c7aeb0, ref=0x56073a027be0, salvage=0x0, flags=86) at ../src/reconcile/rec_write.c:87 #17 0x000056073782265b in __evict_review (session=0x7f1e20c7aeb0, ref=0x56073a027be0, evict_flags=0, inmem_splitp=0x7f1e1e17bc7f) at ../src/evict/evict_page.c:630 #18 0x0000560737820ba2 in __wt_evict (session=0x7f1e20c7aeb0, ref=0x56073a027be0, previous_state=3, flags=0) at ../src/evict/evict_page.c:149 #19 0x000056073781d6a3 in __evict_page (session=0x7f1e20c7aeb0, is_server=true) at ../src/evict/evict_lru.c:2231 #20 0x0000560737819737 in __evict_lru_pages (session=0x7f1e20c7aeb0, is_server=true) at ../src/evict/evict_lru.c:1102 #21 0x00005607378186ac in __evict_pass (session=0x7f1e20c7aeb0) at ../src/evict/evict_lru.c:703 #22 0x0000560737817c05 in __evict_server (session=0x7f1e20c7aeb0, did_work=0x7f1e1e17be8a) at ../src/evict/evict_lru.c:376 #23 0x00005607378177ec in __wt_evict_thread_run (session=0x7f1e20c7aeb0, thread=0x5607399cf970) at ../src/evict/evict_lru.c:288 #24 0x00005607378a71aa in __thread_run (arg=0x5607399cf970) at ../src/support/thread_group.c:31 #25 0x00007f1e2046f6db in start_thread (arg=0x7f1e1e17c700) at pthread_create.c:463 #26 0x00007f1e2019888f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
[1581463387:604329][31977:0x7f1e1e17c700], file:WiredTigerHS.wt, eviction-server: __wt_evict_file_exclusive_on, 843: !F_ISSET(session, WT_SESSION_LOCKED_PASS) [1581463387:604365][31977:0x7f1e1e17c700], file:WiredTigerHS.wt, eviction-server: __wt_abort, 28: aborting WiredTiger library
The session has already set with WT_SESSION_LOCKED_PASS in __evict_server function, but while clearing the pages of the file from eviction queue, it checks that no one should lock the pass and it leads to an assert.