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

Return from resolve prepared op when we have already resolved the operations

    • Type: Icon: Improvement Improvement
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • WT10.0.0, 4.4.0-rc7, 4.7.0
    • Affects Version/s: None
    • Component/s: None
    • None
    • 8
    • Storage - Ra 2020-06-01

      Hit this running a similar config to WT-6266:

       Core was generated by `./t -c 6266'.
      Program terminated with signal SIGSEGV, Segmentation fault.
      #0  0x0000557a2627bfca in __txn_resolve_prepared_op (session=0x7ff7ef1eb278, op=0x7ff7c0136ab0, commit=false,
          cursorp=0x7ff7cfffed70) at ../src/txn/txn.c:892
      892         for (; upd->txnid == WT_TXN_ABORTED; upd = upd->next)
      [Current thread is 1 (Thread 0x7ff7cffff700 (LWP 22343))]
      b(gdb) bt
      #0  0x0000557a2627bfca in __txn_resolve_prepared_op (session=0x7ff7ef1eb278, op=0x7ff7c0136ab0, commit=false,
          cursorp=0x7ff7cfffed70) at ../src/txn/txn.c:892
      #1  0x0000557a2627dc29 in __wt_txn_rollback (session=0x7ff7ef1eb278, cfg=0x7ff7cfffee10) at ../src/txn/txn.c:1651
      #2  0x0000557a2625680b in __session_rollback_transaction (wt_session=0x7ff7ef1eb278, config=0x0)
          at ../src/session/session_api.c:1735
      #3  0x0000557a2617be0b in rollback_transaction (tinfo=0x557a27e4c7b0) at ../../../test/format/ops.c:475
      #4  0x0000557a2617d43b in ops (arg=0x557a27e4c7b0) at ../../../test/format/ops.c:991
      #5  0x00007ff7ee9d36db in start_thread (arg=0x7ff7cffff700) at pthread_create.c:463
      #6  0x00007ff7ee6fc88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
      (gdb) f 0
      #0  0x0000557a2627bfca in __txn_resolve_prepared_op (session=0x7ff7ef1eb278, op=0x7ff7c0136ab0, commit=false,
          cursorp=0x7ff7cfffed70) at ../src/txn/txn.c:892
      892         for (; upd->txnid == WT_TXN_ABORTED; upd = upd->next)
      

      Config

       ############################################
      #  RUN PARAMETERS: V2
      ############################################
      assert.commit_timestamp=0
      assert.read_timestamp=0
      backup=0
      backup.incremental=off
      btree.bitcnt=3
      btree.compression=none
      btree.dictionary=0
      btree.huffman_key=1
      btree.huffman_value=1
      btree.internal_key_truncation=1
      btree.internal_page_max=10
      btree.key_gap=14
      btree.key_max=57
      btree.key_min=14
      btree.leaf_page_max=15
      btree.memory_page_max=5
      btree.prefix_compression=1
      btree.prefix_compression_min=1
      btree.repeat_data_pct=5
      btree.reverse=0
      btree.split_pct=95
      btree.value_max=732
      btree.value_min=16
      cache=77
      cache.evict_max=0
      cache.minimum=20
      checkpoint=on
      checkpoint.log_size=158
      checkpoint.wait=98
      disk.checksum=uncompressed
      disk.data_extend=0
      disk.direct_io=0
      disk.encryption=none
      disk.firstfit=0
      disk.mmap=1
      disk.mmap_all=0
      format.abort=0
      format.independent_thread_rng=1
      format.major_timeout=0
      logging=0
      logging.archive=0
      logging.compression=none
      logging.file_max=269980
      logging.prealloc=0
      lsm.auto_throttle=1
      lsm.bloom=1
      lsm.bloom_bit_count=14
      lsm.bloom_hash_count=29
      lsm.bloom_oldest=0
      lsm.chunk_size=1
      lsm.merge_max=15
      lsm.worker_threads=4
      ops.alter=0
      ops.compaction=0
      ops.pct.delete=0
      ops.pct.insert=50
      ops.pct.modify=0
      ops.pct.read=0
      ops.pct.write=50
      ops.prepare=1
      ops.random_cursor=0
      ops.rebalance=1
      ops.salvage=1
      ops.truncate=0
      ops.verify=1
      quiet=1
      runs=1
      runs.in_memory=0
      runs.ops=0
      runs.rows=10000
      runs.source=table
      runs.threads=6
      runs.timer=4
      runs.type=row-store
      statistics=0
      statistics.server=0
      stress.aggressive_sweep=0
      stress.checkpoint=0
      stress.hs_sweep=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=1
      stress.split_8=0
      transaction.frequency=100
      transaction.isolation=snapshot
      transaction.timestamps=1
      wiredtiger.config=
      wiredtiger.rwlock=1
      wiredtiger.leak_memory=0
      ############################################

      We expect to always find an update when we attempt to resolve a prepared update, in this case we didn't.

            Assignee:
            luke.pearson@mongodb.com Luke Pearson
            Reporter:
            luke.pearson@mongodb.com Luke Pearson
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: