Bug #58784 rpl_row_ignorable_event fails on PB2
Submitted: 7 Dec 2010 13:26 Modified: 24 Jan 2011 15:56
Reporter: Andrei Elkin Email Updates:
Status: Closed Impact on me:
None 
Category:Tests: Replication Severity:S3 (Non-critical)
Version:daily-trunk-bugfixing, 5.6 OS:Any
Assigned to: Daogang Qu CPU Architecture:Any
Triage: Triaged: D3 (Medium)

[7 Dec 2010 13:26] Andrei Elkin
Description:
It does it sporadically,

rpl.rpl_row_ignorable_event              [ fail ]
        Test ended at 2010-11-29 23:59:23

CURRENT_TEST: rpl.rpl_row_ignorable_event
--- /export/home2/pb2/test/sb_1-2607464-1291066971.82/mysql-5.6.1-m5-freebsd7.0-i386-test/mysql-test/suite/rpl/r/rpl_row_ignorable_event.result	2010-11-29 22:12:41.000000000 +0300
+++ /export/home2/pb2/test/sb_1-2607464-1291066971.82/mysql-5.6.1-m5-freebsd7.0-i386-test/mysql-test/suite/rpl/r/rpl_row_ignorable_event.reject	2010-11-30 01:59:23.000000000 +0300
@@ -137,8 +137,6 @@
 master-bin.000001	#	Write_rows	#	#	table_id: # flags: STMT_END_F
 master-bin.000001	#	Table_map	#	#	table_id: # (test.t3)
 master-bin.000001	#	Write_rows	#	#	table_id: # flags: STMT_END_F
-master-bin.000001	#	Table_map	#	#	table_id: # (test.t3)
-master-bin.000001	#	Write_rows	#	#	table_id: # flags: STMT_END_F
 master-bin.000001	#	Query	#	#	COMMIT
 master-bin.000001	#	Query	#	#	use `test`; create table t6(a VARCHAR(60)) engine= myisam
 master-bin.000001	#	Query	#	#	BEGIN
@@ -533,10 +531,6 @@
 ### SET
 ###   @1=1 /* INT meta=0 nullable=1 is_null=0 */
 ###   @2=5 /* INT meta=0 nullable=1 is_null=0 */
-# at #
-#server id #  end_log_pos # 	Table_map: `test`.`t3` mapped to number #
-# at #
-#server id #  end_log_pos # 	Write_rows: table id # flags: STMT_END_F
 ### INSERT INTO test.t3
 ### SET
 ###   @1=1 /* INT meta=0 nullable=1 is_null=0 */
@@ -954,10 +948,6 @@
 slave-bin.000001	#	Table_map	#	#	table_id: # (test.t3)
 slave-bin.000001	#	Write_rows	#	#	table_id: # flags: STMT_END_F
 slave-bin.000001	#	Query	#	#	COMMIT
-slave-bin.000001	#	Query	#	#	BEGIN
-slave-bin.000001	#	Table_map	#	#	table_id: # (test.t3)
-slave-bin.000001	#	Write_rows	#	#	table_id: # flags: STMT_END_F
-slave-bin.000001	#	Query	#	#	COMMIT
 slave-bin.000001	#	Query	#	#	use `test`; create table t6(a VARCHAR(60)) engine= myisam
 slave-bin.000001	#	Query	#	#	BEGIN
 slave-bin.000001	#	Rows_query	#	#	# load data infile '../../std_data/words.dat' into table t6

mysqltest: Result content mismatch

How to repeat:
E.g:

https://central.sun.net/http://pb2.norway.sun.com/?template=mysql_show_test_failure&test_f...
[17 Dec 2010 4:14] Daogang Qu
It's a test bug. It's related with Bug #56913.
[6 Jan 2011 3:53] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/128030

3454 daogang.qu@greatopensource.com	2011-01-06
      Bug #58784  	rpl_row_ignorable_event fails on PB2
      
      In RBR, The rows are inserted to a queue by the thread executing
      the 'INSERT DELAYED' statement, and are taken out from the queue
      by the handler thread to do the real insertion. Because these two
      threads are running in parallel, there is a possibility that they
      are run in an interleaved manner, and result in different number
      of table_map and rows events.
            
      Added a variable and a debug option for the test to make the
      binlog of multi 'INSERT DELAYED ...' stmt stable by forcing
      every value is executed into one execution series, and then
      each value will be binlogged into a separate rows event with
      its table map event.
     @ sql/sql_insert.cc
        Added a 'queue_is_empty' variable to indicate that the delayed
        insert queue is empty until the last row from the queue is
        executed completely.
