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

Disable import when direct I/O is enabled in test/format

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • WT10.0.1, 4.4.7, 5.0.0-rc1, 5.1.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • None
    • 5
    • Storage - Ra 2021-05-31

      When turning on the import functionality in test/format an assert gets hit:

       [2021/05/07 04:44:57.277]     [1620362689:383685][40914:0x7f7ded7fa700], t: __posix_file_read, 423: !pfh->direct_io || S2C(session)->buffer_alignment == 0 || (!((uintptr_t)buf & (uintptr_t)(S2C(session)->buffer_alignment - 1)) && len >= S2C(session)->buffer_alignment && len % S2C(session)->buffer_alignment == 0)
       [2021/05/07 04:44:57.277]     [1620362689:383711][40914:0x7f7ded7fa700], t: __wt_abort, 28: aborting WiredTiger library
      

      The backtrace shows as

      (gdb) bt
      #0  0x00007f0e9a2b793f in raise () from /lib64/libc.so.6
      #1  0x00007f0e9a2a1c95 in abort () from /lib64/libc.so.6
      #2  0x000000000041358a in __wt_abort (session=session@entry=0x7f0e3c027140) at ../src/os_common/os_abort.c:30
      #3  0x0000000000414603 in __posix_file_read (file_handle=0x7f0e3c059a70, wt_session=0x7f0e3c027140, offset=0, len=<optimized out>, buf=0x7f0e3e0f47f0) at ../src/os_posix/os_fs.c:420
      #4  0x00000000004c4536 in __wt_read (buf=0x7f0e3e0f47f0, len=131072, offset=0, fh=0x7f0e3e0b0fe0, session=0x7f0e3c027140) at ../src/include/os_fhandle_inline.h:106
      #5  __wt_copy_and_sync (wt_session=wt_session@entry=0x7f0e3c027140, from=from@entry=0x64941a "import.wt", to=to@entry=0x7f0e567fb680 "../import.wt") at ../src/os_common/filename.c:141
      #6  0x000000000043de2a in copy_file_into_directory (name=0x64941a "import.wt", session=0x7f0e3c027140) at ../../../test/format/import.c:222
      #7  import (arg=<optimized out>) at ../../../test/format/import.c:104
      #8  0x00007f0e9a8632de in start_thread () from /lib64/libpthread.so.0
      #9  0x00007f0e9a37ca63 in clone () from /lib64/libc.so.6
      

      It seems to be trying to do a __wt_copy_and_sync and fails when reading in the import.wt file, the information around the assert shows as:

      (gdb) print $3->buffer_alignment
      $4 = 512
      (gdb) print pfh->direct_io
      $5 = true
      

            Assignee:
            etienne.petrel@mongodb.com Etienne Petrel
            Reporter:
            jie.chen@mongodb.com Jie Chen
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: