Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-11245

__rec_upd_select: unexpected prepared update in WT_PREPARE_LOCKED state

    • Type: Icon: Bug Bug
    • Resolution: Duplicate
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Labels:
    • 2023-07-25 Absolute unit

      During the investigation of WT-11242, the following bug occurred:

      [2023/06/30 03:35:40.018] #0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
      [2023/06/30 03:35:40.129] #1  0x00007f131eefa859 in __GI_abort () at abort.c:79
      [2023/06/30 03:35:40.129] #2  0x00007f131f83ccfd in __wt_abort (session=<optimized out>) at /data/mci/f2e1962e802874bdce054acd1e7df144/wiredtiger/src/os_common/os_abort.c:30
      [2023/06/30 03:35:40.129] #3  0x00007f131f8a7783 in __rec_upd_select (session=0x1889498, r=<optimized out>, first_upd=<optimized out>, upd_select=<optimized out>, first_txn_updp=<optimized out>, has_newer_updatesp=<optimized out>, upd_memsizep=<optimized out>) at /data/mci/f2e1962e802874bdce054acd1e7df144/wiredtiger/src/reconcile/rec_visibility.c:611
      [2023/06/30 03:35:40.130] #4  0x00007f131f8a520f in __wt_rec_upd_select (session=<optimized out>, r=<optimized out>, ins=<optimized out>, rip=<optimized out>, vpack=<optimized out>, upd_select=0x7f130b978b80) at /data/mci/f2e1962e802874bdce054acd1e7df144/wiredtiger/src/reconcile/rec_visibility.c:834
      [2023/06/30 03:35:40.140] #5  0x00007f131f89032c in __wt_rec_row_leaf (session=<optimized out>, r=<optimized out>, pageref=<optimized out>, salvage=<optimized out>) at /data/mci/f2e1962e802874bdce054acd1e7df144/wiredtiger/src/reconcile/rec_row.c:768
      [2023/06/30 03:35:40.152] #6  0x00007f131f8b1b4d in __reconcile (session=<optimized out>, ref=<optimized out>, salvage=<optimized out>, flags=<optimized out>, page_lockedp=<optimized out>) at /data/mci/f2e1962e802874bdce054acd1e7df144/wiredtiger/src/reconcile/rec_write.c:291
      [2023/06/30 03:35:40.152] #7  0x00007f131f8afea3 in __wt_reconcile (session=0x1889498, ref=<optimized out>, salvage=<optimized out>, flags=<optimized out>) at /data/mci/f2e1962e802874bdce054acd1e7df144/wiredtiger/src/reconcile/rec_write.c:99
      [2023/06/30 03:35:40.173] #8  0x00007f131f5aec94 in __wt_sync_file (session=0x1889498, syncop=WT_SYNC_CHECKPOINT) at /data/mci/f2e1962e802874bdce054acd1e7df144/wiredtiger/src/btree/bt_sync.c:432
      [2023/06/30 03:35:40.173] #9  0x00007f131f9ccd3c in __checkpoint_tree (session=session@entry=0x1889498, is_checkpoint=true, cfg=<optimized out>) at /data/mci/f2e1962e802874bdce054acd1e7df144/wiredtiger/src/txn/txn_ckpt.c:2249
      [2023/06/30 03:35:40.173] #10 0x00007f131f9d3e0e in __checkpoint_tree_helper (session=0x2, cfg=<optimized out>) at /data/mci/f2e1962e802874bdce054acd1e7df144/wiredtiger/src/txn/txn_ckpt.c:2368
      [2023/06/30 03:35:40.173] #11 0x00007f131f9d3bab in __checkpoint_apply_to_dhandles (session=session@entry=0x1889498, cfg=cfg@entry=0x7f130b97cd80, op=0x7f131f9d3c60 <__checkpoint_tree_helper>) at /data/mci/f2e1962e802874bdce054acd1e7df144/wiredtiger/src/txn/txn_ckpt.c:341
      [2023/06/30 03:35:40.174] #12 0x00007f131f9cec68 in __txn_checkpoint (session=<optimized out>, session@entry=0x1889498, cfg=0x7f130b97cd80) at /data/mci/f2e1962e802874bdce054acd1e7df144/wiredtiger/src/txn/txn_ckpt.c:1140
      [2023/06/30 03:35:40.174] #13 0x00007f131f9cb5e8 in __txn_checkpoint_wrapper (session=session@entry=0x1889498, cfg=<optimized out>, cfg@entry=0x7f130b97cd80) at /data/mci/f2e1962e802874bdce054acd1e7df144/wiredtiger/src/txn/txn_ckpt.c:1423
      [2023/06/30 03:35:40.174] #14 0x00007f131f9caca0 in __wt_txn_checkpoint (session=<optimized out>, cfg=<optimized out>, waiting=<optimized out>) at /data/mci/f2e1962e802874bdce054acd1e7df144/wiredtiger/src/txn/txn_ckpt.c:1500
      [2023/06/30 03:35:40.196] #15 0x00007f131f921c55 in __session_checkpoint (wt_session=<optimized out>, config=<optimized out>) at /data/mci/f2e1962e802874bdce054acd1e7df144/wiredtiger/src/session/session_api.c:2369
      [2023/06/30 03:35:40.196] #16 0x00000000004d09b4 in checkpoint (arg=<optimized out>) at /data/mci/f2e1962e802874bdce054acd1e7df144/wiredtiger/test/format/checkpoint.c:144
      

      This is the assertion:

                      WT_ASSERT_ALWAYS(session, upd->prepare_state == WT_PREPARE_INPROGRESS,
                        "rec_upd_select found an in-progress prepared update");
      

      Config:

      ############################################
      #  RUN PARAMETERS: V3
      ############################################
      assert.read_timestamp=0
      backup=0
      backup.incremental=off
      backup.incr_granularity=11043
      block_cache=0
      block_cache.cache_on_checkpoint=0
      block_cache.cache_on_writes=1
      block_cache.size=87
      btree.huffman_value=0
      buffer_alignment=0
      cache=690
      cache.evict_max=4
      cache.eviction_dirty_target=0
      cache.eviction_dirty_trigger=0
      cache.minimum=20
      checkpoint=on
      checkpoint.log_size=178
      checkpoint.wait=57
      debug.checkpoint_retention=4
      debug.cursor_reposition=0
      debug.eviction=1
      debug.log_retention=4
      debug.realloc_exact=0
      debug.realloc_malloc=0
      debug.slow_checkpoint=1
      debug.table_logging=0
      debug.update_restore_evict=0
      disk.data_extend=0
      disk.direct_io=0
      disk.encryption=none
      disk.mmap=1
      disk.mmap_all=0
      file_manager.close_handle_minimum=10
      file_manager.close_idle_time=41
      file_manager.close_scan_interval=0
      format.abort=0
      format.independent_thread_rng=1
      format.major_timeout=0
      import=0
      logging=0
      logging.compression=none
      logging.file_max=280189
      logging.prealloc=0
      logging.remove=1
      ops.alter=0
      ops.compaction=0
      ops.hs_cursor=1
      ops.bound_cursor=0
      ops.prepare=1
      ops.random_cursor=0
      ops.salvage=0
      ops.verify=1
      quiet=1
      random.data_seed=9596518
      random.extra_seed=6001262
      runs.in_memory=0
      runs.ops=0
      runs.predictable_replay=0
      runs.rows=1000000
      runs.tables=3
      runs.threads=22
      runs.timer=16
      runs.verify_failure_dump=0
      statistics.mode=fast
      statistics_log.sources=off
      stress.aggressive_stash_free=0
      stress.aggressive_sweep=0
      stress.checkpoint=1
      stress.checkpoint_evict_page=1
      stress.checkpoint_prepare=1
      stress.evict_reposition=0
      stress.failpoint_eviction_fail_after_reconciliation=1
      stress.failpoint_hs_delete_key_from_ts=0
      stress.hs_checkpoint_delay=1
      stress.hs_search=0
      stress.hs_sweep=0
      stress.prepare_resolution_1=0
      stress.sleep_before_read_overflow_onpage=0
      stress.split_1=0
      stress.split_2=0
      stress.split_3=0
      stress.split_4=0
      stress.split_5=0
      stress.split_6=0
      stress.split_7=0
      stress.split_8=0
      tiered_storage.flush_frequency=0
      tiered_storage.storage_source=off
      transaction.implicit=0
      transaction.timestamps=1
      wiredtiger.config=off
      wiredtiger.rwlock=1
      wiredtiger.leak_memory=0
      ############################################
      #  TABLE PARAMETERS: table 1
      ############################################
      table1.btree.compression=zstd
      table1.btree.dictionary=0
      table1.btree.internal_key_truncation=1
      table1.btree.internal_page_max=13
      table1.btree.leaf_page_max=15
      table1.btree.memory_page_max=1
      table1.btree.repeat_data_pct=49
      table1.btree.split_pct=64
      table1.btree.value_max=2002
      table1.btree.value_min=17
      table1.disk.checksum=off
      table1.disk.firstfit=1
      table1.ops.pareto=0
      table1.ops.pareto.skew=69
      table1.ops.pct.delete=45
      table1.ops.pct.insert=14
      table1.ops.pct.modify=20
      table1.ops.pct.read=20
      table1.ops.pct.write=1
      table1.ops.truncate=0
      table1.runs.mirror=0
      table1.runs.source=table
      table1.runs.type=variable-length column-store
      ############################################
      #  TABLE PARAMETERS: table 2
      ############################################
      table2.btree.compression=zstd
      table2.btree.dictionary=0
      table2.btree.internal_key_truncation=1
      table2.btree.internal_page_max=16
      table2.btree.key_max=102
      table2.btree.key_min=31
      table2.btree.leaf_page_max=11
      table2.btree.memory_page_max=10
      table2.btree.prefix_len=0
      table2.btree.prefix_compression=1
      table2.btree.prefix_compression_min=6
      table2.btree.reverse=0
      table2.btree.split_pct=66
      table2.btree.value_max=1586
      table2.btree.value_min=10
      table2.disk.checksum=on
      table2.disk.firstfit=0
      table2.ops.pareto=1
      table2.ops.pareto.skew=49
      table2.ops.pct.delete=0
      table2.ops.pct.insert=100
      table2.ops.pct.modify=0
      table2.ops.pct.read=0
      table2.ops.pct.write=0
      table2.ops.truncate=0
      table2.runs.mirror=0
      table2.runs.source=table
      table2.runs.type=row-store
      ############################################
      #  TABLE PARAMETERS: table 3
      ############################################
      table3.btree.compression=snappy
      table3.btree.dictionary=0
      table3.btree.internal_key_truncation=1
      table3.btree.internal_page_max=11
      table3.btree.key_max=48
      table3.btree.key_min=14
      table3.btree.leaf_page_max=12
      table3.btree.memory_page_max=4
      table3.btree.prefix_len=0
      table3.btree.prefix_compression=1
      table3.btree.prefix_compression_min=8
      table3.btree.reverse=0
      table3.btree.split_pct=63
      table3.btree.value_max=2642
      table3.btree.value_min=18
      table3.disk.checksum=unencrypted
      table3.disk.firstfit=0
      table3.ops.pareto=1
      table3.ops.pareto.skew=62
      table3.ops.pct.delete=19
      table3.ops.pct.insert=48
      table3.ops.pct.modify=0
      table3.ops.pct.read=29
      table3.ops.pct.write=4
      table3.ops.truncate=0
      table3.runs.mirror=0
      table3.runs.source=table
      table3.runs.type=row-store
      ############################################
      

            Assignee:
            chenhao.qu@mongodb.com Chenhao Qu
            Reporter:
            etienne.petrel@mongodb.com Etienne Petrel
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: