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

The readonly test case is crashing with a stack overflow

    • Type: Icon: Bug Bug
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • WT2.9.0
    • Affects Version/s: None
    • Component/s: None
    • Labels:

      Which was uncovered by the Jenkins valgrind test (http://build.wiredtiger.com:8080/job/wiredtiger-valgrind/2014/)

      The stack trace is:

      Breakpoint 2, __wt_fsync (session=0x4873620, fh=0x4881f48, block=true) at ../src/include/misc.i:276
      276		WT_ASSERT(session, !F_ISSET(S2C(session), WT_CONN_READONLY));
      (gdb) where
      #0  __wt_fsync (session=0x4873620, fh=0x4881f48, block=true) at ../src/include/misc.i:276
      #1  0x00000000004757a1 in __handle_error_default (handler=0x77b3c0 <__event_handler_default>,
          wt_session=0x4873620, error=0,
          errmsg=0x7fffffffb420 "[1459733033:230750][20488:0x7ffff7fd8740], wiredtiger_open: ../src/include/misc.i, 276: !F_ISSET(S2C(session), WT_CONN_READONLY)") at ../src/support/err.c:27
      #2  0x0000000000476039 in __wt_eventv (session=0x4873620, msg_event=false, error=0,
          file_name=0x53f5d4 "../src/include/misc.i", line_number=276, fmt=0x53f5d1 "%s", ap=0x7fffffffbd48)
          at ../src/support/err.c:297
      #3  0x00000000004766e0 in __wt_assert (session=0x4873620, error=0,
          file_name=0x53f5d4 "../src/include/misc.i", line_number=276, fmt=0x53f5d1 "%s")
          at ../src/support/err.c:476
      #4  0x00000000004756d2 in __wt_fsync (session=0x4873620, fh=0x4881f48, block=true)
          at ../src/include/misc.i:276
      #5  0x00000000004757a1 in __handle_error_default (handler=0x77b3c0 <__event_handler_default>,
          wt_session=0x4873620, error=13,
          errmsg=0x7fffffffbed0 "[1459733007:576348][20488:0x7ffff7fd8740], wiredtiger_open: WT_RD.RD/WiredTiger.lock: handle-open: open: Permission denied") at ../src/support/err.c:27
      #6  0x0000000000476039 in __wt_eventv (session=0x4873620, msg_event=false, error=13, file_name=0x0,
          line_number=0, fmt=0x538eb2 "%s: handle-open: open", ap=0x7fffffffc7f8) at ../src/support/err.c:297
      #7  0x0000000000476138 in __wt_err (session=0x4873620, error=13, fmt=0x538eb2 "%s: handle-open: open")
          at ../src/support/err.c:320
      #8  0x0000000000440534 in __posix_handle_open (session=0x4873620, fh=0x7d7c40,
          name=0x7ec5a0 "WT_RD.RD/WiredTiger.lock", file_type=16, flags=1) at ../src/os_posix/os_fs.c:625
      #9  0x000000000043d912 in __wt_open (session=0x4873620, name=0x5329ba "WiredTiger.lock", file_type=16,
          flags=1, fhp=0x4873d58) at ../src/os_common/os_fhandle.c:203
      #10 0x0000000000409194 in __conn_single (session=0x4873620, cfg=0x7fffffffcb50)
          at ../src/conn/conn_api.c:1493
      #11 0x000000000040a111 in wiredtiger_open (home=0x77b860 <home_rd> "WT_RD.RD", event_handler=0x0,
          config=0x53235d "readonly=true", wt_connp=0x7fffffffdf58) at ../src/conn/conn_api.c:2010
      #12 0x000000000040341b in main (argc=0, argv=0x7fffffffe100) at ../../../test/readonly/readonly.c:323

      The problem is that doing an assertion is calling fsync on stderr, which is asserting that it's not doing an fsync when running read only.

      The check for fsync in a readonly connection should not be applied to standard I/O calls.

            alexander.gorrod@mongodb.com Alexander Gorrod
            alexander.gorrod@mongodb.com Alexander Gorrod
            0 Vote for this issue
            1 Start watching this issue