Bug #37879 Failures in rowbased replication: Test "rpl_row_basic_{2myisam,3innodb}" (1)
Submitted: 4 Jul 2008 15:44 Modified: 7 Aug 2008 16:56
Reporter: Joerg Bruehe Email Updates:
Status: Duplicate Impact on me:
None 
Category:Tests: Replication Severity:S7 (Test Cases)
Version:5.1.26-rc OS:Any
Assigned to: Assigned Account CPU Architecture:Any
Tags: disabled, pushbuild, sporadic, test failure

[4 Jul 2008 15:44] Joerg Bruehe
Description:
Detected in the build of 5.1.26-rc.

Sadly, 5.1.24 and 5.1.25 have not been checked in comparable depth, so I cannot say whether these failures are new or just un-reported.

In the logs evaluated till now, test "rpl_row_basic_2myisam" (in row mode)
was run 490 times, of which 363 passed and 127 failed.

I file separate reports for failures which show distinct symptoms,
I cannot say how close they are related.

::::::::::::::
rpl.rpl_row_basic_2myisam 'row' [ fail ]

mysqltest: In included file "./include/diff_tables.inc": At line 117: command "diff_files" failed with error 2

The result from queries just before the failure was:
< snip >
CREATE TABLE t5 (i INT NOT NULL,
c CHAR(255) CHARACTER SET utf8 NOT NULL,
j INT NOT NULL);
ALTER TABLE t5 MODIFY c CHAR(16) CHARACTER SET utf8 NOT NULL;
CREATE TABLE t6 (i INT NOT NULL,
c CHAR(255) CHARACTER SET utf8 NOT NULL,
j INT NOT NULL);
ALTER TABLE t6 MODIFY c CHAR(128) CHARACTER SET utf8 NOT NULL;
CREATE TABLE t7 (i INT NOT NULL,
c CHAR(255) CHARACTER SET utf8 NOT NULL,
j INT NOT NULL);
[expecting slave to replicate correctly]
INSERT INTO t1 VALUES (1, "", 1);
INSERT INTO t1 VALUES (2, repeat(_utf8'a', 16), 2);
Comparing tables master:test.t1 and slave:test.t1
--- /PATH/mysql-test/var/tmp/diff_table_1
+++ /PATH/mysql-test/var/tmp/diff_table_2
@@ -1,2 +0,0 @@
-1              1
-2      aaaaaaaaaaaaaaaa        2
::::::::::::::

*All* runs on Windows-64bit                       normal + PS test
*All* runs on Linux x86 + x86_64 (tar.gz + RPM)   normal + PS test
Various other Linux, Solaris10 x86
91 failures in total

How to repeat:
Run the test suite.

Highest probability should be on Linux x86 + x86_64  and  Windows (64 bit):
On these platforms, all runs failed with this symptom.
[4 Jul 2008 16:55] Joerg Bruehe
The other failures of this test are reported as
bug#37882, bug#37883, and bug#37884.

The very same symptom occurs in test "rpl_row_basic_3innodb",
the only difference being the path names (obviously)
and the exact distribution of occurrences across the platforms.

But also in that test,
- this symptom is the most frequent one (94 times of 121 failures of that test),
- it is typical for Linux (x86 + x86_64) and Windows-64.
[15 Jul 2008 15:23] Joe Grasse
Changed rpl_row_basic.test, added sync_slave_with_master before diff tests

Attachment: rpl_row_basic.test (application/octet-stream, text), 12.44 KiB.

[15 Jul 2008 15:25] Joe Grasse
I too was having this error about 99% of the time. I never came
across this error in 5.1.25-rc. I am on an x86_64 box. After looking 
into the differences between the test in 5.1.25 and 5.1.26, I noticed
that 5.1.26 has added checks for bug#37426. It is here were I keep
running into problems. 

As far as I can tell it looks like the test is checking the tables 
on the slave before all of the changes have been replicated over. 
I believe the correct fix for this is to add sync_slave_with_master 
before the diff test on the master and slave tables, in 
mysql-test/extra/rpl_tests/rpl_row_basic.test.

I have attached the fixed test file.
[7 Aug 2008 16:56] Sven Sandberg
duplicate of BUG#37884