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

Prepared updates written to the lookaside file are not always read as needed

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • WT10.0.0, 4.3.3, 4.2.3, 4.0.17
    • Affects Version/s: None
    • Component/s: None
    • Labels:
    • 13
    • Storage Engines 2019-12-02, Storage Engines 2019-12-16
    • v4.2, v4.0

      Summary:
      If the oldest (or only), skipped updates on a page being reconciled with lookaside writes are prepared, the WT_PAGE_LOOKASID.min_skipped_ts field is never set, leading to the wrong value being returned because lookaside records for the page will be incorrectly skipped.

      This is another snapshot-isolation search mismatch failure, post the recent merging of WT-5169. This time the mismatch was about the expected content being found deleted. And the page dump segfaulted which is kind of expected as there's no lock applied while attempting to access the page.

      http://build.wiredtiger.com:8080/job/wiredtiger-test-format-stress/72142/

      ++ nice catchsegv ./t -1 -c ../../../test/format/CONFIG.stress
      snapshot-isolation 789234 search mismatch
      expected {0000789234/LMNOPQRSTUV}
         found {deleted}
      snapshot-isolation error: Dumping page to RUNDIR/pagedump
      Segmentation fault (core dumped)
      *** Segmentation fault
      
      (...)
      
      Backtrace:
      /mnt/data0/jenkins/workspace/wiredtiger-test-format-stress/build_posix/../src/btree/bt_debug.c:805(__debug_page_metadata)[0x41953c]
      /mnt/data0/jenkins/workspace/wiredtiger-test-format-stress/build_posix/../src/btree/bt_debug.c:758 (discriminator 3)(__debug_page)[0x4192e3]
      /mnt/data0/jenkins/workspace/wiredtiger-test-format-stress/build_posix/../src/btree/bt_debug.c:678(__wt_debug_page)[0x419085]
      /mnt/data0/jenkins/workspace/wiredtiger-test-format-stress/build_posix/../src/btree/bt_debug.c:698(__wt_debug_cursor_page)[0x41912a]
      /mnt/data0/jenkins/workspace/wiredtiger-test-format-stress/build_posix/test/format/../../../test/format/snap.c:241(snap_verify)[0x40e103]
      /mnt/data0/jenkins/workspace/wiredtiger-test-format-stress/build_posix/test/format/../../../test/format/snap.c:407(snap_repeat_txn)[0x40e5ce]
      /mnt/data0/jenkins/workspace/wiredtiger-test-format-stress/build_posix/test/format/../../../test/format/ops.c:946(ops)[0x409af2]
      /lib/x86_64-linux-gnu/libpthread.so.0(+0x76db)[0x7f86a8d096db]
      /lib/x86_64-linux-gnu/libc.so.6(clone+0x3f)[0x7f86a83f188f] 

      The configuration: 

      ############################################
      #  RUN PARAMETERS
      ############################################
      abort=0
      alter=1
      assert_commit_timestamp=0
      assert_read_timestamp=0
      auto_throttle=1
      backups=0
      bitcnt=4
      bloom=1
      bloom_bit_count=46
      bloom_hash_count=22
      bloom_oldest=0
      cache=94
      cache_minimum=20
      checkpoints=on
      checkpoint_log_size=144
      checkpoint_wait=42
      checksum=uncompressed
      chunk_size=7
      compaction=0
      compression=zlib
      data_extend=0
      data_source=table
      delete_pct=8
      dictionary=0
      direct_io=0
      encryption=rotn-7
      evict_max=4
      file_type=variable-length column-store
      firstfit=0
      huffman_key=0
      huffman_value=0
      independent_thread_rng=1
      in_memory=0
      insert_pct=38
      internal_key_truncation=1
      internal_page_max=13
      isolation=snapshot
      key_gap=20
      key_max=65
      key_min=20
      leaf_page_max=16
      leak_memory=0
      logging=0
      logging_archive=1
      logging_compression=none
      logging_file_max=499130
      logging_prealloc=0
      long_running_txn=0
      lsm_worker_threads=4
      memory_page_max=3
      merge_max=13
      mmap=1
      modify_pct=8
      ops=0
      prefix_compression=1
      prefix_compression_min=7
      prepare=1
      quiet=1
      random_cursor=0
      read_pct=35
      rebalance=1
      repeat_data_pct=83
      reverse=0
      rows=1000000
      runs=1
      salvage=1
      split_pct=60
      statistics=0
      statistics_server=0
      threads=15
      timer=4
      timing_stress_aggressive_sweep=0
      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=100
      truncate=1
      value_max=443
      value_min=9
      verify=1
      wiredtiger_config=
      write_pct=11
      ############################################

            Assignee:
            keith.bostic@mongodb.com Keith Bostic (Inactive)
            Reporter:
            luke.chen@mongodb.com Luke Chen
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              Resolved: