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

dhandle locking

    • Type: Icon: Task Task
    • Resolution: Done
    • WT1.6.5
    • Affects Version/s: None
    • Component/s: None
    • Labels:

      wtperf crashed last night with a dhandle locking race, during close (running evict-lsm).

      The stacks are simple:

      (gdb) thread 2
      [Switching to thread 2 (Thread 802007400 (LWP 100228/wtperf))]#0  0x0000000800d1a87c in pthread_kill () from /lib/libthr.so.3
      (gdb) where
      #0  0x0000000800d1a87c in pthread_kill () from /lib/libthr.so.3
      WT-1  0x0000000800d1b8c9 in pthread_kill () from /lib/libthr.so.3
      WT-2  0x00000000004166c5 in __wt_thread_join (session=0x80204b000, 
          tid=0x802008800) at ../src/os_posix/os_thread.c:35
      WT-3  0x000000000040c9b8 in __wt_connection_close (conn=0x80201fb00)
          at ../src/conn/conn_open.c:118
      WT-4  0x0000000000408c37 in __conn_close (wt_conn=0x80201fb00, config=0x0)
          at ../src/conn/conn_api.c:518
      WT-5  0x00000000004053dd in main (argc=5, argv=0x7fffffffd9a0)
          at ../../../bench/wtperf/wtperf.c:1064
      (gdb) thread 1
      [Switching to thread 1 (Thread 802008800 (LWP 104683/wtperf))]#0  0x00000000004311e1 in __evict_walk (session=0x80204b210, entriesp=0x7fffff7fbed4, clean=1)
          at ../src/btree/bt_evict.c:722
      722			if (!WT_PREFIX_MATCH(dhandle->name, "file:") ||
      (gdb) where
      #0  0x00000000004311e1 in __evict_walk (session=0x80204b210, 
          entriesp=0x7fffff7fbed4, clean=1) at ../src/btree/bt_evict.c:722
      WT-1  0x0000000000430f09 in __evict_lru (session=0x80204b210, clean=1)
          at ../src/btree/bt_evict.c:631
      WT-2  0x0000000000430243 in __evict_worker (session=0x80204b210)
          at ../src/btree/bt_evict.c:252
      WT-3  0x000000000042fe93 in __wt_cache_evict_server (arg=0x80204b210)
          at ../src/btree/bt_evict.c:160
      WT-4  0x0000000800d130a4 in pthread_getprio () from /lib/libthr.so.3
      WT-5  0x0000000000000000 in ?? ()
      Cannot access memory at address 0x7fffff7fc000
      (gdb) p dhandle
      $1 = (WT_DATA_HANDLE *) 0xabababababababab

      In short, close is discarding handles, and the eviction server is still walking them.

            sue.loverso@mongodb.com Susan LoVerso
            keith.bostic@mongodb.com Keith Bostic (Inactive)
            0 Vote for this issue
            1 Start watching this issue