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

Fix crash with tiered storage and in_memory

      When tiered storage is configured and in_memory is also configured, a flush_tier call will crash:

      #0  0x00007ffff7a22f47 in raise () from /lib/x86_64-linux-gnu/libc.so.6
      #1  0x00007ffff7a248b1 in abort () from /lib/x86_64-linux-gnu/libc.so.6
      #2  0x00007ffff4774858 in __wt_abort (session=0x555555b02098) at ../src/os_common/os_abort.c:30
      #3  0x00007ffff47b3d59 in __rec_write (session=0x555555b02098, buf=0x555555b5ccb0, addr=0x7fffffffab50 "P\334\265UUU", addr_sizep=0x7fffffffab28, 
          compressed_sizep=0x7fffffffab30, checkpoint=false, checkpoint_io=true, compressed=false) at ../src/reconcile/rec_write.c:824
      #4  0x00007ffff47b73b5 in __rec_split_write (session=0x555555b02098, r=0x555555b5cb60, chunk=0x555555b5cbc8, compressed_image=0x0, last_block=true)
          at ../src/reconcile/rec_write.c:2169
      #5  0x00007ffff47b610f in __wt_rec_split_finish (session=0x555555b02098, r=0x555555b5cb60) at ../src/reconcile/rec_write.c:1706
      #6  0x00007ffff47a39ba in __wt_rec_row_leaf (session=0x555555b02098, r=0x555555b5cb60, pageref=0x555555a7c3a0, salvage=0x0) at ../src/reconcile/rec_row.c:996
      #7  0x00007ffff47b27df in __reconcile (session=0x555555b02098, ref=0x555555a7c3a0, salvage=0x0, flags=4, page_lockedp=0x7fffffffaf60)
          at ../src/reconcile/rec_write.c:258
      #8  0x00007ffff47b1d74 in __wt_reconcile (session=0x555555b02098, ref=0x555555a7c3a0, salvage=0x0, flags=4) at ../src/reconcile/rec_write.c:98
      #9  0x00007ffff464aa3b in __wt_sync_file (session=0x555555b02098, syncop=WT_SYNC_CHECKPOINT) at ../src/btree/bt_sync.c:629
      #10 0x00007ffff48286d1 in __checkpoint_tree (session=0x555555b02098, is_checkpoint=true, cfg=0x7fffffffb3e0) at ../src/txn/txn_ckpt.c:2089
      #11 0x00007ffff4828cdc in __wt_checkpoint (session=0x555555b02098, cfg=0x7fffffffb3e0) at ../src/txn/txn_ckpt.c:2259
      #12 0x00007ffff4825a36 in __txn_checkpoint (session=0x555555b02098, cfg=0x7fffffffb3e0) at ../src/txn/txn_ckpt.c:1148
      #13 0x00007ffff482631e in __txn_checkpoint_wrapper (session=0x555555b02098, cfg=0x7fffffffb3e0) at ../src/txn/txn_ckpt.c:1289
      #14 0x00007ffff48264c4 in __wt_txn_checkpoint (session=0x555555b02098, cfg=0x7fffffffb3e0, waiting=true) at ../src/txn/txn_ckpt.c:1352
      #15 0x00007ffff46a0388 in __wt_flush_tier (session=0x555555b02098, config=0x0) at ../src/conn/conn_tiered.c:564
      #16 0x00007ffff47e8554 in __session_flush_tier (wt_session=0x555555b02098, config=0x0) at ../src/session/session_api.c:2014 

      We should probably just catch this at wiredtiger_open, and disallow the tiered storage option to be used with in_memory configuration.  Tiered storage, as currently designed, needs some local file backing.

       

       

            Assignee:
            peter.macko@mongodb.com Peter Macko
            Reporter:
            donald.anderson@mongodb.com Donald Anderson
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: