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

Ensure resolving prepared transactions use updates from itself

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 4.0.4, 4.1.4, WT3.2.0
    • Affects Version/s: None
    • Component/s: None
    • None
    • 1
    • Storage Engines 2018-10-08

      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)

      ############################################

      1. 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
        ############################################

            Assignee:
            vamsi.krishna@mongodb.com Vamsi Boyapati
            Reporter:
            vamsi.krishna@mongodb.com Vamsi Boyapati
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: