List:Commits« Previous MessageNext Message »
From:Davi Arnaut Date:May 4 2009 2:42pm
Subject:bzr commit into mysql-6.0-falcon branch (Davi.Arnaut:2772) Bug#40188
View as plain text  
#At file:///data0/my/darnaut/mysql-repo/work/40188-6.0/ based on revid:dlenev@stripped

 2772 Davi Arnaut	2009-05-04
      Bug#40188: Replication failure on RBR + Innodb + implicit commit + truncate/drop table
      
      The problem is that in some cases transaction-long metadata locks
      could be released before the transaction was committed. This could
      happen when a active transaction was ended by a "START TRANSACTION"
      or "BEGIN" statement, in which case the metadata locks would be
      released before the actual commit of the active transaction.
      
      The solution is to defer the release of metadata locks to after the
      transaction has been implicitly committed. No test case is provided
      as the effort to provide one is too disproportional to the size of
      the fix.
     @ sql/transaction.cc
        Commit before transaction-long metadata locks are released.

    modified:
      sql/transaction.cc
=== modified file 'sql/transaction.cc'
--- a/sql/transaction.cc	2009-03-06 22:17:00 +0000
+++ b/sql/transaction.cc	2009-05-04 14:32:28 +0000
@@ -100,11 +100,15 @@ bool trans_begin(THD *thd, uint flags)
 
   DBUG_ASSERT(!thd->locked_tables_mode);
 
-  thd->mdl_context.release_all_locks();
-
   if (trans_commit_implicit(thd))
     DBUG_RETURN(TRUE);
 
+  /*
+    Release transactional metadata locks only after the
+    transaction has been committed.
+  */
+  thd->mdl_context.release_all_locks();
+
   thd->options|= OPTION_BEGIN;
   thd->server_status|= SERVER_STATUS_IN_TRANS;
 


Attachment: [text/bzr-bundle] bzr/davi.arnaut@sun.com-20090504143228-7m61iymn0w10e5z7.bundle
Thread
bzr commit into mysql-6.0-falcon branch (Davi.Arnaut:2772) Bug#40188Davi Arnaut4 May
  • Re: bzr commit into mysql-6.0-falcon branch (Davi.Arnaut:2772)Bug#40188Konstantin Osipov6 May
    • Re: bzr commit into mysql-6.0-falcon branch (Davi.Arnaut:2772)Bug#40188Davi Arnaut6 May