Uploaded image for project: 'Couchbase C client library libcouchbase'
  1. Couchbase C client library libcouchbase
  2. CCBC-707

completion-io: crash on async destruction with pending writes

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • 2.6.2
    • None
    • None
    • None

    Description

      I do not have a condensed test case that can reproduce this, but it is happening in a few of our applications. Here is a backtrace:

      (lldb) bt    
      * thread #1: tid = 0, 0x00007f623f2905b9 couchbase_impl.node`on_flush_done(ctx=0x0000000004076720, expected=2543, actual=2543) + 56 at mcserver.c:84, name = 'node', stop reason = signal SIGSEGV
        * frame #0: 0x00007f623f2905b9 couchbase_impl.node`on_flush_done(ctx=0x0000000004076720, expected=2543, actual=2543) + 56 at mcserver.c:84
          frame #1: 0x00007f623f2cfce8 couchbase_impl.node`Cw_ex_handler(sd=0x0000000004019ca0, status=0, wdata=0x00000000000009ef) + 68 at ctx.c:527
          frame #2: 0x00007f623f28fbb5 couchbase_impl.node`write2_callback(req=0x0000000004035e30, status=0) + 95 at plugin-libuv.c:383
          frame #3: 0x0000000001b0f9e4 node`uv__write_callbacks(stream=0x0000000004019cf8) + 328 at stream.c:940
          frame #4: 0x0000000001b0e7e9 node`uv__stream_destroy(stream=0x0000000004019cf8) + 312 at stream.c:450
          frame #5: 0x0000000001b019f5 node`uv__finish_close(handle=0x0000000004019cf8) + 145 at core.c:256
          frame #6: 0x0000000001b01af9 node`uv__run_closing_handles(loop=0x000000000285c3e0) + 68 at core.c:286
          frame #7: 0x0000000001b01d17 node`uv_run(loop=0x000000000285c3e0, mode=UV_RUN_ONCE) + 202 at core.c:356
          frame #8: 0x0000000001953fec node`node::StartNodeInstance(arg=0x00007ffd822ccbe0) + 727 at node.cc:4394
          frame #9: 0x00000000019542f1 node`node::Start(argc=2, argv=0x0000000003f87bc0) + 241 at node.cc:4474
          frame #10: 0x000000000198918e node`main(argc=3, argv=0x00007ffd822ccd48) + 62 at node_main.cc:53
          frame #11: 0x00007f6241578b45 libc.so.6`__libc_start_main + 245
          frame #12: 0x0000000000ded529 node
      (lldb) f 0
      frame #0: 0x00007f623f2905b9 couchbase_impl.node`on_flush_done(ctx=0x0000000004076720, expected=2543, actual=2543) + 56 at mcserver.c:84
         81  	    mc_SERVER *server = lcbio_ctx_data(ctx);
         82  	    lcb_U64 now = 0;
         83  	
      -> 84  	    if (LCBT_SETTING(server->instance, readj_ts_wait)) {
         85  	        now = gethrtime();
         86  	    }
         87  	
      

      I have a core dump (and would be happy to share if that will help) and it looks like server->instance->settings is garbage when this is hit.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            mnunberg Mark Nunberg (Inactive)
            evanlucas Evan Lucas
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes

                PagerDuty