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

Birthmark records can be read as normal updates if reads race with checkpoints

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major - P3
    • Resolution: Fixed
    • None
    • WT10.0.0, 4.3.3, 4.2.4, 4.0.18, 3.6.19
    • None
    • 13
    • Storage Engines 2019-10-21, Storage Engines 2019-11-04, Storage Engines 2019-11-18, Storage Engines 2019-12-02, Storage Engines 2019-12-16, Storage Engines 2019-12-30, Storage Engines 2020-01-13
    • v4.2, v4.0, v3.6

    Description

      Summary:
          Fix a race in reconciliation that could lead to the return of an incorrect value.

      A snapshot-isolation search mismatch failure was captured by the stress sanitizer job against mongodb-4.2 branch on tinderbox. 

      http://build.wiredtiger.com:8080/job/wiredtiger-test-format-stress-sanitizer-old-branches/1674/

      ++ nice ./t
      snapshot-isolation error: Dumping page to RUNDIR/pagedump
      snapshot-isolation 0000042405.00/opqrstuvwxyzabcdefg search mismatch
      expected {0000042405}
         found {}
      t: process 8818
       
      (...)
       
      t: FAILED: snapshot-isolation: 0000042405.00/opqrstuvwxyzabcdefg search mismatch
      process aborting
      /tmp/jenkins4811282508003293818.sh: line 37:  8818 Aborted                 (core dumped) nice ./t
      + cleanup
      + status=134 

      The stack trace:

      (gdb) bt
      #0  0x00007f06087a19fb in raise () from /lib64/libc.so.6
      #1  0x00007f06087a3800 in abort () from /lib64/libc.so.6
      #2  0x0000000000546d67 in testutil_die (e=0, fmt=0xc735e0 <.str.20> "snapshot-isolation: %.*s search mismatch") at ../../../test/utility/misc.c:66
      #3  0x0000000000531554 in snap_verify (cursor=0x61800000dc80, tinfo=0x62f00009a400, snap=0x62f0000a3d90) at ../../../test/format/snap.c:220
      #4  0x000000000052fbc7 in snap_repeat_txn (cursor=0x61800000dc80, tinfo=0x62f00009a400) at ../../../test/format/snap.c:388
      #5  0x000000000051edeb in ops (arg=0x62f00009a400) at ../../../test/format/ops.c:949
      #6  0x00000000004dde53 in __asan::AsanThread::ThreadStart(unsigned long, __sanitizer::atomic_uintptr_t*) ()
      #7  0x00007f06096a736d in start_thread () from /lib64/libpthread.so.0
      #8  0x00007f060887bb4f in clone () from /lib64/libc.so.6 

      The configuration:

      ############################################
      #  RUN PARAMETERS
      ############################################
      abort=0
      alter=0
      assert_commit_timestamp=0
      assert_read_timestamp=0
      auto_throttle=1
      backups=0
      bitcnt=4
      bloom=1
      bloom_bit_count=38
      bloom_hash_count=9
      bloom_oldest=0
      cache=70
      cache_minimum=0
      checkpoints=on
      checkpoint_log_size=52
      checkpoint_wait=27
      checksum=uncompressed
      chunk_size=7
      compaction=0
      compression=none
      data_extend=0
      data_source=table
      delete_pct=2
      dictionary=0
      direct_io=0
      encryption=none
      evict_max=1
      file_type=row-store
      firstfit=0
      huffman_key=0
      huffman_value=0
      independent_thread_rng=1
      in_memory=0
      insert_pct=3
      internal_key_truncation=1
      internal_page_max=9
      isolation=snapshot
      key_gap=3
      key_max=35
      key_min=32
      leaf_page_max=12
      leak_memory=0
      logging=0
      logging_archive=0
      logging_compression=none
      logging_file_max=403863
      logging_prealloc=1
      long_running_txn=0
      lsm_worker_threads=4
      memory_page_max=7
      merge_max=9
      mmap=1
      modify_pct=50
      ops=100000
      prefix_compression=1
      prefix_compression_min=6
      prepare=0
      quiet=1
      read_pct=34
      rebalance=1
      repeat_data_pct=68
      reverse=0
      rows=100000
      runs=1
      salvage=1
      split_pct=60
      statistics=1
      statistics_server=0
      threads=5
      timer=360
      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=1087
      value_min=8
      verify=1
      wiredtiger_config=
      write_pct=11
      ############################################ 

      Attachments

        1. 5119.debug.diff
          9 kB
          Susan LoVerso
        2. 5119.Dec12.diff
          7 kB
          Susan LoVerso
        3. 5119.Dec16.diff
          17 kB
          Susan LoVerso
        4. 5119.Nov12.diff
          21 kB
          Susan LoVerso
        5. 5119.Nov18.diff
          22 kB
          Susan LoVerso
        6. 5119.Nov5.diff
          12 kB
          Susan LoVerso

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: