A few days ago our server became unresponsive and required a reboot. The problem was eventually traced back to mutex acquisition issues. From the innodb status, this is what we gathered…
"InnoDB: Warning: a long semaphore wait:
–Thread 1267927360 has waited at dict/dict0dict.c line 723 for 241.00 seconds
the semaphore:Mutex at 0x2ab8624c3298 created file dict/dict0dict.c line 683, lock var 1 waiters flag 1
This is traced to this in dict0dict.c file:
InnoDB: Warning: a long semaphore wait:
–Thread 1273518400 has waited at btr/btr0sea.c line 1695 for 241.00 seconds
the semaphore:X-lock (wait_ex) on RW-latch at 0x2ab7ea858bb8 created in file btr/btr0sea.c line 167
a writer (thread id 1273518400) has reserved it in mode wait exclusivenumber of readers 1, waiters flag 0, lock_word: ffffffffffffffff
Last time read locked in file btr/btr0sea.c line 870"
This is traced to this in btr0sea.c file:
I’m not sure what else to look at, but the 241 seconds is higher than the 50 second innodb lock wait timeout we have. The load on the system was not heavy at the time (compared to other days when we experience higher loads).
Any help with above would be appreciated.