lock_mutex_enter is held in lock_clust_rec_read_check_and_lock
after which it calls lock_rec_lock (as per call trace), eventually leading to innobase_kill_connection where it again calls lock_mutex_enter leading to a deadlock.
Quick bt:
pthread_cond_wait@@GLIBC_2.3.2 os_cond_wait os_event_wait_low sync_array_wait_event mutex_spin_wait mutex_enter_func pfs_mutex_enter_func innobase_kill_connection --------------------------------------------------------------------------> lock_mutex_enter deadlocks here again. kill_handlerton plugin_foreach_with_mask ha_kill_connection THD::awake wsrep_thd_awake wsrep_innobase_kill_one_trx wsrep_kill_victim lock_rec_other_has_conflicting lock_rec_lock_slow lock_rec_lock lock_clust_rec_read_check_and_lock -------------------------------------------------> lock_mutex_enter sel_set_rec_lock row_search_for_mysql ha_innobase::index_read handler::index_read_map handler::ha_index_read_map handler::read_range_first handler::multi_range_read_next DsMrr_impl::dsmrr_next ha_innobase::multi_range_read_next QUICK_RANGE_SELECT::get_next rr_quick mysql_update mysql_execute_command mysql_parse Query_log_event::do_apply_event Query_log_event::do_apply_event Log_event::apply_event wsrep_apply_rbr wsrep_apply_cb galera::TrxHandle::apply apply_trx_ws galera::ReplicatorSMM::apply_trx galera::ReplicatorSMM::process_trx galera::GcsActionSource::dispatch galera::GcsActionSource::process galera::ReplicatorSMM::async_recv galera_recv wsrep_replication_process start_wsrep_THD start_thread clone
lock_mutex_enter is held in lock_clust_ rec_read_ check_and_ lock
after which it calls lock_rec_lock (as per call trace), eventually leading to innobase_ kill_connection where it again calls lock_mutex_enter leading to a deadlock.
Quick bt:
pthread_ cond_wait@ @GLIBC_ 2.3.2 wait_event enter_func kill_connection ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- ----> lock_mutex_enter deadlocks here again. foreach_ with_mask kill_one_ trx other_has_ conflicting rec_read_ check_and_ lock ------- ------- ------- ------- ------- ------- ------- > lock_mutex_enter for_mysql :index_ read :index_ read_map :ha_index_ read_map :read_range_ first :multi_ range_read_ next :dsmrr_ next :multi_ range_read_ next SELECT: :get_next command event:: do_apply_ event event:: do_apply_ event :apply_ event :TrxHandle: :apply :ReplicatorSMM: :apply_ trx :ReplicatorSMM: :process_ trx :GcsActionSourc e::dispatch :GcsActionSourc e::process :ReplicatorSMM: :async_ recv on_process
os_cond_wait
os_event_wait_low
sync_array_
mutex_spin_wait
mutex_enter_func
pfs_mutex_
innobase_
kill_handlerton
plugin_
ha_kill_connection
THD::awake
wsrep_thd_awake
wsrep_innobase_
wsrep_kill_victim
lock_rec_
lock_rec_lock_slow
lock_rec_lock
lock_clust_
sel_set_rec_lock
row_search_
ha_innobase:
handler:
handler:
handler:
handler:
DsMrr_impl:
ha_innobase:
QUICK_RANGE_
rr_quick
mysql_update
mysql_execute_
mysql_parse
Query_log_
Query_log_
Log_event:
wsrep_apply_rbr
wsrep_apply_cb
galera:
apply_trx_ws
galera:
galera:
galera:
galera:
galera:
galera_recv
wsrep_replicati
start_wsrep_THD
start_thread
clone