Comment 2 for bug 1391660

Revision history for this message
Valerii Kravchuk (valerii-kravchuk) wrote :

Thank you for the problem report. Please, share your my.cnf file content or the output of SHOW GLOBAL VARIABLES from this instance.

I see the following in the error log:

Main thread process no. 11074, id 139789062067968, state: enforcing dict cache limit

So, main thread is calling srv_master_evict_from_table_cache() and thus also calls dict_mutex_enter_for_mysql().

Long waits ( lock_wait_mutex_enter();) happen in lock_wait_suspend_thread() and lock_wait_table_release_slot(). There must be some other thread that holds that mutex. The only other place where it's taken, as far as I can see, is in

os_thread_ret_t
DECLARE_THREAD(lock_wait_timeout_thread)()

function.

So, somehow I think you maybe hit some memory limit for the number of transactions and locks used. See also these upstream reports for any similarity to your use case:

http://bugs.mysql.com/bug.php?id=71511
http://bugs.mysql.com/bug.php?id=73322

Both were reported for 5.6 and have unclear status.

If this long wait happens again, please, get the output of pt-pmp, so that we get more information about call sequences in threads. As a workaround I suggest