MySQL Lists are EOL. Please join:

List:Commits« Previous MessageNext Message »
From:Konstantin Osipov Date:June 3 2010 2:33pm
Subject:bzr commit into mysql-trunk-runtime branch (kostja:3038) Bug#52289
View as plain text  
#At file:///opt/local/work/trunk-runtime/ based on revid:kostja@stripped

 3038 Konstantin Osipov	2010-06-03
      A follow up for the previous patch, titled:
      A code review comment for Bug#52289.
      Encapsulate the deadlock detection functionality into
      a visitor class...
      Remove a race introduced by omission: 
      initialize iterators under a read lock on the object.
     @ sql/
        Initialize iterators under a read lock on the object.

=== modified file 'sql/'
--- a/sql/	2010-06-03 14:08:22 +0000
+++ b/sql/	2010-06-03 14:32:56 +0000
@@ -1854,15 +1854,16 @@ bool MDL_lock::find_deadlock(MDL_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;
+  /* 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

Attachment: [text/bzr-bundle] bzr/
bzr commit into mysql-trunk-runtime branch (kostja:3038) Bug#52289Konstantin Osipov3 Jun