[14 Jan 2011 2:34] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/128696

3454 daogang.qu@greatopensource.com	2011-01-14
      Bug #58784  	rpl_row_ignorable_event fails on PB2
      
      In RBR, The rows are inserted to a queue by the thread executing
      the 'INSERT DELAYED' statement, and are taken out from the queue
      by the handler thread to do the real insertion. Because these two
      threads are running in parallel, there is a possibility that they
      are run in an interleaved manner, and result in different number
      of table_map and rows events.
            
      Added 'wait' and 'signal' mechanism for the test to make the
      binlog of multi 'INSERT DELAYED ...' stmt stable by forcing
      every value is executed into one execution series, and then
      each value will be binlogged into a separate rows event with
      its table map event.
     @ mysql-test/suite/rpl/r/rpl_row_ignorable_event.result
        Updated for the patch of bug#58784.
     @ mysql-test/suite/rpl/t/rpl_row_ignorable_event.test
        Added debug option for making the binlog of
        multi 'INSERT DELAYED ...' stmt stable.
     @ sql/sql_insert.cc
        Added 'wait' and 'signal' mechanism to make 'INSERT DELAYED'
        thread wait to insert data into the queue until the signal
        is sent from 'HANDLER' thread, after the last row from the
        queue is taken out and executed.
[17 Jan 2011 8:57] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/128900

3454 daogang.qu@greatopensource.com	2011-01-17
      Bug #58784  	rpl_row_ignorable_event fails on PB2
      
      In RBR, The rows are inserted to a queue by the thread executing
      the 'INSERT DELAYED' statement, and are taken out from the queue
      by the handler thread to do the real insertion. Because these two
      threads are running in parallel, there is a possibility that they
      are run in an interleaved manner, and result in different number
      of table_map and rows events.
            
      Added 'wait' and 'signal' mechanism for the test to make the
      binlog of multi 'INSERT DELAYED ...' stmt stable by forcing
      every value is executed into one execution series, and then
      each value will be binlogged into a separate rows event with
      its table map event.
     @ mysql-test/suite/rpl/r/rpl_row_ignorable_event.result
        Updated for the patch of bug#58784.
     @ mysql-test/suite/rpl/t/rpl_row_ignorable_event.test
        Added debug option for making the binlog of
        multi 'INSERT DELAYED ...' stmt stable.
     @ sql/sql_insert.cc
        Added 'wait' and 'signal' mechanism to make 'INSERT DELAYED'
        thread wait to insert data into the queue until the signal
        is sent from 'HANDLER' thread, after the last row from the
        queue is taken out and executed.
[19 Jan 2011 3:32] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/129129

3454 daogang.qu@greatopensource.com	2011-01-19
      Bug #58784  	rpl_row_ignorable_event fails on PB2
      
      In RBR, The rows are inserted to a queue by the thread executing
      the 'INSERT DELAYED' statement, and are taken out from the queue
      by the handler thread to do the real insertion. Because these two
      threads are running in parallel, there is a possibility that they
      are run in an interleaved manner, and result in different number
      of table_map and rows events.
            
      Added 'wait' and 'signal' mechanism for the test to make the
      binlog of multi 'INSERT DELAYED ...' stmt stable by forcing
      every value is executed into one execution series, and then
      each value will be binlogged into a separate rows event with
      its table map event.
     @ mysql-test/suite/rpl/r/rpl_row_ignorable_event.result
        Updated for the patch of bug#58784.
     @ mysql-test/suite/rpl/t/rpl_row_ignorable_event.test
        Added debug option for making the binlog of
        multi 'INSERT DELAYED ...' stmt stable.
     @ sql/sql_insert.cc
        Added 'wait' and 'signal' mechanism to make 'INSERT DELAYED'
        thread wait to insert data into the queue until the signal
        is sent from 'HANDLER' thread, after the last row from the
        queue is taken out and executed.
[19 Jan 2011 7:12] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/129136

