From: Marc Alff Date: April 3 2011 4:18pm Subject: bzr push into mysql-trunk-lock-order branch (marc.alff:3352 to 3353) List-Archive: http://lists.mysql.com/commits/134558 Message-Id: <201104031618.p33GIfr4024488@acsmt357.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 3353 Marc Alff 2011-04-03 Lock order, continued modified: sql/debug_lock_order.cc sql/mysqld.cc 3352 Marc Alff 2011-04-01 Work in progress modified: sql/debug_lock_order.cc sql/mysqld.cc === modified file 'sql/debug_lock_order.cc' --- a/sql/debug_lock_order.cc 2011-04-01 13:57:17 +0000 +++ b/sql/debug_lock_order.cc 2011-04-03 16:18:01 +0000 @@ -184,7 +184,9 @@ class LO_arc public: LO_arc(LO_node *from, LO_node *to, int flags) : m_from(from), m_to(to), m_flags(flags) - {} + { + m_self= (from == to); + } ~LO_arc() {} @@ -204,10 +206,14 @@ public: bool has_loop() const { return m_flags & LO_FLAG_LOOP; } + bool has_self() const + { return m_self; } + private: LO_node *m_from; LO_node *m_to; int m_flags; + bool m_self; }; LO_arc *LO_node::find_edge_to(const LO_node *to) const @@ -339,6 +345,9 @@ bool LO_graph::find_path(LO_node *from, { arc= *it; + if (arc->has_self()) + continue; + if (! arc->has_loop()) { n= arc->get_to(); @@ -402,25 +411,35 @@ void LO_graph::dump_dot() arc_it++) { a= *arc_it; - if (! a->has_loop()) + if (a ->has_self()) { fprintf(out_dot, - " %d -> %d;\n", + " %d -> %d [label=\"self\", color=blue, arrowsize=2, penwidth=5];\n", a->get_from()->get_unified_key(), a->get_to()->get_unified_key()); } else { - /* - As far ar the layout is concerned, - a FROM -> TO back loop is printed as TO <- FROM, - so there are no loops seen during rendering. - */ - - fprintf(out_dot, - " %d:c -> %d:s [dir=back color=red arrowsize=2 penwidth=5];\n", - a->get_to()->get_unified_key(), - a->get_from()->get_unified_key()); + if (a->has_loop()) + { + /* + As far ar the layout is concerned, + a FROM -> TO back loop is printed as TO <- FROM, + so there are no loops seen during rendering. + */ + + fprintf(out_dot, + " %d:c -> %d:s [label=\"FIXME\", dir=back, color=red, arrowsize=2, penwidth=5];\n", + a->get_to()->get_unified_key(), + a->get_from()->get_unified_key()); + } + else + { + fprintf(out_dot, + " %d -> %d;\n", + a->get_from()->get_unified_key(), + a->get_to()->get_unified_key()); + } } } @@ -865,13 +884,14 @@ void LO_graph::check(const LO_lock *old_ if (arc == NULL) { char buff[1024]; - sprintf(buff, "Error: missing arc %s -> %s\n", old_node->get_qname(), new_node->get_qname()); + /* Print in a C friendly format, to add the code back. */ + sprintf(buff, "Error: missing arc {\"%s\", \"%s\", 0},\n", old_node->get_qname(), new_node->get_qname()); if (out_log != NULL) { fprintf(out_log, "%s", buff); } - debug_lock_order_break_here(buff); + // debug_lock_order_break_here(buff); return; } @@ -904,14 +924,11 @@ void LO_graph::add_arc(LO_authorised_arc LO_node *from; LO_node *to; - DBUG_ASSERT(strcmp(arc->m_from_name, arc->m_to_name) != 0); - from= find_node(arc->m_from_name); to= find_node(arc->m_to_name); if ((from != NULL) && (to != NULL)) { - DBUG_ASSERT(from != to); add_arc(from, to, arc->m_flags); } else @@ -922,13 +939,20 @@ void LO_graph::add_arc(LO_node *from, LO { LO_node_list cycle; bool is_loop= ((flags & LO_FLAG_LOOP) == LO_FLAG_LOOP); - if (find_path(to, from, cycle)) + + DBUG_ASSERT(from != NULL); + DBUG_ASSERT(to != NULL); + + if (from != to) { - if ((out_log != NULL) && ! is_loop) + if (find_path(to, from, cycle)) { - dump_cycle(out_log, from, to, cycle); + if ((out_log != NULL) && ! is_loop) + { + dump_cycle(out_log, from, to, cycle); + } + return; } - return; } const LO_arc_list& arcs_out= from->get_arcs_out(); @@ -1069,11 +1093,16 @@ void LO_thread::remove_mutex_lock(LO_mut } } + char buff[1024]; + sprintf(buff, "Unlocking a mutex that this thread did not lock: %s\n", + mutex->get_class()->get_qname()); + if (out_log != NULL) { - fprintf(out_log, "Unlocking a mutex that this thread did not lock: %s\n", - mutex->get_class()->get_qname()); + fprintf(out_log, "%s", buff); } + + debug_lock_order_break_here(buff); } void LO_thread::add_rwlock_lock(LO_rwlock *rwlock, === modified file 'sql/mysqld.cc' --- a/sql/mysqld.cc 2011-04-01 13:57:17 +0000 +++ b/sql/mysqld.cc 2011-04-03 16:18:01 +0000 @@ -79,203 +79,80 @@ #include "debug_lock_order.h" static LO_authorised_arc debug_lock_order_arcs[]= { - {"mutex/innodb/autoinc_mutex", "mutex/innodb/buf_pool_mutex", 0}, - {"mutex/innodb/autoinc_mutex", "mutex/innodb/mutex_list_mutex", 0}, - {"mutex/innodb/autoinc_mutex", "mutex/innodb/os_mutex", 0}, - +/* + MAINTAINER: Please keep this list in order. + Tip: grep -v LO_FLAG_ | sort -u +*/ + {"mutex/innodb/buf_pool_mutex", "mutex/innodb/buf_pool_zip_mutex", 0}, + {"mutex/innodb/buf_pool_mutex", "mutex/innodb/fil_system_mutex", 0}, + {"mutex/innodb/buf_pool_mutex", "mutex/innodb/flush_list_mutex", 0}, {"mutex/innodb/buf_pool_mutex", "mutex/innodb/mutex_list_mutex", 0}, {"mutex/innodb/buf_pool_mutex", "mutex/innodb/os_mutex", 0}, {"mutex/innodb/buf_pool_mutex", "mutex/innodb/rw_lock_list_mutex", 0}, {"mutex/innodb/buf_pool_mutex", "mutex/innodb/ut_list_mutex", 0}, - {"mutex/innodb/buf_pool_mutex", "mutex/innodb/fil_system_mutex", 0}, - {"mutex/innodb/buf_pool_mutex", "mutex/innodb/flush_list_mutex", 0}, - {"mutex/innodb/buf_pool_mutex", "mutex/innodb/buf_pool_zip_mutex", 0}, - {"mutex/innodb/buf_pool_zip_mutex", "mutex/innodb/flush_list_mutex", 0}, - - {"mutex/innodb/dict_foreign_err_mutex", "mutex/sql/THD::LOCK_thd_data", 0}, // ??? - {"mutex/innodb/dict_sys_mutex", "mutex/innodb/buf_pool_mutex", 0}, + {"mutex/innodb/dict_sys_mutex", "mutex/innodb/buf_pool_zip_mutex", 0}, {"mutex/innodb/dict_sys_mutex", "mutex/innodb/fil_system_mutex", 0}, + {"mutex/innodb/dict_sys_mutex", "mutex/innodb/flush_list_mutex", 0}, {"mutex/innodb/dict_sys_mutex", "mutex/innodb/ibuf_mutex", 0}, + {"mutex/innodb/dict_sys_mutex", "mutex/innodb/lock_mutex", 0}, + {"mutex/innodb/dict_sys_mutex", "mutex/innodb/log_flush_order_mutex", 0}, {"mutex/innodb/dict_sys_mutex", "mutex/innodb/log_sys_mutex", 0}, {"mutex/innodb/dict_sys_mutex", "mutex/innodb/mutex_list_mutex", 0}, {"mutex/innodb/dict_sys_mutex", "mutex/innodb/os_mutex", 0}, + {"mutex/innodb/dict_sys_mutex", "mutex/innodb/purge_sys_bh_mutex", 0}, {"mutex/innodb/dict_sys_mutex", "mutex/innodb/recv_sys_mutex", 0}, - {"mutex/innodb/dict_sys_mutex", "mutex/innodb/rw_lock_list_mutex", 0}, - {"mutex/innodb/dict_sys_mutex", "mutex/innodb/flush_list_mutex", 0}, - {"mutex/innodb/dict_sys_mutex", "mutex/innodb/lock_mutex", 0}, - {"mutex/innodb/dict_sys_mutex", "mutex/innodb/log_flush_order_mutex", 0}, {"mutex/innodb/dict_sys_mutex", "mutex/innodb/rseg_mutex", 0}, + {"mutex/innodb/dict_sys_mutex", "mutex/innodb/rw_lock_list_mutex", 0}, {"mutex/innodb/dict_sys_mutex", "mutex/innodb/trx_mutex", 0}, {"mutex/innodb/dict_sys_mutex", "mutex/innodb/trx_undo_mutex", 0}, - {"mutex/innodb/dict_sys_mutex", "mutex/innodb/purge_sys_bh_mutex", 0}, - {"mutex/innodb/dict_sys_mutex", "mutex/sql/LOCK_global_system_variables", 0}, // ??? - {"mutex/innodb/dict_sys_mutex", "mutex/innodb/autoinc_mutex", 0}, - {"mutex/innodb/dict_sys_mutex", "mutex/innodb/buf_pool_zip_mutex", 0}, - {"mutex/innodb/dict_sys_mutex", "mutex/innodb/srv_sys_mutex", 0}, - {"mutex/innodb/dict_sys_mutex", "mutex/innodb/trx_doublewrite_mutex", 0}, - {"mutex/innodb/dict_sys_mutex", "mutex/innodb/dict_foreign_err_mutex", 0}, - {"mutex/innodb/dict_sys_mutex", "mutex/sql/LOCK_error_log", 0}, - + {"mutex/innodb/dict_sys_mutex", "mutex/sql/LOCK_global_system_variables", 0}, {"mutex/innodb/fil_system_mutex", "mutex/innodb/os_mutex", 0}, {"mutex/innodb/fil_system_mutex", "mutex/innodb/rw_lock_list_mutex", 0}, - - {"mutex/innodb/file_format_max_mutex", "mutex/innodb/log_sys_mutex", 0}, - {"mutex/innodb/file_format_max_mutex", "mutex/innodb/flush_list_mutex", 0}, - {"mutex/innodb/file_format_max_mutex", "mutex/innodb/log_flush_order_mutex", 0}, - {"mutex/innodb/ibuf_mutex", "mutex/innodb/buf_pool_mutex", 0}, {"mutex/innodb/ibuf_mutex", "mutex/innodb/fil_system_mutex", 0}, {"mutex/innodb/ibuf_mutex", "mutex/innodb/log_sys_mutex", 0}, {"mutex/innodb/ibuf_mutex", "mutex/innodb/os_mutex", 0}, {"mutex/innodb/ibuf_mutex", "mutex/innodb/recv_sys_mutex", 0}, - - {"mutex/innodb/ibuf_bitmap_mutex", "mutex/innodb/buf_pool_mutex", 0}, - {"mutex/innodb/lock_mutex", "mutex/innodb/trx_mutex", 0}, - {"mutex/innodb/lock_mutex", "mutex/sql/THD::LOCK_thd_data", 0}, - - {"mutex/innodb/lock_wait_mutex", "mutex/innodb/os_mutex", 0}, - {"mutex/innodb/lock_wait_mutex", "mutex/innodb/trx_mutex", 0}, - {"mutex/innodb/lock_wait_mutex", "mutex/innodb/lock_mutex", 0}, - {"mutex/innodb/log_flush_order_mutex", "mutex/innodb/flush_list_mutex", 0}, - {"mutex/innodb/log_flush_order_mutex", "mutex/innodb/os_mutex", 0}, - - {"mutex/innodb/log_sys_mutex", "mutex/innodb/log_flush_order_mutex", 0}, {"mutex/innodb/log_sys_mutex", "mutex/innodb/fil_system_mutex", 0}, - {"mutex/innodb/log_sys_mutex", "mutex/innodb/os_mutex", 0}, {"mutex/innodb/log_sys_mutex", "mutex/innodb/flush_list_mutex", 0}, - {"mutex/innodb/log_sys_mutex", "mutex/innodb/rw_lock_list_mutex", 0}, + {"mutex/innodb/log_sys_mutex", "mutex/innodb/log_flush_order_mutex", 0}, {"mutex/innodb/log_sys_mutex", "mutex/innodb/mutex_list_mutex", 0}, + {"mutex/innodb/log_sys_mutex", "mutex/innodb/os_mutex", 0}, {"mutex/innodb/log_sys_mutex", "mutex/innodb/recv_sys_mutex", 0}, - {"mutex/innodb/log_sys_mutex", "mutex/innodb/buf_pool_mutex", 0}, - {"mutex/innodb/log_sys_mutex", "mutex/innodb/srv_sys_mutex", 0}, - - {"mutex/innodb/prepare_commit_mutex", "mutex/innodb/lock_mutex", 0}, - {"mutex/innodb/prepare_commit_mutex", "mutex/innodb/log_sys_mutex", 0}, - {"mutex/innodb/prepare_commit_mutex", "mutex/innodb/rseg_mutex", 0}, - {"mutex/innodb/prepare_commit_mutex", "mutex/innodb/trx_mutex", 0}, - {"mutex/innodb/prepare_commit_mutex", "mutex/sql/LOG::LOCK_log", 0}, - {"mutex/innodb/prepare_commit_mutex", "mutex/sql/MYSQL_BIN_LOG::LOCK_prep_xids", 0}, - {"mutex/innodb/prepare_commit_mutex", "mutex/innodb/read_view_mutex", 0}, - {"mutex/innodb/prepare_commit_mutex", "mutex/innodb/flush_list_mutex", 0}, - {"mutex/innodb/prepare_commit_mutex", "mutex/innodb/log_flush_order_mutex", 0}, - {"mutex/innodb/prepare_commit_mutex", "mutex/innodb/purge_sys_bh_mutex", 0}, - + {"mutex/innodb/log_sys_mutex", "mutex/innodb/rw_lock_list_mutex", 0}, {"mutex/innodb/rseg_mutex", "mutex/innodb/buf_pool_mutex", 0}, + {"mutex/innodb/rseg_mutex", "mutex/innodb/buf_pool_zip_mutex", 0}, {"mutex/innodb/rseg_mutex", "mutex/innodb/fil_system_mutex", 0}, + {"mutex/innodb/rseg_mutex", "mutex/innodb/flush_list_mutex", 0}, {"mutex/innodb/rseg_mutex", "mutex/innodb/log_flush_order_mutex", 0}, {"mutex/innodb/rseg_mutex", "mutex/innodb/log_sys_mutex", 0}, - {"mutex/innodb/rseg_mutex", "mutex/innodb/purge_sys_bh_mutex", 0}, - {"mutex/innodb/rseg_mutex", "mutex/innodb/flush_list_mutex", 0}, {"mutex/innodb/rseg_mutex", "mutex/innodb/os_mutex", 0}, - {"mutex/innodb/rseg_mutex", "mutex/innodb/buf_pool_zip_mutex", 0}, - {"mutex/innodb/rseg_mutex", "mutex/innodb/trx_doublewrite_mutex", 0}, - + {"mutex/innodb/rseg_mutex", "mutex/innodb/purge_sys_bh_mutex", 0}, {"mutex/innodb/rw_lock_list_mutex", "mutex/innodb/os_mutex", 0}, - - {"mutex/innodb/srv_dict_tmpfile_mutex", "mutex/innodb/dict_sys_mutex", 0}, - {"mutex/innodb/srv_innodb_monitor_mutex", "mutex/innodb/buf_pool_mutex", 0}, {"mutex/innodb/srv_innodb_monitor_mutex", "mutex/innodb/buf_pool_zip_mutex", 0}, {"mutex/innodb/srv_innodb_monitor_mutex", "mutex/innodb/flush_list_mutex", 0}, - {"mutex/innodb/srv_innodb_monitor_mutex", "mutex/innodb/dict_foreign_err_mutex", 0}, - {"mutex/innodb/srv_innodb_monitor_mutex", "mutex/innodb/fil_system_mutex", 0}, - {"mutex/innodb/srv_innodb_monitor_mutex", "mutex/innodb/ibuf_mutex", 0}, - {"mutex/innodb/srv_innodb_monitor_mutex", "mutex/innodb/lock_mutex", 0}, - {"mutex/innodb/srv_innodb_monitor_mutex", "mutex/innodb/log_flush_order_mutex", 0}, - {"mutex/innodb/srv_innodb_monitor_mutex", "mutex/innodb/log_sys_mutex", 0}, - {"mutex/innodb/srv_innodb_monitor_mutex", "mutex/innodb/mem_pool_mutex", 0}, - {"mutex/innodb/srv_innodb_monitor_mutex", "mutex/innodb/os_mutex", 0}, - {"mutex/innodb/srv_innodb_monitor_mutex", "mutex/sql/THD::LOCK_thd_data", 0}, - - {"mutex/innodb/srv_monitor_file_mutex", "mutex/innodb/buf_pool_mutex", 0}, - {"mutex/innodb/srv_monitor_file_mutex", "mutex/innodb/dict_foreign_err_mutex", 0}, - {"mutex/innodb/srv_monitor_file_mutex", "mutex/innodb/fil_system_mutex", 0}, - {"mutex/innodb/srv_monitor_file_mutex", "mutex/innodb/flush_list_mutex", 0}, - {"mutex/innodb/srv_monitor_file_mutex", "mutex/innodb/ibuf_mutex", 0}, - {"mutex/innodb/srv_monitor_file_mutex", "mutex/innodb/lock_mutex", 0}, - {"mutex/innodb/srv_monitor_file_mutex", "mutex/innodb/log_flush_order_mutex", 0}, - {"mutex/innodb/srv_monitor_file_mutex", "mutex/innodb/log_sys_mutex", 0}, - {"mutex/innodb/srv_monitor_file_mutex", "mutex/innodb/mem_pool_mutex", 0}, - {"mutex/innodb/srv_monitor_file_mutex", "mutex/innodb/os_mutex", 0}, - {"mutex/innodb/srv_monitor_file_mutex", "mutex/innodb/srv_innodb_monitor_mutex", 0}, - {"mutex/innodb/srv_monitor_file_mutex", "mutex/sql/THD::LOCK_thd_data", 0}, - {"mutex/innodb/trx_doublewrite_mutex", "mutex/innodb/fil_system_mutex", 0}, {"mutex/innodb/trx_doublewrite_mutex", "mutex/innodb/os_mutex", 0}, - {"mutex/innodb/trx_mutex", "mutex/innodb/mutex_list_mutex", 0}, {"mutex/innodb/trx_mutex", "mutex/innodb/os_mutex", 0}, - {"mutex/innodb/trx_undo_mutex", "mutex/innodb/buf_pool_mutex", 0}, + {"mutex/innodb/trx_undo_mutex", "mutex/innodb/buf_pool_zip_mutex", 0}, {"mutex/innodb/trx_undo_mutex", "mutex/innodb/fil_system_mutex", 0}, {"mutex/innodb/trx_undo_mutex", "mutex/innodb/flush_list_mutex", 0}, {"mutex/innodb/trx_undo_mutex", "mutex/innodb/log_flush_order_mutex", 0}, {"mutex/innodb/trx_undo_mutex", "mutex/innodb/log_sys_mutex", 0}, - {"mutex/innodb/trx_undo_mutex", "mutex/innodb/rseg_mutex", 0}, {"mutex/innodb/trx_undo_mutex", "mutex/innodb/os_mutex", 0}, - {"mutex/innodb/trx_undo_mutex", "mutex/innodb/buf_pool_zip_mutex", 0}, - {"mutex/innodb/trx_undo_mutex", "mutex/innodb/trx_doublewrite_mutex", 0}, - + {"mutex/innodb/trx_undo_mutex", "mutex/innodb/rseg_mutex", 0}, {"mutex/myisam/MYISAM_SHARE::intern_lock", "mutex/mysys/KEY_CACHE::cache_lock", 0}, - {"mutex/myisam/MYISAM_SHARE::intern_lock", "mutex/sql/LOCK_error_log", 0}, - {"mutex/myisam/MYISAM_SHARE::intern_lock", "mutex/sql/THD::LOCK_thd_data", 0}, - - {"mutex/mysys/my_thread_var::mutex", "mutex/sql/LOCK_event_queue", 0}, - {"mutex/mysys/my_thread_var::mutex", "mutex/sql/DEBUG_SYNC::mutex", 0}, - {"mutex/mysys/my_thread_var::mutex", "mutex/mysys/THR_LOCK::mutex", 0}, - {"mutex/mysys/my_thread_var::mutex", "mutex/sql/LOCK_user_locks", 0}, - {"mutex/mysys/my_thread_var::mutex", "mutex/sql/MDL_wait::LOCK_wait_status", 0}, - {"mutex/mysys/THR_LOCK_myisam", "mutex/myisam/MYISAM_SHARE::intern_lock", 0}, {"mutex/mysys/THR_LOCK_myisam", "mutex/mysys/KEY_CACHE::cache_lock", 0}, {"mutex/mysys/THR_LOCK_myisam", "mutex/mysys/THR_LOCK_open", 0}, - {"mutex/mysys/THR_LOCK_myisam", "mutex/sql/LOCK_error_log", 0}, - - {"mutex/mysys/THR_LOCK::mutex", "mutex/csv/TINA_SHARE::mutex", 0}, - {"mutex/mysys/THR_LOCK::mutex", "mutex/sql/DEBUG_SYNC::mutex", 0}, - - {"mutex/mysys/THR_LOCK_charset", "mutex/mysys/THR_LOCK_open", 0}, - - {"mutex/csv/tina", "mutex/mysys/THR_LOCK_open", 0}, - - {"mutex/archive/ARCHIVE_SHARE::mutex", "mutex/mysys/THR_LOCK_open", 0}, - - {"mutex/archive/archive_mutex", "mutex/mysys/THR_LOCK_open", 0}, - - {"mutex/sql/Delayed_insert::mutex", "mutex/sql/LOCK_delayed_status", 0}, - {"mutex/sql/Delayed_insert::mutex", "mutex/myisam/MYISAM_SHARE::intern_lock", 0}, - {"mutex/sql/Delayed_insert::mutex", "mutex/mysys/THR_LOCK::mutex", 0}, - {"mutex/sql/Delayed_insert::mutex", "mutex/mysys/THR_LOCK_myisam", 0}, - {"mutex/sql/Delayed_insert::mutex", "mutex/mysys/THR_LOCK_open", 0}, - {"mutex/sql/Delayed_insert::mutex", "mutex/mysys/THR_LOCK_threads", 0}, - {"mutex/sql/Delayed_insert::mutex", "mutex/sql/LOCK_plugin", 0}, - {"mutex/sql/Delayed_insert::mutex", "mutex/sql/TABLE_SHARE::LOCK_ha_data", 0}, - {"mutex/sql/Delayed_insert::mutex", "mutex/mysys/KEY_CACHE::cache_lock", 0}, - {"mutex/sql/Delayed_insert::mutex", "mutex/sql/MDL_map::mutex", 0}, - {"mutex/sql/Delayed_insert::mutex", "mutex/sql/MDL_wait::LOCK_wait_status", 0}, - - {"mutex/sql/LOCK_delayed_insert", "mutex/sql/Delayed_insert::mutex", 0}, - {"mutex/sql/LOCK_delayed_insert", "mutex/sql/DEBUG_SYNC::mutex", 0}, - {"mutex/sql/LOCK_delayed_insert", "mutex/sql/LOCK_plugin", 0}, - {"mutex/sql/LOCK_delayed_insert", "mutex/sql/LOCK_prepared_stmt_count", 0}, - {"mutex/sql/LOCK_delayed_insert", "mutex/sql/LOCK_thread_count", 0}, - {"mutex/sql/LOCK_delayed_insert", "mutex/sql/LOCK_xid_cache", 0}, - {"mutex/sql/LOCK_delayed_insert", "mutex/sql/THD::LOCK_thd_data", 0}, - - {"mutex/sql/LOCK_delayed_create", "mutex/sql/Delayed_insert::mutex", 0}, - {"mutex/sql/LOCK_delayed_create", "mutex/sql/LOCK_delayed_insert", 0}, - {"mutex/sql/LOCK_delayed_create", "mutex/sql/LOCK_global_system_variables", 0}, - {"mutex/sql/LOCK_delayed_create", "mutex/sql/LOCK_plugin", 0}, - {"mutex/sql/LOCK_delayed_create", "mutex/sql/LOCK_thread_count", 0}, - {"mutex/sql/LOCK_delayed_create", "mutex/sql/THD::LOCK_thd_data", 0}, - {"mutex/sql/LOCK_delayed_create", "mutex/sql/DEBUG_SYNC::mutex", 0}, - {"mutex/sql/LOCK_delayed_create", "mutex/sql/LOCK_prepared_stmt_count", 0}, - {"mutex/sql/LOCK_delayed_create", "mutex/sql/LOCK_xid_cache", 0}, - + {"mutex/mysys/my_thread_var::mutex", "mutex/sql/LOCK_event_queue", 0}, {"mutex/sql/Event_scheduler::LOCK_scheduler_state", "mutex/mysys/LOCK_alarm", 0}, {"mutex/sql/Event_scheduler::LOCK_scheduler_state", "mutex/mysys/my_thread_var::mutex", 0}, {"mutex/sql/Event_scheduler::LOCK_scheduler_state", "mutex/sql/DEBUG_SYNC::mutex", 0}, @@ -287,85 +164,47 @@ static LO_authorised_arc debug_lock_orde {"mutex/sql/Event_scheduler::LOCK_scheduler_state", "mutex/sql/LOCK_thread_count", 0}, {"mutex/sql/Event_scheduler::LOCK_scheduler_state", "mutex/sql/LOCK_xid_cache", 0}, {"mutex/sql/Event_scheduler::LOCK_scheduler_state", "mutex/sql/THD::LOCK_thd_data", 0}, - - {"mutex/sql/LOCK_error_messages", "mutex/mysys/THR_LOCK_open", 0}, - - {"mutex/sql/LOCK_des_key_file", "mutex/mysys/THR_LOCK_open", 0}, - - {"mutex/sql/LOCK_gdl", "mutex/mysys/THR_LOCK_open", 0}, - {"mutex/sql/LOCK_gdl", "mutex/mysys/THR_LOCK_myisam", 0}, - {"mutex/sql/LOCK_gdl", "mutex/sql/LOCK_plugin", 0}, - {"mutex/sql/LOCK_gdl", "mutex/innodb/dict_sys_mutex", 0}, - {"mutex/sql/LOCK_gdl", "mutex/innodb/lock_mutex", 0}, - {"mutex/sql/LOCK_gdl", "mutex/innodb/log_sys_mutex", 0}, - {"mutex/sql/LOCK_gdl", "mutex/innodb/mutex_list_mutex", 0}, - {"mutex/sql/LOCK_gdl", "mutex/innodb/os_mutex", 0}, - {"mutex/sql/LOCK_gdl", "mutex/innodb/srv_sys_mutex", 0}, - {"mutex/sql/LOCK_gdl", "mutex/innodb/trx_mutex", 0}, - {"mutex/sql/LOCK_gdl", "mutex/innodb/fil_system_mutex", 0}, - + {"mutex/sql/HA_DATA_PARTITION::LOCK_auto_inc", "mutex/myisam/MYISAM_SHARE::intern_lock", 0}, {"mutex/sql/LOCK_active_mi", "mutex/myisam/MYISAM_SHARE::intern_lock", 0}, + {"mutex/sql/LOCK_active_mi", "mutex/mysys/IO_CACHE::append_buffer_lock", 0}, + {"mutex/sql/LOCK_active_mi", "mutex/mysys/LOCK_alarm", 0}, {"mutex/sql/LOCK_active_mi", "mutex/mysys/THR_LOCK::mutex", 0}, {"mutex/sql/LOCK_active_mi", "mutex/mysys/THR_LOCK_myisam", 0}, {"mutex/sql/LOCK_active_mi", "mutex/mysys/THR_LOCK_open", 0}, + {"mutex/sql/LOCK_active_mi", "mutex/mysys/my_thread_var::mutex", 0}, {"mutex/sql/LOCK_active_mi", "mutex/sql/DEBUG_SYNC::mutex", 0}, + {"mutex/sql/LOCK_active_mi", "mutex/sql/LOCK_error_log", 0}, + {"mutex/sql/LOCK_active_mi", "mutex/sql/LOCK_global_system_variables", 0}, {"mutex/sql/LOCK_active_mi", "mutex/sql/LOCK_open", 0}, {"mutex/sql/LOCK_active_mi", "mutex/sql/LOCK_plugin", 0}, {"mutex/sql/LOCK_active_mi", "mutex/sql/LOCK_prepared_stmt_count", 0}, {"mutex/sql/LOCK_active_mi", "mutex/sql/LOCK_thread_count", 0}, {"mutex/sql/LOCK_active_mi", "mutex/sql/LOCK_xid_cache", 0}, + {"mutex/sql/LOCK_active_mi", "mutex/sql/LOG::LOCK_log", 0}, {"mutex/sql/LOCK_active_mi", "mutex/sql/MDL_map::mutex", 0}, + {"mutex/sql/LOCK_active_mi", "mutex/sql/MYSQL_RELAY_LOG::LOCK_index", 0}, {"mutex/sql/LOCK_active_mi", "mutex/sql/Master_info::data_lock", 0}, - {"mutex/sql/LOCK_active_mi", "mutex/sql/Relay_log_info::data_lock", 0}, - {"mutex/sql/LOCK_active_mi", "mutex/sql/TABLE_SHARE::LOCK_ha_data", 0}, - {"mutex/sql/LOCK_active_mi", "mutex/sql/THD::LOCK_thd_data", 0}, - {"mutex/sql/LOCK_active_mi", "mutex/mysys/THR_LOCK_charset", 0}, - {"mutex/sql/LOCK_active_mi", "mutex/mysys/KEY_CACHE::cache_lock", 0}, {"mutex/sql/LOCK_active_mi", "mutex/sql/Master_info::run_lock", 0}, + {"mutex/sql/LOCK_active_mi", "mutex/sql/Relay_log_info::data_lock", 0}, {"mutex/sql/LOCK_active_mi", "mutex/sql/Relay_log_info::run_lock", 0}, {"mutex/sql/LOCK_active_mi", "mutex/sql/Slave_reporting_capability::err_lock", 0}, - {"mutex/sql/LOCK_active_mi", "mutex/mysys/IO_CACHE::append_buffer_lock", 0}, - {"mutex/sql/LOCK_active_mi", "mutex/sql/LOG::LOCK_log", 0}, - {"mutex/sql/LOCK_active_mi", "mutex/mysys/LOCK_alarm", 0}, - {"mutex/sql/LOCK_active_mi", "mutex/mysys/my_thread_var::mutex", 0}, - {"mutex/sql/LOCK_active_mi", "mutex/sql/LOCK_error_log", 0}, - {"mutex/sql/LOCK_active_mi", "mutex/sql/MYSQL_RELAY_LOG::LOCK_index", 0}, - + {"mutex/sql/LOCK_active_mi", "mutex/sql/TABLE_SHARE::LOCK_ha_data", 0}, + {"mutex/sql/LOCK_active_mi", "mutex/sql/THD::LOCK_thd_data", 0}, {"mutex/sql/LOCK_event_queue", "mutex/sql/LOCK_error_log", 0}, - + {"mutex/sql/LOCK_gdl", "mutex/mysys/THR_LOCK_open", 0}, {"mutex/sql/LOCK_global_system_variables", "mutex/sql/LOCK_plugin", 0}, {"mutex/sql/LOCK_global_system_variables", "mutex/sql/LOCK_prepared_stmt_count", 0}, - {"mutex/sql/LOCK_global_system_variables", "mutex/sql/LOCK_thread_count", 0}, - {"mutex/sql/LOCK_global_system_variables", "mutex/sql/Query_cache::structure_guard_mutex", 0}, - {"mutex/sql/LOCK_global_system_variables", "mutex/sql/DEBUG_SYNC::mutex", 0}, - {"mutex/sql/LOCK_global_system_variables", "mutex/mysys/LOCK_alarm", 0}, - {"mutex/sql/LOCK_global_system_variables", "mutex/sql/Relay_log_info::data_lock", 0}, - {"mutex/sql/LOCK_global_system_variables", "mutex/sql/LOG::LOCK_log", 0}, - {"mutex/sql/LOCK_global_system_variables", "mutex/innodb/file_format_max_mutex", 0}, - {"mutex/sql/LOCK_global_system_variables", "mutex/innodb/log_sys_mutex", 0}, - + {"mutex/sql/LOCK_open", "mutex/innodb/dict_sys_mutex", 0}, + {"mutex/sql/LOCK_open", "mutex/innodb/innobase_share_mutex", 0}, {"mutex/sql/LOCK_open", "mutex/myisam/MYISAM_SHARE::intern_lock", 0}, {"mutex/sql/LOCK_open", "mutex/mysys/KEY_CACHE::cache_lock", 0}, + {"mutex/sql/LOCK_open", "mutex/mysys/THR_LOCK_charset", 0}, + {"mutex/sql/LOCK_open", "mutex/mysys/THR_LOCK_heap", 0}, {"mutex/sql/LOCK_open", "mutex/mysys/THR_LOCK_myisam", 0}, {"mutex/sql/LOCK_open", "mutex/mysys/THR_LOCK_open", 0}, {"mutex/sql/LOCK_open", "mutex/sql/LOCK_plugin", 0}, - {"mutex/sql/LOCK_open", "mutex/mysys/THR_LOCK_charset", 0}, - {"mutex/sql/LOCK_open", "mutex/sql/LOCK_error_log", 0}, {"mutex/sql/LOCK_open", "mutex/sql/hash_filo::lock", 0}, - {"mutex/sql/LOCK_open", "mutex/csv/tina", 0}, - {"mutex/sql/LOCK_open", "mutex/example/example", 0}, - {"mutex/sql/LOCK_open", "mutex/innodb/dict_sys_mutex", 0}, - {"mutex/sql/LOCK_open", "mutex/innodb/innobase_share_mutex", 0}, - {"mutex/sql/LOCK_open", "mutex/mysys/THR_LOCK_heap", 0}, - {"mutex/sql/LOCK_open", "mutex/sql/MDL_wait::LOCK_wait_status", 0}, - {"mutex/sql/LOCK_open", "mutex/archive/archive_mutex", 0}, - {"mutex/sql/LOCK_open", "mutex/mysys/my_thread_var::mutex", 0}, - {"mutex/sql/LOCK_open", "mutex/blackhole/blackhole", 0}, - {"mutex/sql/LOCK_plugin", "mutex/sql/LOCK_error_log", 0}, - {"mutex/sql/LOCK_plugin", "mutex/mysys/KEY_CACHE::cache_lock", 0}, - {"mutex/sql/LOCK_plugin", "mutex/mysys/THR_LOCK_open", 0}, - {"mutex/sql/LOCK_status", "mutex/innodb/buf_pool_mutex", 0}, {"mutex/sql/LOCK_status", "mutex/innodb/buf_pool_zip_mutex", 0}, {"mutex/sql/LOCK_status", "mutex/innodb/flush_list_mutex", 0}, @@ -374,52 +213,37 @@ static LO_authorised_arc debug_lock_orde {"mutex/sql/LOCK_status", "mutex/sql/LOCK_global_system_variables", 0}, {"mutex/sql/LOCK_status", "mutex/sql/LOCK_prepared_stmt_count", 0}, {"mutex/sql/LOCK_status", "mutex/sql/Relay_log_info::data_lock", 0}, - {"mutex/sql/LOCK_status", "mutex/sql/LOCK_thread_count", 0}, - {"mutex/sql/LOCK_status", "mutex/sql/LOG::LOCK_log", 0}, - {"mutex/sql/LOCK_status", "mutex/sql/Query_cache::structure_guard_mutex", 0}, - {"mutex/sql/LOCK_status", "mutex/innodb/dict_sys_mutex", 0}, - {"mutex/sql/LOCK_status", "mutex/innodb/lock_mutex", 0}, - {"mutex/sql/LOCK_status", "mutex/innodb/log_sys_mutex", 0}, - {"mutex/sql/LOCK_status", "mutex/innodb/rseg_mutex", 0}, - {"mutex/sql/LOCK_status", "mutex/innodb/trx_mutex", 0}, - {"mutex/sql/LOCK_status", "mutex/innodb/trx_undo_mutex", 0}, - {"mutex/sql/LOCK_status", "mutex/sql/THD::LOCK_thd_data", 0}, - - {"mutex/sql/LOCK_thread_count", "mutex/sql/LOCK_plugin", 0}, - {"mutex/sql/LOCK_thread_count", "mutex/sql/LOCK_prepared_stmt_count", 0}, {"mutex/sql/LOCK_thread_count", "mutex/innodb/mutex_list_mutex", 0}, {"mutex/sql/LOCK_thread_count", "mutex/innodb/os_mutex", 0}, {"mutex/sql/LOCK_thread_count", "mutex/innodb/trx_mutex", 0}, + {"mutex/sql/LOCK_thread_count", "mutex/mysys/IO_CACHE::append_buffer_lock", 0}, + {"mutex/sql/LOCK_thread_count", "mutex/mysys/THR_LOCK_open", 0}, + {"mutex/sql/LOCK_thread_count", "mutex/mysys/my_thread_var::mutex", 0}, {"mutex/sql/LOCK_thread_count", "mutex/sql/DEBUG_SYNC::mutex", 0}, - {"mutex/sql/LOCK_thread_count", "mutex/sql/LOCK_user_locks", 0}, + {"mutex/sql/LOCK_thread_count", "mutex/sql/LOCK_plugin", 0}, + {"mutex/sql/LOCK_thread_count", "mutex/sql/LOCK_prepared_stmt_count", 0}, {"mutex/sql/LOCK_thread_count", "mutex/sql/LOCK_xid_cache", 0}, {"mutex/sql/LOCK_thread_count", "mutex/sql/MDL_map::mutex", 0}, - {"mutex/sql/LOCK_thread_count", "mutex/mysys/my_thread_var::mutex", 0}, - {"mutex/sql/LOCK_thread_count", "mutex/sql/LOCK_event_queue", 0}, - {"mutex/sql/LOCK_thread_count", "mutex/mysys/THR_LOCK_open", 0}, - {"mutex/sql/LOCK_thread_count", "mutex/mysys/IO_CACHE::append_buffer_lock", 0}, - - {"mutex/sql/LOCK_user_conn", "mutex/sql/hash_filo::lock", 0}, - - {"mutex/sql/THD::LOCK_thd_data", "mutex/mysys/LOCK_alarm", 0}, - {"mutex/sql/THD::LOCK_thd_data", "mutex/sql/LOCK_error_log", 0}, - {"mutex/sql/THD::LOCK_thd_data", "mutex/sql/LOCK_event_queue", 0}, - {"mutex/sql/THD::LOCK_thd_data", "mutex/mysys/THR_LOCK::mutex", 0}, - {"mutex/sql/THD::LOCK_thd_data", "mutex/sql/DEBUG_SYNC::mutex", 0}, - {"mutex/sql/THD::LOCK_thd_data", "mutex/sql/LOCK_user_locks", 0}, - {"mutex/sql/THD::LOCK_thd_data", "mutex/sql/MDL_wait::LOCK_wait_status", 0}, - {"mutex/sql/THD::LOCK_thd_data", "mutex/sql/LOG::LOCK_log", 0}, - {"mutex/sql/LOCK_uuid_generator", "mutex/sql/LOCK_thread_count", 0}, - - {"mutex/sql/Master_info::data_lock", "mutex/sql/Relay_log_info::data_lock", 0}, + {"mutex/sql/LOG::LOCK_log", "mutex/mysys/IO_CACHE::append_buffer_lock", 0}, + {"mutex/sql/LOG::LOCK_log", "mutex/mysys/THR_LOCK_open", 0}, + {"mutex/sql/LOG::LOCK_log", "mutex/sql/LOCK_error_log", 0}, + {"mutex/sql/LOG::LOCK_log", "mutex/sql/LOCK_thread_count", 0}, + {"mutex/sql/LOG::LOCK_log", "mutex/sql/MYSQL_BIN_LOG::LOCK_index", 0}, + {"mutex/sql/LOG::LOCK_log", "mutex/sql/MYSQL_RELAY_LOG::LOCK_index", 0}, + {"mutex/sql/LOG::LOCK_log", "mutex/sql/Relay_log_info::log_space_lock", 0}, + {"mutex/sql/MYSQL_BIN_LOG::LOCK_index", "mutex/mysys/THR_LOCK_open", 0}, + {"mutex/sql/MYSQL_BIN_LOG::LOCK_index", "mutex/sql/LOCK_thread_count", 0}, + {"mutex/sql/MYSQL_RELAY_LOG::LOCK_index", "mutex/mysys/IO_CACHE::append_buffer_lock", 0}, + {"mutex/sql/MYSQL_RELAY_LOG::LOCK_index", "mutex/mysys/THR_LOCK_open", 0}, + {"mutex/sql/MYSQL_RELAY_LOG::LOCK_index", "mutex/sql/LOCK_thread_count", 0}, + {"mutex/sql/MYSQL_RELAY_LOG::LOCK_index", "mutex/sql/Relay_log_info::log_space_lock", 0}, {"mutex/sql/Master_info::data_lock", "mutex/mysys/IO_CACHE::append_buffer_lock", 0}, {"mutex/sql/Master_info::data_lock", "mutex/mysys/THR_LOCK_open", 0}, {"mutex/sql/Master_info::data_lock", "mutex/sql/LOG::LOCK_log", 0}, {"mutex/sql/Master_info::data_lock", "mutex/sql/MYSQL_RELAY_LOG::LOCK_index", 0}, + {"mutex/sql/Master_info::data_lock", "mutex/sql/Relay_log_info::data_lock", 0}, {"mutex/sql/Master_info::data_lock", "mutex/sql/Slave_reporting_capability::err_lock", 0}, - - {"mutex/sql/Master_info::run_lock", "mutex/sql/Slave_reporting_capability::err_lock", 0}, {"mutex/sql/Master_info::run_lock", "mutex/mysys/IO_CACHE::append_buffer_lock", 0}, {"mutex/sql/Master_info::run_lock", "mutex/mysys/LOCK_alarm", 0}, {"mutex/sql/Master_info::run_lock", "mutex/mysys/THR_LOCK_open", 0}, @@ -435,16 +259,24 @@ static LO_authorised_arc debug_lock_orde {"mutex/sql/Master_info::run_lock", "mutex/sql/MYSQL_RELAY_LOG::LOCK_index", 0}, {"mutex/sql/Master_info::run_lock", "mutex/sql/Master_info::data_lock", 0}, {"mutex/sql/Master_info::run_lock", "mutex/sql/Relay_log_info::data_lock", 0}, + {"mutex/sql/Master_info::run_lock", "mutex/sql/Slave_reporting_capability::err_lock", 0}, {"mutex/sql/Master_info::run_lock", "mutex/sql/THD::LOCK_thd_data", 0}, - - {"mutex/sql/Relay_log_info::run_lock", "mutex/sql/Slave_reporting_capability::err_lock", 0}, - {"mutex/sql/Relay_log_info::run_lock", "mutex/sql/Relay_log_info::data_lock", 0}, + {"mutex/sql/Relay_log_info::data_lock", "mutex/mysys/IO_CACHE::append_buffer_lock", 0}, + {"mutex/sql/Relay_log_info::data_lock", "mutex/mysys/THR_LOCK_open", 0}, + {"mutex/sql/Relay_log_info::data_lock", "mutex/sql/LOCK_error_log", 0}, + {"mutex/sql/Relay_log_info::data_lock", "mutex/sql/LOCK_thread_count", 0}, + {"mutex/sql/Relay_log_info::data_lock", "mutex/sql/LOG::LOCK_log", 0}, + {"mutex/sql/Relay_log_info::data_lock", "mutex/sql/MYSQL_RELAY_LOG::LOCK_index", 0}, + {"mutex/sql/Relay_log_info::data_lock", "mutex/sql/Relay_log_info::log_space_lock", 0}, + {"mutex/sql/Relay_log_info::data_lock", "mutex/sql/Slave_reporting_capability::err_lock", 0}, + {"mutex/sql/Relay_log_info::log_space_lock", "mutex/mysys/THR_LOCK_open", 0}, {"mutex/sql/Relay_log_info::run_lock", "mutex/mysys/IO_CACHE::append_buffer_lock", 0}, {"mutex/sql/Relay_log_info::run_lock", "mutex/mysys/LOCK_alarm", 0}, {"mutex/sql/Relay_log_info::run_lock", "mutex/mysys/THR_LOCK_open", 0}, {"mutex/sql/Relay_log_info::run_lock", "mutex/mysys/my_thread_var::mutex", 0}, {"mutex/sql/Relay_log_info::run_lock", "mutex/sql/DEBUG_SYNC::mutex", 0}, {"mutex/sql/Relay_log_info::run_lock", "mutex/sql/LOCK_error_log", 0}, + {"mutex/sql/Relay_log_info::run_lock", "mutex/sql/LOCK_global_system_variables", 0}, {"mutex/sql/Relay_log_info::run_lock", "mutex/sql/LOCK_plugin", 0}, {"mutex/sql/Relay_log_info::run_lock", "mutex/sql/LOCK_prepared_stmt_count", 0}, {"mutex/sql/Relay_log_info::run_lock", "mutex/sql/LOCK_thread_count", 0}, @@ -452,64 +284,186 @@ static LO_authorised_arc debug_lock_orde {"mutex/sql/Relay_log_info::run_lock", "mutex/sql/LOG::LOCK_log", 0}, {"mutex/sql/Relay_log_info::run_lock", "mutex/sql/MYSQL_RELAY_LOG::LOCK_index", 0}, {"mutex/sql/Relay_log_info::run_lock", "mutex/sql/Master_info::data_lock", 0}, + {"mutex/sql/Relay_log_info::run_lock", "mutex/sql/Relay_log_info::data_lock", 0}, + {"mutex/sql/Relay_log_info::run_lock", "mutex/sql/Slave_reporting_capability::err_lock", 0}, {"mutex/sql/Relay_log_info::run_lock", "mutex/sql/THD::LOCK_thd_data", 0}, + {"mutex/sql/THD::LOCK_thd_data", "mutex/mysys/LOCK_alarm", 0}, + {"mutex/sql/THD::LOCK_thd_data", "mutex/mysys/my_thread_var::mutex", 0}, + {"mutex/sql/THD::LOCK_thd_data", "mutex/sql/LOCK_error_log", 0}, + {"mutex/sql/THD::LOCK_thd_data", "mutex/sql/LOCK_event_queue", 0}, + {"mutex/sql/THD::LOCK_thd_data", "mutex/sql/LOG::LOCK_log", 0}, - {"mutex/sql/Relay_log_info::data_lock", "mutex/mysys/IO_CACHE::append_buffer_lock", 0}, - {"mutex/sql/Relay_log_info::data_lock", "mutex/mysys/THR_LOCK_open", 0}, - {"mutex/sql/Relay_log_info::data_lock", "mutex/sql/LOCK_error_log", 0}, - {"mutex/sql/Relay_log_info::data_lock", "mutex/sql/LOCK_thread_count", 0}, - {"mutex/sql/Relay_log_info::data_lock", "mutex/sql/LOG::LOCK_log", 0}, - {"mutex/sql/Relay_log_info::data_lock", "mutex/sql/MYSQL_RELAY_LOG::LOCK_index", 0}, - {"mutex/sql/Relay_log_info::data_lock", "mutex/sql/Relay_log_info::log_space_lock", 0}, - {"mutex/sql/Relay_log_info::data_lock", "mutex/sql/Slave_reporting_capability::err_lock", 0}, - - {"mutex/sql/Relay_log_info::log_space_lock", "mutex/mysys/THR_LOCK_open", 0}, - - {"mutex/sql/MYSQL_BIN_LOG::LOCK_index", "mutex/mysys/THR_LOCK_open", 0}, - {"mutex/sql/MYSQL_BIN_LOG::LOCK_index", "mutex/sql/LOCK_thread_count", 0}, - - {"mutex/sql/MYSQL_RELAY_LOG::LOCK_index", "mutex/mysys/IO_CACHE::append_buffer_lock", 0}, - {"mutex/sql/MYSQL_RELAY_LOG::LOCK_index", "mutex/mysys/THR_LOCK_open", 0}, - {"mutex/sql/MYSQL_RELAY_LOG::LOCK_index", "mutex/sql/LOCK_thread_count", 0}, - {"mutex/sql/MYSQL_RELAY_LOG::LOCK_index", "mutex/sql/Relay_log_info::log_space_lock", 0}, - - {"mutex/sql/LOG::LOCK_log", "mutex/mysys/THR_LOCK_open", 0}, - {"mutex/sql/LOG::LOCK_log", "mutex/sql/LOCK_thread_count", 0}, - {"mutex/sql/LOG::LOCK_log", "mutex/sql/MYSQL_BIN_LOG::LOCK_index", 0}, - {"mutex/sql/LOG::LOCK_log", "mutex/mysys/IO_CACHE::append_buffer_lock", 0}, - {"mutex/sql/LOG::LOCK_log", "mutex/sql/LOCK_error_log", 0}, - {"mutex/sql/LOG::LOCK_log", "mutex/sql/MYSQL_BIN_LOG::LOCK_prep_xids", 0}, - {"mutex/sql/LOG::LOCK_log", "mutex/sql/MYSQL_RELAY_LOG::LOCK_index", 0}, - {"mutex/sql/LOG::LOCK_log", "mutex/sql/Relay_log_info::log_space_lock", 0}, - - {"mutex/sql/hash_filo::lock", "mutex/sql/LOCK_global_system_variables", 0}, + {"mutex/csv/tina", "mutex/mysys/THR_LOCK_open", 0}, + {"mutex/innodb/dict_sys_mutex", "mutex/innodb/autoinc_mutex", 0}, + {"mutex/innodb/lock_wait_mutex", "mutex/innodb/lock_mutex", 0}, + {"mutex/innodb/lock_wait_mutex", "mutex/innodb/os_mutex", 0}, + {"mutex/innodb/lock_wait_mutex", "mutex/innodb/trx_mutex", 0}, + {"mutex/myisam/MYISAM_SHARE::intern_lock", "mutex/sql/LOCK_error_log", 0}, + {"mutex/myisam/MYISAM_SHARE::intern_lock", "mutex/sql/THD::LOCK_thd_data", 0}, + {"mutex/mysys/THR_LOCK::mutex", "mutex/csv/TINA_SHARE::mutex", 0}, + {"mutex/mysys/THR_LOCK_charset", "mutex/mysys/THR_LOCK_open", 0}, + {"mutex/mysys/THR_LOCK_myisam", "mutex/sql/LOCK_error_log", 0}, + {"mutex/sql/LOCK_active_mi", "mutex/mysys/KEY_CACHE::cache_lock", 0}, + {"mutex/sql/LOCK_active_mi", "mutex/mysys/THR_LOCK_charset", 0}, + {"mutex/sql/LOCK_des_key_file", "mutex/mysys/THR_LOCK_open", 0}, + {"mutex/sql/LOCK_error_messages", "mutex/mysys/THR_LOCK_open", 0}, + {"mutex/sql/LOCK_gdl", "mutex/mysys/THR_LOCK_myisam", 0}, + {"mutex/sql/LOCK_gdl", "mutex/sql/LOCK_plugin", 0}, + {"mutex/sql/LOCK_global_system_variables", "mutex/sql/DEBUG_SYNC::mutex", 0}, + {"mutex/sql/LOCK_global_system_variables", "mutex/sql/LOCK_thread_count", 0}, + {"mutex/sql/LOCK_global_system_variables", "mutex/sql/Query_cache::structure_guard_mutex", 0}, + {"mutex/sql/LOCK_global_system_variables", "mutex/sql/Relay_log_info::data_lock", 0}, + {"mutex/sql/LOCK_open", "mutex/csv/tina", 0}, + {"mutex/sql/LOCK_open", "mutex/example/example", 0}, + {"mutex/sql/LOCK_open", "mutex/sql/LOCK_error_log", 0}, + {"mutex/sql/LOCK_plugin", "mutex/mysys/KEY_CACHE::cache_lock", 0}, + {"mutex/sql/LOCK_plugin", "mutex/mysys/THR_LOCK_open", 0}, + {"mutex/sql/LOCK_status", "mutex/sql/LOCK_thread_count", 0}, + {"mutex/sql/LOCK_thread_count", "mutex/sql/LOCK_event_queue", 0}, + {"mutex/sql/LOCK_thread_count", "mutex/sql/LOCK_user_locks", 0}, + {"mutex/sql/Master_info::run_lock", "mutex/sql/Relay_log_info::run_lock", 0}, {"mutex/sql/hash_filo::lock", "mutex/mysys/KEY_CACHE::cache_lock", 0}, - {"mutex/sql/hash_filo::lock", "mutex/sql/LOCK_plugin", 0}, {"mutex/sql/hash_filo::lock", "mutex/sql/LOCK_error_log", 0}, + {"mutex/sql/hash_filo::lock", "mutex/sql/LOCK_global_system_variables", 0}, + {"mutex/sql/hash_filo::lock", "mutex/sql/LOCK_plugin", 0}, {"mutex/sql/hash_filo::lock", "mutex/sql/LOG::LOCK_log", 0}, - {"mutex/sql/tz_LOCK", "mutex/myisam/MYISAM_SHARE::intern_lock", 0}, {"mutex/sql/tz_LOCK", "mutex/mysys/KEY_CACHE::cache_lock", 0}, {"mutex/sql/tz_LOCK", "mutex/mysys/THR_LOCK::mutex", 0}, - {"mutex/sql/tz_LOCK", "mutex/sql/LOCK_error_log", 0}, {"mutex/sql/tz_LOCK", "mutex/sql/LOCK_open", 0}, {"mutex/sql/tz_LOCK", "mutex/sql/MDL_map::mutex", 0}, {"mutex/sql/tz_LOCK", "mutex/sql/THD::LOCK_thd_data", 0}, - {"mutex/sql/tz_LOCK", "mutex/mysys/THR_LOCK_myisam", 0}, - {"mutex/sql/tz_LOCK", "mutex/mysys/THR_LOCK_open", 0}, - {"mutex/sql/tz_LOCK", "mutex/sql/LOCK_plugin", 0}, - {"mutex/sql/tz_LOCK", "mutex/sql/TABLE_SHARE::LOCK_ha_data", 0}, + {"mutex/archive/ARCHIVE_SHARE::mutex", "mutex/mysys/THR_LOCK_open", 0}, + {"mutex/archive/archive_mutex", "mutex/mysys/THR_LOCK_open", 0}, + {"mutex/innodb/autoinc_mutex", "mutex/innodb/buf_pool_mutex", 0}, + {"mutex/innodb/autoinc_mutex", "mutex/innodb/buf_pool_zip_mutex", 0}, + {"mutex/innodb/autoinc_mutex", "mutex/innodb/flush_list_mutex", 0}, + {"mutex/innodb/dict_foreign_err_mutex", "mutex/sql/THD::LOCK_thd_data", 0}, + {"mutex/innodb/dict_sys_mutex", "mutex/innodb/srv_sys_mutex", 0}, + {"mutex/innodb/dict_sys_mutex", "mutex/innodb/trx_doublewrite_mutex", 0}, + {"mutex/innodb/file_format_max_mutex", "mutex/innodb/flush_list_mutex", 0}, + {"mutex/innodb/file_format_max_mutex", "mutex/innodb/log_flush_order_mutex", 0}, + {"mutex/innodb/file_format_max_mutex", "mutex/innodb/log_sys_mutex", 0}, + {"mutex/innodb/lock_mutex", "mutex/sql/THD::LOCK_thd_data", 0}, + {"mutex/innodb/log_flush_order_mutex", "mutex/innodb/os_mutex", 0}, + {"mutex/innodb/prepare_commit_mutex", "mutex/innodb/buf_pool_mutex", 0}, + {"mutex/innodb/prepare_commit_mutex", "mutex/innodb/buf_pool_zip_mutex", 0}, + {"mutex/innodb/prepare_commit_mutex", "mutex/innodb/flush_list_mutex", 0}, + {"mutex/innodb/prepare_commit_mutex", "mutex/innodb/lock_mutex", 0}, + {"mutex/innodb/prepare_commit_mutex", "mutex/innodb/log_flush_order_mutex", 0}, + {"mutex/innodb/prepare_commit_mutex", "mutex/innodb/log_sys_mutex", 0}, + {"mutex/innodb/prepare_commit_mutex", "mutex/innodb/purge_sys_bh_mutex", 0}, + {"mutex/innodb/prepare_commit_mutex", "mutex/innodb/read_view_mutex", 0}, + {"mutex/innodb/prepare_commit_mutex", "mutex/innodb/rseg_mutex", 0}, + {"mutex/innodb/prepare_commit_mutex", "mutex/innodb/trx_mutex", 0}, + {"mutex/innodb/prepare_commit_mutex", "mutex/sql/LOG::LOCK_log", 0}, + {"mutex/innodb/prepare_commit_mutex", "mutex/sql/MYSQL_BIN_LOG::LOCK_prep_xids", 0}, + {"mutex/innodb/rseg_mutex", "mutex/innodb/trx_doublewrite_mutex", 0}, + {"mutex/innodb/srv_dict_tmpfile_mutex", "mutex/innodb/dict_sys_mutex", 0}, + {"mutex/innodb/srv_innodb_monitor_mutex", "mutex/innodb/dict_foreign_err_mutex", 0}, + {"mutex/innodb/srv_innodb_monitor_mutex", "mutex/innodb/fil_system_mutex", 0}, + {"mutex/innodb/srv_innodb_monitor_mutex", "mutex/innodb/ibuf_mutex", 0}, + {"mutex/innodb/srv_innodb_monitor_mutex", "mutex/innodb/lock_mutex", 0}, + {"mutex/innodb/srv_innodb_monitor_mutex", "mutex/innodb/log_flush_order_mutex", 0}, + {"mutex/innodb/srv_innodb_monitor_mutex", "mutex/innodb/log_sys_mutex", 0}, + {"mutex/innodb/srv_innodb_monitor_mutex", "mutex/innodb/mem_pool_mutex", 0}, + {"mutex/innodb/srv_innodb_monitor_mutex", "mutex/innodb/os_mutex", 0}, + {"mutex/innodb/srv_innodb_monitor_mutex", "mutex/sql/THD::LOCK_thd_data", 0}, + {"mutex/innodb/srv_monitor_file_mutex", "mutex/innodb/buf_pool_mutex", 0}, + {"mutex/innodb/srv_monitor_file_mutex", "mutex/innodb/dict_foreign_err_mutex", 0}, + {"mutex/innodb/srv_monitor_file_mutex", "mutex/innodb/fil_system_mutex", 0}, + {"mutex/innodb/srv_monitor_file_mutex", "mutex/innodb/flush_list_mutex", 0}, + {"mutex/innodb/srv_monitor_file_mutex", "mutex/innodb/ibuf_mutex", 0}, + {"mutex/innodb/srv_monitor_file_mutex", "mutex/innodb/lock_mutex", 0}, + {"mutex/innodb/srv_monitor_file_mutex", "mutex/innodb/log_flush_order_mutex", 0}, + {"mutex/innodb/srv_monitor_file_mutex", "mutex/innodb/log_sys_mutex", 0}, + {"mutex/innodb/srv_monitor_file_mutex", "mutex/innodb/mem_pool_mutex", 0}, + {"mutex/innodb/srv_monitor_file_mutex", "mutex/innodb/os_mutex", 0}, + {"mutex/innodb/srv_monitor_file_mutex", "mutex/innodb/srv_innodb_monitor_mutex", 0}, + {"mutex/innodb/srv_monitor_file_mutex", "mutex/sql/THD::LOCK_thd_data", 0}, + {"mutex/mysys/THR_LOCK::mutex", "mutex/sql/DEBUG_SYNC::mutex", 0}, + {"mutex/mysys/my_thread_var::mutex", "mutex/mysys/THR_LOCK::mutex", 0}, + {"mutex/mysys/my_thread_var::mutex", "mutex/sql/DEBUG_SYNC::mutex", 0}, + {"mutex/mysys/my_thread_var::mutex", "mutex/sql/LOCK_user_locks", 0}, + {"mutex/mysys/my_thread_var::mutex", "mutex/sql/MDL_wait::LOCK_wait_status", 0}, + {"mutex/sql/Delayed_insert::mutex", "mutex/myisam/MYISAM_SHARE::intern_lock", 0}, + {"mutex/sql/Delayed_insert::mutex", "mutex/mysys/KEY_CACHE::cache_lock", 0}, + {"mutex/sql/Delayed_insert::mutex", "mutex/mysys/THR_LOCK::mutex", 0}, + {"mutex/sql/Delayed_insert::mutex", "mutex/mysys/THR_LOCK_myisam", 0}, + {"mutex/sql/Delayed_insert::mutex", "mutex/mysys/THR_LOCK_open", 0}, + {"mutex/sql/Delayed_insert::mutex", "mutex/mysys/THR_LOCK_threads", 0}, + {"mutex/sql/Delayed_insert::mutex", "mutex/sql/LOCK_delayed_status", 0}, + {"mutex/sql/Delayed_insert::mutex", "mutex/sql/LOCK_open", 0}, + {"mutex/sql/Delayed_insert::mutex", "mutex/sql/LOCK_plugin", 0}, + {"mutex/sql/Delayed_insert::mutex", "mutex/sql/MDL_map::mutex", 0}, + {"mutex/sql/Delayed_insert::mutex", "mutex/sql/MDL_wait::LOCK_wait_status", 0}, + {"mutex/sql/Delayed_insert::mutex", "mutex/sql/TABLE_SHARE::LOCK_ha_data", 0}, + {"mutex/sql/Delayed_insert::mutex", "mutex/sql/THD::LOCK_thd_data", 0}, {"mutex/sql/HA_DATA_PARTITION::LOCK_auto_inc", "mutex/archive/ARCHIVE_SHARE::mutex", 0}, - {"mutex/sql/HA_DATA_PARTITION::LOCK_auto_inc", "mutex/myisam/MYISAM_SHARE::intern_lock", 0}, - {"mutex/sql/HA_DATA_PARTITION::LOCK_auto_inc", "mutex/mysys/THR_LOCK_open", 0}, + {"mutex/sql/HA_DATA_PARTITION::LOCK_auto_inc", "mutex/innodb/autoinc_mutex", 0}, {"mutex/sql/HA_DATA_PARTITION::LOCK_auto_inc", "mutex/mysys/KEY_CACHE::cache_lock", 0}, + {"mutex/sql/HA_DATA_PARTITION::LOCK_auto_inc", "mutex/mysys/THR_LOCK_open", 0}, {"mutex/sql/HA_DATA_PARTITION::LOCK_auto_inc", "mutex/sql/LOCK_global_system_variables", 0}, {"mutex/sql/HA_DATA_PARTITION::LOCK_auto_inc", "mutex/sql/LOCK_plugin", 0}, + {"mutex/sql/HA_DATA_PARTITION::LOCK_auto_inc", "mutex/sql/LOG::LOCK_log", 0}, {"mutex/sql/HA_DATA_PARTITION::LOCK_auto_inc", "mutex/sql/Query_cache::structure_guard_mutex", 0}, {"mutex/sql/HA_DATA_PARTITION::LOCK_auto_inc", "mutex/sql/TABLE_SHARE::LOCK_ha_data", 0}, - {"mutex/sql/HA_DATA_PARTITION::LOCK_auto_inc", "mutex/innodb/autoinc_mutex", 0}, - {"mutex/sql/HA_DATA_PARTITION::LOCK_auto_inc", "mutex/sql/LOG::LOCK_log", 0}, + {"mutex/sql/LOCK_delayed_create", "mutex/sql/DEBUG_SYNC::mutex", 0}, + {"mutex/sql/LOCK_delayed_create", "mutex/sql/Delayed_insert::mutex", 0}, + {"mutex/sql/LOCK_delayed_create", "mutex/sql/LOCK_delayed_insert", 0}, + {"mutex/sql/LOCK_delayed_create", "mutex/sql/LOCK_global_system_variables", 0}, + {"mutex/sql/LOCK_delayed_create", "mutex/sql/LOCK_plugin", 0}, + {"mutex/sql/LOCK_delayed_create", "mutex/sql/LOCK_prepared_stmt_count", 0}, + {"mutex/sql/LOCK_delayed_create", "mutex/sql/LOCK_thread_count", 0}, + {"mutex/sql/LOCK_delayed_create", "mutex/sql/LOCK_xid_cache", 0}, + {"mutex/sql/LOCK_delayed_create", "mutex/sql/THD::LOCK_thd_data", 0}, + {"mutex/sql/LOCK_delayed_insert", "mutex/sql/DEBUG_SYNC::mutex", 0}, + {"mutex/sql/LOCK_delayed_insert", "mutex/sql/Delayed_insert::mutex", 0}, + {"mutex/sql/LOCK_delayed_insert", "mutex/sql/LOCK_plugin", 0}, + {"mutex/sql/LOCK_delayed_insert", "mutex/sql/LOCK_prepared_stmt_count", 0}, + {"mutex/sql/LOCK_delayed_insert", "mutex/sql/LOCK_thread_count", 0}, + {"mutex/sql/LOCK_delayed_insert", "mutex/sql/LOCK_xid_cache", 0}, + {"mutex/sql/LOCK_delayed_insert", "mutex/sql/THD::LOCK_thd_data", 0}, + {"mutex/sql/LOCK_gdl", "mutex/innodb/dict_sys_mutex", 0}, + {"mutex/sql/LOCK_gdl", "mutex/innodb/lock_mutex", 0}, + {"mutex/sql/LOCK_gdl", "mutex/innodb/log_sys_mutex", 0}, + {"mutex/sql/LOCK_gdl", "mutex/innodb/mutex_list_mutex", 0}, + {"mutex/sql/LOCK_gdl", "mutex/innodb/os_mutex", 0}, + {"mutex/sql/LOCK_gdl", "mutex/innodb/srv_sys_mutex", 0}, + {"mutex/sql/LOCK_gdl", "mutex/innodb/trx_mutex", 0}, + {"mutex/sql/LOCK_global_system_variables", "mutex/innodb/file_format_max_mutex", 0}, + {"mutex/sql/LOCK_global_system_variables", "mutex/innodb/log_sys_mutex", 0}, + {"mutex/sql/LOCK_global_system_variables", "mutex/mysys/LOCK_alarm", 0}, + {"mutex/sql/LOCK_global_system_variables", "mutex/sql/LOG::LOCK_log", 0}, + {"mutex/sql/LOCK_open", "mutex/archive/archive_mutex", 0}, + {"mutex/sql/LOCK_open", "mutex/blackhole/blackhole", 0}, + {"mutex/sql/LOCK_open", "mutex/mysys/my_thread_var::mutex", 0}, + {"mutex/sql/LOCK_open", "mutex/sql/MDL_wait::LOCK_wait_status", 0}, + {"mutex/sql/LOCK_status", "mutex/innodb/dict_sys_mutex", 0}, + {"mutex/sql/LOCK_status", "mutex/innodb/lock_mutex", 0}, + {"mutex/sql/LOCK_status", "mutex/innodb/log_sys_mutex", 0}, + {"mutex/sql/LOCK_status", "mutex/innodb/rseg_mutex", 0}, + {"mutex/sql/LOCK_status", "mutex/innodb/trx_mutex", 0}, + {"mutex/sql/LOCK_status", "mutex/innodb/trx_undo_mutex", 0}, + {"mutex/sql/LOCK_status", "mutex/sql/LOG::LOCK_log", 0}, + {"mutex/sql/LOCK_status", "mutex/sql/Query_cache::structure_guard_mutex", 0}, + {"mutex/sql/LOCK_status", "mutex/sql/THD::LOCK_thd_data", 0}, + {"mutex/sql/LOCK_user_conn", "mutex/sql/hash_filo::lock", 0}, + {"mutex/sql/LOG::LOCK_log", "mutex/sql/MYSQL_BIN_LOG::LOCK_prep_xids", 0}, + {"mutex/sql/THD::LOCK_thd_data", "mutex/mysys/THR_LOCK::mutex", 0}, + {"mutex/sql/THD::LOCK_thd_data", "mutex/sql/DEBUG_SYNC::mutex", 0}, + {"mutex/sql/THD::LOCK_thd_data", "mutex/sql/LOCK_user_locks", 0}, + {"mutex/sql/THD::LOCK_thd_data", "mutex/sql/MDL_wait::LOCK_wait_status", 0}, + {"mutex/sql/tz_LOCK", "mutex/mysys/THR_LOCK_myisam", 0}, + {"mutex/sql/tz_LOCK", "mutex/mysys/THR_LOCK_open", 0}, + {"mutex/sql/tz_LOCK", "mutex/sql/LOCK_error_log", 0}, + {"mutex/sql/tz_LOCK", "mutex/sql/LOCK_plugin", 0}, + {"mutex/sql/tz_LOCK", "mutex/sql/TABLE_SHARE::LOCK_ha_data", 0}, + +/* + MAINTAINER: Place cycles here, with a full cycle description. +*/ /* Cycle loop link mutex/mysys/my_thread_var::mutex -> mutex/sql/Delayed_insert::mutex @@ -518,8 +472,6 @@ static LO_authorised_arc debug_lock_orde Cycle node 3: mutex/sql/THD::LOCK_thd_data Cycle node 4: mutex/mysys/my_thread_var::mutex */ - {"mutex/sql/Delayed_insert::mutex", "mutex/sql/THD::LOCK_thd_data", 0}, - {"mutex/sql/THD::LOCK_thd_data", "mutex/mysys/my_thread_var::mutex", 0}, {"mutex/mysys/my_thread_var::mutex", "mutex/sql/Delayed_insert::mutex", LO_FLAG_LOOP}, /* @@ -528,7 +480,6 @@ static LO_authorised_arc debug_lock_orde Cycle node 2: mutex/sql/Delayed_insert::mutex Cycle node 3: mutex/sql/LOCK_open */ - {"mutex/sql/Delayed_insert::mutex", "mutex/sql/LOCK_open", 0}, {"mutex/sql/LOCK_open", "mutex/sql/Delayed_insert::mutex", LO_FLAG_LOOP}, /* @@ -538,7 +489,6 @@ static LO_authorised_arc debug_lock_orde Cycle node 3: mutex/innodb/dict_sys_mutex Cycle node 4: mutex/sql/LOCK_global_system_variables */ - {"mutex/sql/LOCK_active_mi", "mutex/sql/LOCK_global_system_variables", 0}, {"mutex/sql/LOCK_global_system_variables", "mutex/sql/LOCK_active_mi", LO_FLAG_LOOP}, /* @@ -579,7 +529,6 @@ static LO_authorised_arc debug_lock_orde Cycle node 1: mutex/sql/Relay_log_info::run_lock Cycle node 2: mutex/sql/LOCK_global_system_variables */ - {"mutex/sql/Relay_log_info::run_lock", "mutex/sql/LOCK_global_system_variables", 0}, {"mutex/sql/LOCK_global_system_variables", "mutex/sql/Relay_log_info::run_lock", LO_FLAG_LOOP}, /* @@ -594,9 +543,13 @@ static LO_authorised_arc debug_lock_orde Cycle node 1: mutex/sql/Master_info::run_lock Cycle node 2: mutex/sql/Relay_log_info::run_lock */ - {"mutex/sql/Master_info::run_lock", "mutex/sql/Relay_log_info::run_lock", 0}, {"mutex/sql/Relay_log_info::run_lock", "mutex/sql/Master_info::run_lock", LO_FLAG_LOOP}, +/* + Self loop, on different mutex instances. +*/ + {"mutex/sql/Slave_reporting_capability::err_lock", "mutex/sql/Slave_reporting_capability::err_lock", 0}, + {NULL, NULL, 0} }; #endif No bundle (reason: useless for push emails).