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

wtperf: __wt_conn_dhandle_discard_single assert

    XMLWordPrintable

    Details

    • Type: Task
    • Status: Closed
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: WT2.2.1
    • Component/s: None
    • Labels:

      Description

      Just saw a failure with wtperf and the update-checkpoint-btree.wtperf runner, after 20+ good runs with no problem:

      wtperf -h /tmp/WT_TEST
      -O /b/bostic/wiredtiger/bench/wtperf/runners/update-checkpoint-btree.wtperf
      sweep-server: ../src/conn/conn_dhandle.c, 647: !final || ret == 0
      

      Here's the stack and local information:

      (gdb) where
      WT-6  0x0000000000481df3 in __wt_conn_dhandle_discard_single (
          session=0x802537000, dhandle=0x803647400, final=1)
          at ../src/conn/conn_dhandle.c:647
      WT-7  0x0000000000481e58 in __wt_conn_dhandle_discard (conn=0x80250ce00)
          at ../src/conn/conn_dhandle.c:677
      WT-8  0x000000000041209a in __wt_connection_close (conn=0x80250ce00)
          at ../src/conn/conn_open.c:92
      WT-9  0x000000000040d2c9 in __conn_close (wt_conn=0x80250ce00, config=0x0)
          at ../src/conn/conn_api.c:573
      WT-10 0x0000000000409cce in start_run (cfg=0x7fffffffd730)
          at ../../../bench/wtperf/wtperf.c:1869
      WT-11 0x000000000040923b in start_all_runs (cfg=0x7fffffffd730)
          at ../../../bench/wtperf/wtperf.c:1652
      WT-12 0x000000000040a745 in main (argc=5, argv=0x7fffffffd950)
          at ../../../bench/wtperf/wtperf.c:2086
      (gdb) p final
      $6 = 1
      (gdb) p ret
      $7 = 16
      (gdb) p *dhandle
      $8 = {rwlock = 0x80341d0c0, l = {sle_next = 0x8025a3400}, session_ref = 0, 
        session_inuse = 0, timeofdeath = 1402609850, 
        name_hash = 9596272081698085885, name = 0x80341d0d0 "file:test.wt", 
        checkpoint = 0x0, cfg = 0x80341e060, dsrc = 0x0, handle = 0x803667140,
      { statistics }, flags = 32}
      

      So, ret == EBUSY, and dhandle.flags == WT_DHANDLE_OPEN.

      The only path through the code I see is for __wt_conn_btree_sync_and_close to have returned EBUSY, even though it's the final call.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                keith.bostic Keith Bostic
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: