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

Infinite recursion if error streams fail

      I ran test/fops, then disconnected it's output (with bash's disown). The test then hit an assertion and attempted to generate output with __wt_err.
      There is an unfortunate interaction when attempting to handle failures from custom error handlers:

      #0  0x00007f490662f04d in buffered_vfprintf () from /lib64/libc.so.6
      #1  0x00007f490662c66d in vfprintf () from /lib64/libc.so.6
      #2  0x00007f4906634897 in fprintf () from /lib64/libc.so.6
      #3  0x0000000000404054 in handle_error (handler=0x786480 <event_handler>, session=0x1aa8f60, error=5, errmsg=0x7f49015336a0 "[1470032592:144899][20202:0x7f4901d30700], t, file:WiredTiger.wt, WT_CURSOR.search: stderr: printf: Input/output error") at ../../../test/fops/t.c:220
      #4  0x000000000047da2f in __wt_eventv (session=0x1aa8f60, msg_event=false, error=5, file_name=0x0, line_number=0, fmt=0x542d2e "%s: printf", ap=0x7f4901533fc8) at ../src/support/err.c:301
      #5  0x000000000047db2e in __wt_err (session=0x1aa8f60, error=5, fmt=0x542d2e "%s: printf") at ../src/support/err.c:326
      #6  0x0000000000445ae5 in __stdio_printf (session=0x1aa8f60, fs=0x1aa1f00, fmt=0x5476e2 "%s\n", ap=0x7f4901534140) at ../src/os_common/os_fstream_stdio.c:54
      #7  0x000000000047d061 in __wt_vfprintf (session=0x1aa8f60, fstr=0x1aa1f00, fmt=0x5476e2 "%s\n", ap=0x7f4901534140) at ../src/include/os_fstream.i:55
      #8  0x000000000047d117 in __wt_fprintf (session=0x1aa8f60, fstr=0x1aa1f00, fmt=0x5476e2 "%s\n") at ../src/include/os_fstream.i:70
      #9  0x000000000047d171 in __handle_error_default (handler=0x0, wt_session=0x1aa8f60, error=-1, errmsg=0x7f4901534280 "application error event handler failed: error return: -1") at ../src/support/err.c:26
      #10 0x000000000047d360 in __handler_failure (session=0x1aa8f60, error=-1, which=0x547759 "error", error_handler_failed=true) at ../src/support/err.c:126
      #11 0x000000000047da69 in __wt_eventv (session=0x1aa8f60, msg_event=false, error=5, file_name=0x0, line_number=0, fmt=0x542d2e "%s: printf", ap=0x7f4901534cf8) at ../src/support/err.c:304
      #12 0x000000000047db2e in __wt_err (session=0x1aa8f60, error=5, fmt=0x542d2e "%s: printf") at ../src/support/err.c:326
      #13 0x0000000000445ae5 in __stdio_printf (session=0x1aa8f60, fs=0x1aa1f00, fmt=0x5476e2 "%s\n", ap=0x7f4901534e70) at ../src/os_common/os_fstream_stdio.c:54
      #14 0x000000000047d061 in __wt_vfprintf (session=0x1aa8f60, fstr=0x1aa1f00, fmt=0x5476e2 "%s\n", ap=0x7f4901534e70) at ../src/include/os_fstream.i:55
      #15 0x000000000047d117 in __wt_fprintf (session=0x1aa8f60, fstr=0x1aa1f00, fmt=0x5476e2 "%s\n") at ../src/include/os_fstream.i:70
      #16 0x000000000047d171 in __handle_error_default (handler=0x0, wt_session=0x1aa8f60, error=-1, errmsg=0x7f4901534fb0 "application error event handler failed: error return: -1") at ../src/support/err.c:26
      #17 0x000000000047d360 in __handler_failure (session=0x1aa8f60, error=-1, which=0x547759 "error", error_handler_failed=true) at ../src/support/err.c:126
      ...
      #17356 0x000000000047d360 in __handler_failure (session=0x1aa8f60, error=-1, which=0x547759 "error", error_handler_failed=true) at ../src/support/err.c:126
      #17357 0x000000000047da69 in __wt_eventv (session=0x1aa8f60, msg_event=false, error=0, file_name=0x545039 "../src/reconcile/rec_write.c", line_number=1163, fmt=0x544eb2 "%s", ap=0x7f4901d2f398) at ../src/support/err.c:304
      #17358 0x000000000047e0df in __wt_assert (session=0x1aa8f60, error=0, file_name=0x545039 "../src/reconcile/rec_write.c", line_number=1163, fmt=0x544eb2 "%s") at ../src/support/err.c:485
      #17359 0x000000000045773b in __rec_txn_read (session=0x1aa8f60, r=0x7f48e002fc40, ins=0x7f48f425f220, rip=0x0, vpack=0x0, updp=0x7f4901d2f550) at ../src/reconcile/rec_write.c:1160
      

            Assignee:
            michael.cahill@mongodb.com Michael Cahill (Inactive)
            Reporter:
            michael.cahill@mongodb.com Michael Cahill (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: