As part of indirect reference resolution in prepared transactions, the transaction operation structure currently always refer the first update in the update chain. This assumption is wrong, first update might be from a different transaction in case of lower isolation levels.
So, need to ensure the update pointed by the transaction op is generated from this transaction itself.
Below is the bug reported:
test/format aborts with following assert.
t: process 29357
[1538620481:971700][29357:0x7f468cb49700], t, WT_SESSION.reset: __wt_txn_release_resources, 1281: txn->multi_update_count == 0
[1538620481:971729][29357:0x7f468cb49700], t, WT_SESSION.reset: __wt_abort, 30: aborting WiredTiger library
Aborted (core dumped)
############################################
- RUN PARAMETERS
############################################
abort=0
alter=0
auto_throttle=1
backups=1
bitcnt=1
bloom=1
bloom_bit_count=59
bloom_hash_count=22
bloom_oldest=0
cache=61
cache_minimum=0
checkpoints=wiredtiger
checkpoint_log_size=46
checkpoint_wait=75
checksum=on
chunk_size=5
compaction=0
compression=none
data_extend=0
data_source=table
delete_pct=54
dictionary=0
direct_io=0
encryption=none
evict_max=0
file_type=variable-length column-store
firstfit=0
huffman_key=0
huffman_value=0
independent_thread_rng=0
in_memory=0
insert_pct=21
internal_key_truncation=1
internal_page_max=9
isolation=random
key_gap=3
key_max=103
key_min=12
leaf_page_max=17
leak_memory=0
logging=0
logging_archive=1
logging_compression=none
logging_file_max=125400
logging_prealloc=0
long_running_txn=0
lsm_worker_threads=4
memory_page_max=4
merge_max=9
mmap=1
modify_pct=25
ops=50000
prefix_compression=1
prefix_compression_min=8
prepare=1
quiet=1
read_pct=0
rebalance=1
repeat_data_pct=13
reverse=0
rows=10000
runs=1
salvage=1
split_pct=67
statistics=0
statistics_server=0
threads=4
timer=360
timing_stress_checkpoint=0
timing_stress_lookaside_sweep=0
timing_stress_split_1=0
timing_stress_split_2=0
timing_stress_split_3=0
timing_stress_split_4=0
timing_stress_split_5=0
timing_stress_split_6=0
timing_stress_split_7=0
timing_stress_split_8=0
transaction_timestamps=1
transaction-frequency=71
truncate=1
value_max=1113
value_min=12
verify=1
wiredtiger_config=
write_pct=0
############################################
- is depended on by
-
WT-4220 Enable long running prepared support
- Closed