This mutex seems to only exist with Storage Engine branch. We're working on prototyping a new storage engine on top of an NVRAM device. This morning, the test server hangs. Four worker threads are blocked waiting for cache_lock. The cache_lock holder is blocked in "notify_io_complete()" waiting for the thread mutex (thru LOCK_THREAD macro) - it is our add-on completion handler (thread) that does not get dispatched via the existing memcached's event_handler(). Examining the source code by eyes, I don't seem to be able to find the place where the LOCK_THREAD could be invoked elsewhere.
I'm still checking the code. At the same time, not sure whether folks can pass the following info to speed up this debugging: 1) what is a "tap_thread" ? 2) what structures are protected by this mutex ? Thanks, Wendy