3454 daogang.qu@greatopensource.com	2011-01-19
      Bug #58784  	rpl_row_ignorable_event fails on PB2
      
      In RBR, The rows are inserted to a queue by the thread executing
      the 'INSERT DELAYED' statement, and are taken out from the queue
      by the handler thread to do the real insertion. Because these two
      threads are running in parallel, there is a possibility that they
      are run in an interleaved manner, and result in different number
      of table_map and rows events.
            
      Added 'wait' and 'signal' mechanism for the test to make the
      binlog of multi 'INSERT DELAYED ...' stmt stable by forcing
      every value is executed into one execution series, and then
      each value will be binlogged into a separate rows event with
      its table map event.
     @ mysql-test/suite/rpl/r/rpl_row_ignorable_event.result
        Updated for the patch of bug#58784.
     @ mysql-test/suite/rpl/t/rpl_row_ignorable_event.test
        Added debug option for making the binlog of
        multi 'INSERT DELAYED ...' stmt stable.
     @ sql/sql_insert.cc
        Added 'wait' and 'signal' mechanism to make 'INSERT DELAYED'
        thread wait to insert data into the queue until the signal
        is sent from 'HANDLER' thread, after the last row from the
        queue is taken out and executed.
[19 Jan 2011 8:58] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/129144

3454 daogang.qu@greatopensource.com	2011-01-19
      Bug #58784  	rpl_row_ignorable_event fails on PB2
      
      In RBR, The rows are inserted to a queue by the thread executing
      the 'INSERT DELAYED' statement, and are taken out from the queue
      by the handler thread to do the real insertion. Because these two
      threads are running in parallel, there is a possibility that they
      are run in an interleaved manner, and result in different number
      of table_map and rows events.
            
      Added 'wait' and 'signal' mechanism for the test to make the
      binlog of multi 'INSERT DELAYED ...' stmt stable by forcing
      every value is executed into one execution series, and then
      each value will be binlogged into a separate rows event with
      its table map event.
     @ mysql-test/suite/rpl/r/rpl_row_ignorable_event.result
        Updated for the patch of bug#58784.
     @ mysql-test/suite/rpl/t/rpl_row_ignorable_event.test
        Added debug option for making the binlog of
        multi 'INSERT DELAYED ...' stmt stable.
     @ sql/sql_insert.cc
        Added 'wait' and 'signal' mechanism to make 'INSERT DELAYED'
        thread wait to insert data into the queue until the signal
        is sent from 'HANDLER' thread, after the last row from the
        queue is taken out and executed.
[21 Jan 2011 11:31] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/129322

3540 daogang.qu@greatopensource.com	2011-01-21
      Bug #58784  	rpl_row_ignorable_event fails on PB2
      
      In RBR, The rows are inserted to a queue by the thread executing
      the 'INSERT DELAYED' statement, and are taken out from the queue
      by the handler thread to do the real insertion. Because these two
      threads are running in parallel, there is a possibility that they
      are run in an interleaved manner, and result in different number
      of table_map and rows events.
            
      Added 'wait' and 'signal' mechanism for the test to make the
      binlog of multi 'INSERT DELAYED ...' stmt stable by forcing
      every value is executed into one execution series, and then
      each value will be binlogged into a separate rows event with
      its table map event.
     @ mysql-test/suite/rpl/r/rpl_row_ignorable_event.result
        Updated for the patch of bug#58784.
     @ mysql-test/suite/rpl/t/rpl_row_ignorable_event.test
        Added debug option for making the binlog of
        multi 'INSERT DELAYED ...' stmt stable.
     @ sql/sql_insert.cc
        Added 'wait' and 'signal' mechanism to make 'INSERT DELAYED'
        thread wait to insert data into the queue until the signal
        is sent from 'HANDLER' thread, after the last row from the
        queue is taken out and executed.
[21 Jan 2011 11:33] Bugs System
Pushed into mysql-trunk 5.6.2 (revid:daogang.qu@greatopensource.com-20110121113047-wh7mf5d6t41qzj1e) (version source revid:daogang.qu@greatopensource.com-20110121113047-wh7mf5d6t41qzj1e) (merge vers: 5.6.2) (pib:24)
[24 Jan 2011 15:56] Jon Stephens
Changes only in debug/test code, no user-visible changes. Closed.