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).
| Thread |
|---|
| • bzr push into mysql-trunk-lock-order branch (marc.alff:3352 to 3353) | Marc Alff | 3 Apr |