From: Marc Alff Date: April 3 2011 4:18pm Subject: bzr commit into mysql-trunk-lock-order branch (marc.alff:3353) List-Archive: http://lists.mysql.com/commits/134557 Message-Id: <201104031618.p33GIMYf008542@acsmt356.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============5907882454991815439==" --===============5907882454991815439== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///Users/malff/BZR_TREE/mysql-trunk-lock-order/ based on revid:marc.alff@stripped 3353 Marc Alff 2011-04-03 Lock order, continued 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 --===============5907882454991815439== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/marc.alff@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: marc.alff@stripped # target_branch: file:///Users/malff/BZR_TREE/mysql-trunk-lock-order/ # testament_sha1: 102925d0f5d22a2e909268a60622447b61defb0e # timestamp: 2011-04-03 18:18:08 +0200 # base_revision_id: marc.alff@stripped\ # ax0xamcrluuo8ewx # # Begin bundle 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 --===============5907882454991815439==--