-
Type: Bug
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
5
-
Storage Engines 2018-10-22, Storage Engines 2018-11-05, Storage Engines 2018-11-19, Storage Engines 2018-12-03, Storage Engines 2019-01-28, Storage Engines 2019-02-11, Storage Engines 2019-04-22, Storage Engines 2019-05-06
-
v3.6
Jenkins reported an error where reconciliation encountered a birthmark update referencing a deleted cell.
The Jenkins job failed with an assertion failure in reconciliation on ocelot. The assertion failure was:
[1538649381:68593][39477:0x7ffbc4b2e700], test_timestamp04.test_timestamp04.test_rollback_to_stable(nolog.col_var), file:ts04_ts_nologged.wt, eviction-server: __rec_append_orig_value, 1220: unpack != NULL && unpack->type != WT_CELL_DEL [1538649381:68789][39477:0x7ffbc4b2e700], test_timestamp04.test_timestamp04.test_rollback_to_stable(nolog.col_var), file:ts04_ts_nologged.wt, eviction-server: __wt_abort, 30: aborting WiredTiger library
The job is http://build.wiredtiger.com:8080/job/wiredtiger-test-timestamp-size/425/ and test_timestamp04 -s 1 failed.
Looking at the core file, the stack shows it is an eviction thread. It is:
#2 0x00007ffbc8fbfe00 in __wt_abort (session=0x35263d8) at ../src/os_common/os_abort.c:32 #3 0x00007ffbc8fdb1d5 in __rec_append_orig_value (session=0x35263d8, page=0x4278cb0, upd=0x6b87b20, unpack=0x7ffbc4b2db30) at ../src/reconcile/rec_write.c:1219 #4 0x00007ffbc8fdbcdf in __rec_txn_read (session=0x35263d8, r=0x7ffb9c0098b0, ins=0x2c604f0, ripcip=0x4278d00, vpack=0x7ffbc4b2db30, upd_savedp=0x0, updp=0x7ffbc4b2db20) at ../src/reconcile/rec_write.c:1607 #5 0x00007ffbc8fe2634 in __rec_col_var (session=0x35263d8, r=0x7ffb9c0098b0, pageref=0x82497c0, salvage=0x0) at ../src/reconcile/rec_write.c:4766 #6 0x00007ffbc8fd9597 in __wt_reconcile (session=0x35263d8, ref=0x82497c0, salvage=0x0, flags=138, lookaside_retryp=0x0) at ../src/reconcile/rec_write.c:474 #7 0x00007ffbc8f8a694 in __evict_review (session=0x35263d8, ref=0x82497c0, closing=false, inmem_splitp=0x7ffbc4b2dd7e) at ../src/evict/evict_page.c:685 #8 0x00007ffbc8f892d3 in __wt_evict (session=0x35263d8, ref=0x82497c0, closing=false, previous_state=5) at ../src/evict/evict_page.c:174 #9 0x00007ffbc8f862f1 in __evict_page (session=0x35263d8, is_server=false) at ../src/evict/evict_lru.c:2322 #10 0x00007ffbc8f82a29 in __evict_lru_pages (session=0x35263d8, is_server=false) at ../src/evict/evict_lru.c:1173 #11 0x00007ffbc8f80ba8 in __wt_evict_thread_run (session=0x35263d8, thread=0x9ac6300) at ../src/evict/evict_lru.c:318 #12 0x00007ffbc9021b98 in __thread_run (arg=0x9ac6300) at ../src/support/thread_group.c:31 #13 0x00007ffbd1bdddc5 in start_thread (arg=0x7ffbc4b2e700) at pthread_create.c:308
The assertion is failing because the unpack->type is WT_CELL_DEL:
cell.i: #define WT_CELL_DEL (4 << 4) /* Deleted value */ 1217 /* Add the original value after birthmarks. */ 1218 if (upd->type == WT_UPDATE_BIRTHMARK) { 1219 WT_ASSERT(session, unpack != NULL && 1220 unpack->type != WT_CELL_DEL); 1221 break; 1222 } 1223 (gdb) p unpack $1 = (WT_CELL_UNPACK *) 0x7ffbc4b2db30 (gdb) p *unpack $2 = {cell = 0x427a138, v = 148, data = 0x0, size = 0, __len = 3, prefix = 0 '\000', raw = 64 '@', type = 64 '@', ovfl = 0 '\000'}
- causes
-
WT-4759 Save a copy when an old overflow value is discarded
- Closed
- duplicates
-
WT-4431 assertion failure in test_timestamp04
- Closed
- is duplicated by
-
WT-4408 Core dump fired for larger timestamp size testing
- Closed
- related to
-
WT-4478 Reconciliation assertion during cursor update for VLCS
- Closed
- links to