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

Fix assertion for reconciling fixed length column store

    • 5
    • Storage Engines 2020-02-24

       Below assertion failure was captured by the PPC sanitizer job on Jenkins, regarding page status setting after reconciliation. 

       http://build.wiredtiger.com:8080/job/wiredtiger-test-format-stress-sanitizer-ppc/9260/

      [1581609589:998687][24541:0x3fff915ff150], t, file:wt.wt, eviction-server: __rec_write_page_status, 318: !F_ISSET(r, WT_REC_EVICT) || F_ISSET(r, WT_REC_HS | WT_REC_IN_MEMORY)
      [1581609589:998750][24541:0x3fff915ff150], t, file:wt.wt, eviction-server: __wt_abort, 28: aborting WiredTiger library

      Relevant code:

              /*
               * Eviction should only be here if following the history store or in-memory eviction path.
               *
               * PM-1521-FIXME: What will we do for in memory database?
               */
              WT_ASSERT(session, !F_ISSET(r, WT_REC_EVICT) || F_ISSET(r, WT_REC_HS | WT_REC_IN_MEMORY)); 

      Function trace:

      (gdb) bt
      #0  0x00003fff94c2e4d8 in raise () from /lib64/power8/libc.so.6
      #1  0x00003fff94c30658 in abort () from /lib64/power8/libc.so.6
      #2  0x00000000103e442c in __wt_abort (session=0x3fff92491b80) at ../src/os_common/os_abort.c:30
      #3  0x0000000010459c18 in __rec_write_page_status (session=0x3fff92491b80, r=0xae8000c0880) at ../src/reconcile/rec_write.c:318
      #4  0x0000000010444920 in __reconcile (session=0x3fff92491b80, ref=0xa70000020a0, salvage=0x0, flags=86,
          page_lockedp=0x3fff915fbe60) at ../src/reconcile/rec_write.c:201
      #5  0x0000000010442bec in __wt_reconcile (session=0x3fff92491b80, ref=0xa70000020a0, salvage=0x0, flags=86)
          at ../src/reconcile/rec_write.c:87
      #6  0x0000000010321b84 in __evict_review (session=0x3fff92491b80, ref=0xa70000020a0, evict_flags=0, inmem_splitp=0x3fff915fc520)
          at ../src/evict/evict_page.c:630
      #7  0x000000001031d438 in __wt_evict (session=0x3fff92491b80, ref=0xa70000020a0, previous_state=3, flags=0)
          at ../src/evict/evict_page.c:149
      #8  0x00000000102f88dc in __evict_page (session=0x3fff92491b80, is_server=true) at ../src/evict/evict_lru.c:2231
      #9  0x00000000102f00ac in __evict_lru_pages (session=0x3fff92491b80, is_server=true) at ../src/evict/evict_lru.c:1102
      #10 0x00000000102fd02c in __evict_pass (session=0x3fff92491b80) at ../src/evict/evict_lru.c:703
      #11 0x00000000102ef1e0 in __evict_server (session=0x3fff92491b80, did_work=0x3fff915fe300) at ../src/evict/evict_lru.c:376
      #12 0x00000000102ee7e0 in __wt_evict_thread_run (session=0x3fff92491b80, thread=0xa3800001130) at ../src/evict/evict_lru.c:288
      #13 0x00000000105847ec in __thread_run (arg=0xa3800001130) at ../src/support/thread_group.c:31
      #14 0x000000001010dfa0 in __asan::AsanThread::ThreadStart (this=0x3fff92410000, os_id=24631,
          signal_thread_is_registered=0x3fffc93b3cc0) at /home/dhows/llvm-git/projects/compiler-rt/lib/asan/asan_thread.cc:257
      #15 0x000000001003a77c in asan_thread_start (arg=0x3fffc93b3cb8)
          at /home/dhows/llvm-git/projects/compiler-rt/lib/asan/asan_interceptors.cc:305
      #16 0x00003fff94fb8944 in start_thread () from /lib64/power8/libpthread.so.0
      #17 0x00003fff94d07640 in clone () from /lib64/power8/libc.so.6 

      Format configuration:

      ############################################
      #  RUN PARAMETERS
      ############################################
      abort=0
      alter=0
      assert_commit_timestamp=1
      assert_read_timestamp=0
      auto_throttle=1
      backups=0
      bitcnt=2
      bloom=1
      bloom_bit_count=30
      bloom_hash_count=8
      bloom_oldest=0
      cache=74
      cache_minimum=20
      checkpoints=off
      checkpoint_log_size=20
      checkpoint_wait=56
      checksum=uncompressed
      chunk_size=10
      compaction=1
      compression=snappy
      data_extend=0
      data_source=table
      delete_pct=4
      dictionary=0
      direct_io=0
      encryption=none
      evict_max=1
      file_type=fixed-length column-store
      firstfit=0
      huffman_key=0
      huffman_value=0
      independent_thread_rng=1
      in_memory=0
      insert_pct=47
      internal_key_truncation=1
      internal_page_max=14
      isolation=snapshot
      key_gap=0
      key_max=53
      key_min=16
      leaf_page_max=15
      leak_memory=0
      logging=0
      logging_archive=0
      logging_compression=none
      logging_file_max=265708
      logging_prealloc=0
      lsm_worker_threads=3
      major_timeout=0
      memory_page_max=1
      merge_max=15
      mmap=1
      modify_pct=0
      ops=0
      prefix_compression=1
      prefix_compression_min=0
      prepare=0
      quiet=1
      random_cursor=0
      read_pct=10
      rebalance=1
      repeat_data_pct=8
      reverse=0
      rows=1000000
      runs=1
      salvage=1
      split_pct=68
      statistics=0
      statistics_server=1
      threads=14
      timer=4
      timing_stress_aggressive_sweep=0
      timing_stress_checkpoint=0
      timing_stress_hs_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=2471
      value_min=1
      verify=1
      wiredtiger_config=
      write_pct=39
      ############################################ 

            Assignee:
            alex.cameron@mongodb.com Alex Cameron (Inactive)
            Reporter:
            luke.chen@mongodb.com Luke Chen
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: