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

Soften the restrictions on re-entering reconciliation

    • Storage Engines
    • 3
    • Storage Engines 2019-07-01
    • v4.0, v3.6

      test/format failure:
      http://build.wiredtiger.com:8080/job/wiredtiger-test-format-stress/71047/consoleFull

      ############################################
      #  RUN PARAMETERS
      ############################################
      abort=0
      alter=0
      auto_throttle=1
      backups=0
      bitcnt=3
      bloom=0
      bloom_bit_count=20
      bloom_hash_count=30
      bloom_oldest=0
      cache=108
      cache_minimum=20
      checkpoints=on
      checkpoint_log_size=121
      checkpoint_wait=69
      checksum=uncompressed
      chunk_size=3
      compaction=1
      compression=none
      data_extend=0
      data_source=file
      delete_pct=4
      dictionary=0
      direct_io=0
      encryption=rotn-7
      evict_max=1
      file_type=row-store
      firstfit=0
      huffman_key=0
      huffman_value=0
      independent_thread_rng=1
      in_memory=0
      insert_pct=81
      internal_key_truncation=1
      internal_page_max=14
      isolation=snapshot
      key_gap=7
      key_max=111
      key_min=30
      leaf_page_max=9
      leak_memory=0
      logging=0
      logging_archive=0
      logging_compression=none
      logging_file_max=459981
      logging_prealloc=1
      long_running_txn=0
      lsm_worker_threads=4
      memory_page_max=9
      merge_max=7
      mmap=1
      modify_pct=13
      ops=0
      prefix_compression=1
      prefix_compression_min=5
      prepare=0
      quiet=1
      read_pct=1
      rebalance=1
      repeat_data_pct=3
      reverse=0
      rows=1000000
      runs=1
      salvage=1
      split_pct=77
      statistics=0
      statistics_server=0
      threads=6
      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=2307
      value_min=1
      verify=1
      wiredtiger_config=
      write_pct=1
      ############################################
      

      Here's the stack:

      /mnt/data0/jenkins/workspace/wiredtiger-test-format-stress/build_posix/../src/os_common/os_alloc.c:34(__wt_calloc)[0x45902b]
      /mnt/data0/jenkins/workspace/wiredtiger-test-format-stress/build_posix/../src/reconcile/rec_write.c:542(__rec_init)[0x4715a1]
      /mnt/data0/jenkins/workspace/wiredtiger-test-format-stress/build_posix/../src/reconcile/rec_write.c:107(__wt_reconcile)[0x47028e]
      /mnt/data0/jenkins/workspace/wiredtiger-test-format-stress/build_posix/../src/evict/evict_page.c:688(__evict_review)[0x4466bf]
      /mnt/data0/jenkins/workspace/wiredtiger-test-format-stress/build_posix/../src/evict/evict_page.c:180(__wt_evict)[0x444dbc]
      /mnt/data0/jenkins/workspace/wiredtiger-test-format-stress/build_posix/../src/evict/evict_page.c:93(__wt_page_release_evict)[0x444966]
      /mnt/data0/jenkins/workspace/wiredtiger-test-format-stress/build_posix/../src/include/btree.i:1530(__wt_page_release)[0x5db5f8]
      /mnt/data0/jenkins/workspace/wiredtiger-test-format-stress/build_posix/../src/reconcile/rec_child.c:324 (discriminator 1)(__wt_rec_child_modify)[0x5dbe0b]
      /mnt/data0/jenkins/workspace/wiredtiger-test-format-stress/build_posix/../src/reconcile/rec_row.c:394(__wt_rec_row_int)[0x5ade62]
      /mnt/data0/jenkins/workspace/wiredtiger-test-format-stress/build_posix/../src/reconcile/rec_write.c:156 (discriminator 3)(__wt_reconcile)[0x470520]
      /mnt/data0/jenkins/workspace/wiredtiger-test-format-stress/build_posix/../src/btree/bt_sync.c:337(__wt_sync_file)[0x51639b]
      /mnt/data0/jenkins/workspace/wiredtiger-test-format-stress/build_posix/../src/txn/txn_ckpt.c:1677(__checkpoint_tree)[0x4b852f]
      /mnt/data0/jenkins/workspace/wiredtiger-test-format-stress/build_posix/../src/txn/txn_ckpt.c:1793(__checkpoint_tree_helper)[0x4b885a]
      /mnt/data0/jenkins/workspace/wiredtiger-test-format-stress/build_posix/../src/txn/txn_ckpt.c:217(__checkpoint_apply)[0x4b4e2c]
      /mnt/data0/jenkins/workspace/wiredtiger-test-format-stress/build_posix/../src/txn/txn_ckpt.c:908(__txn_checkpoint)[0x4b6847]
      /mnt/data0/jenkins/workspace/wiredtiger-test-format-stress/build_posix/../src/txn/txn_ckpt.c:1106(__txn_checkpoint_wrapper)[0x4b7234]
      /mnt/data0/jenkins/workspace/wiredtiger-test-format-stress/build_posix/../src/txn/txn_ckpt.c:1173 (discriminator 3)(__wt_txn_checkpoint)[0x4b7473]
      /mnt/data0/jenkins/workspace/wiredtiger-test-format-stress/build_posix/../src/session/session_compact.c:218(__compact_checkpoint)[0x496ac9]
      /mnt/data0/jenkins/workspace/wiredtiger-test-format-stress/build_posix/../src/session/session_compact.c:267(__compact_worker)[0x496bce]
      /mnt/data0/jenkins/workspace/wiredtiger-test-format-stress/build_posix/../src/session/session_compact.c:423(__wt_session_compact)[0x497751]
      /mnt/data0/jenkins/workspace/wiredtiger-test-format-stress/build_posix/test/format/../../../test/format/compact.c:74(compact)[0x403e22]
      

      SUMMARY:
      This ticket resolves the issue of unexpected WiredTiger behavior if a thread doing reconciliation re-enters reconciliation. This issue has historically been a diagnostic-mode failure, but not detected at run-time, which is dangerous as all paths to re-enter reconciliation aren't necessarily evaluated in testing. This ticket improves this scenario by detecting and handling, at run-time, if a thread re-enters reconciliation.

            Assignee:
            keith.bostic@mongodb.com Keith Bostic (Inactive)
            Reporter:
            keith.bostic@mongodb.com Keith Bostic (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: