summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/mdl.cc7
1 files changed, 4 insertions, 3 deletions
diff --git a/sql/mdl.cc b/sql/mdl.cc
index 75970396af7..68ac0cc599d 100644
--- a/sql/mdl.cc
+++ b/sql/mdl.cc
@@ -1854,15 +1854,16 @@ bool MDL_lock::find_deadlock(MDL_ticket *waiting_ticket,
MDL_ticket *ticket;
MDL_context *src_ctx= waiting_ticket->get_ctx();
bool result= TRUE;
- Ticket_iterator granted_it(m_granted);
- Ticket_iterator waiting_it(m_waiting);
-
if (dvisitor->enter_node(src_ctx))
return TRUE;
mysql_prlock_rdlock(&m_rwlock);
+ /* Must be initialized after taking a read lock. */
+ Ticket_iterator granted_it(m_granted);
+ Ticket_iterator waiting_it(m_waiting);
+
/*
We do a breadth-first search first -- that is, inspect all
edges of the current node, and only then follow up to the next