diff options
-rw-r--r-- | sql/mdl.cc | 7 |
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 |