List:Commits« Previous MessageNext Message »
From:Andrei Elkin Date:April 30 2012 4:15pm
Subject:bzr push into mysql-trunk branch (andrei.elkin:3758 to 3759) Bug#14018843
View as plain text  
 3759 Andrei Elkin	2012-04-30
      Bug#14018843 - FAULTY LOGICS IN MTS_DEBUG_CONCURRENT_ACCESS HANDLING
      
      Introduced to verify MTS concurrent behavior `mts_debug_concurrent_access'
      debug flag was unnecessaliry checked by IO thread which leads to a hang like. 
      
         http://pb2.no.oracle.com/web.py?template=mysql_show_test_failure&search=yes&push_id=3396783&test_id=3400389&test_run=rpl_binlog-debug-big&test_suite=rpl&test_case=rpl_mts_debug
      
      Fixed with excluding other than MTS worker threads 
      from checking the debug flag.
      
      One-liner fixes suppressing a warning in rpl_filter_tables_not_exist is piggybacked.
     @ mysql-test/suite/rpl/r/rpl_filter_tables_not_exist.result
        results got updated.
     @ mysql-test/suite/rpl/t/rpl_filter_tables_not_exist.test
        a necessary unsafe suppression on the master side is added.

    modified:
      mysql-test/suite/rpl/r/rpl_filter_tables_not_exist.result
      mysql-test/suite/rpl/t/rpl_filter_tables_not_exist.test
      sql/rpl_info_table.cc
 3758 Marko Mäkel data type cleanup)

    modified:
      storage/innobase/api/api0api.cc
      storage/innobase/dict/dict0load.cc
      storage/innobase/handler/ha_innodb.cc
=== modified file 'mysql-test/suite/rpl/r/rpl_filter_tables_not_exist.result'
--- a/mysql-test/suite/rpl/r/rpl_filter_tables_not_exist.result	2012-04-21 12:11:15 +0000
+++ b/mysql-test/suite/rpl/r/rpl_filter_tables_not_exist.result	2012-04-30 16:14:26 +0000
@@ -122,6 +122,7 @@ CREATE TABLE test.t5 (a INT AUTO_INCREME
 CREATE TABLE test.t1 (a INT);
 INSERT INTO test.t1 VALUES(1);
 call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
+call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
 CREATE TABLE test.t_slave (a INT AUTO_INCREMENT PRIMARY KEY, b INT, c INT);
 CREATE TRIGGER t1_update AFTER UPDATE ON test.t1 FOR EACH ROW
 INSERT INTO test.t_slave VALUES(NULL, ROUND(RAND() * 1000), @c);

=== modified file 'mysql-test/suite/rpl/t/rpl_filter_tables_not_exist.test'
--- a/mysql-test/suite/rpl/t/rpl_filter_tables_not_exist.test	2012-04-21 12:11:15 +0000
+++ b/mysql-test/suite/rpl/t/rpl_filter_tables_not_exist.test	2012-04-30 16:14:26 +0000
@@ -219,6 +219,7 @@ connection master;
 CREATE TABLE test.t5 (a INT AUTO_INCREMENT PRIMARY KEY, b INT, c INT); # ignored on slave
 CREATE TABLE test.t1 (a INT); # accepted on slave
 INSERT INTO test.t1 VALUES(1);
+call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
 
 --sync_slave_with_master
 call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");

=== modified file 'sql/rpl_info_table.cc'
--- a/sql/rpl_info_table.cc	2012-04-11 16:52:28 +0000
+++ b/sql/rpl_info_table.cc	2012-04-30 16:14:26 +0000
@@ -199,7 +199,8 @@ int Rpl_info_table::do_flush_info(const 
 end:
   DBUG_EXECUTE_IF("mts_debug_concurrent_access",
     {
-      while (mts_debug_concurrent_access < 2 && mts_debug_concurrent_access >  0)
+      while (thd->system_thread == SYSTEM_THREAD_SLAVE_WORKER &&
+             mts_debug_concurrent_access < 2 && mts_debug_concurrent_access >  0)
       {
         DBUG_PRINT("mts", ("Waiting while locks are acquired to show "
           "concurrency in mts: %u %lu\n", mts_debug_concurrent_access,

No bundle (reason: useless for push emails).
Thread
bzr push into mysql-trunk branch (andrei.elkin:3758 to 3759) Bug#14018843Andrei Elkin2 May