Assert gets hit in debug build when the lookaside insertion fails.
Thread 1 "python" received signal SIGABRT, Aborted. __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51 51 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory. (gdb) bt #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51 #1 0x00007ffff7a24801 in __GI_abort () at abort.c:79 #2 0x00007ffff58b3b58 in __wt_abort (session=0x555555db22c0) at ../src/os_common/os_abort.c:30 #3 0x00007ffff593262a in __wt_txn_rollback (session=0x555555db22c0, cfg=0x0) at ../src/txn/txn.c:1265 #4 0x00007ffff57f306b in __wt_las_insert_block (cursor=0x555555e0b550, btree=0x555555e5e950, page=0x555555e6f410, multi=0x555555f9c720, key=0x555555e6f980) at ../src/cache/cache_las.c:776 #5 0x00007ffff58e9c5e in __rec_las_wrapup (session=0x555555db6620, r=0x555555fa9ea0) at ../src/reconcile/rec_write.c:2408 #6 0x00007ffff58e9340 in __rec_write_wrapup (session=0x555555db6620, r=0x555555fa9ea0, page=0x555555e6f410) at ../src/reconcile/rec_write.c:2230 #7 0x00007ffff58e46a1 in __reconcile (session=0x555555db6620, ref=0x555555d633d0, salvage=0x0, flags=138, lookaside_retryp=0x0, page_lockedp=0x7fffffffc49a) at ../src/reconcile/rec_write.c:209 #8 0x00007ffff58e4239 in __wt_reconcile (session=0x555555db6620, ref=0x555555d633d0, salvage=0x0, flags=138, lookaside_retryp=0x0) at ../src/reconcile/rec_write.c:102 #9 0x00007ffff58780fc in __evict_review (session=0x555555db6620, ref=0x555555d633d0, evict_flags=4, inmem_splitp=0x7fffffffc58f) at ../src/evict/evict_page.c:685 #10 0x00007ffff5876070 in __wt_evict (session=0x555555db6620, ref=0x555555d633d0, previous_state=5, flags=4) at ../src/evict/evict_page.c:149 #11 0x00007ffff5875e85 in __wt_page_release_evict (session=0x555555db6620, ref=0x555555d633d0, flags=0) at ../src/evict/evict_page.c:80 #12 0x00007ffff5782ada in __wt_page_release (session=0x555555db6620, ref=0x555555d633d0, flags=0) at ../src/include/btree.i:1455 #13 0x00007ffff57832e8 in __cursor_reset (cbt=0x555555e01040) at ../src/include/cursor.i:208 #14 0x00007ffff578338b in __cursor_func_init (cbt=0x555555e01040, reenter=true) at ../src/include/cursor.i:329 #15 0x00007ffff5786793 in __btcur_update (cbt=0x555555e01040, value=0x555555e01168, modify_type=4) at ../src/btree/bt_cursor.c:1242 #16 0x00007ffff5787637 in __wt_btcur_update (cbt=0x555555e01040) at ../src/btree/bt_cursor.c:1521 #17 0x00007ffff5832c83 in __curfile_update (cursor=0x555555e01040) at ../src/cursor/cur_file.c:356
Following is the assert code that hit when the lookaside transaction rollbacks.
1264 /* Assert it's not an update to the lookaside file. */ 1265 WT_ASSERT( 1266 session, S2C(session)->cache->las_fileid == 0 || !F_ISSET(op->btree, WT_BTREE_LOOKASIDE));
Correction:
Remove the assert, assert is wrong, it is possible that lookaside transaction can fail because of some reasons.