Bug #18679 rpl_ndb_dd_advance.test fails randomly
Submitted: 31 Mar 2006 9:07 Modified: 18 Oct 2006 7:43
Reporter: Ingo Strüwing Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Cluster: Replication Severity:S2 (Serious)
Version:5.1.9 OS:Linux (Linux)
Assigned to: Martin Skold CPU Architecture:Any

[31 Mar 2006 9:07] Ingo Strüwing
Description:
rpl_ndb_dd_advance             [ fail ]

Errors are (from /home/mydev/mysql-5.1-aid/mysql-test/var/log/mysqltest-time) :
mysqltest: At line 502: query 'CHANGE MASTER TO
master_log_file = '',
master_log_pos = ' failed: 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
(the last lines may be the most important ones)

OR

rpl_ndb_dd_advance             [ fail ]

Errors are (from /home/mydev/mysql-5.1-aid/mysql-test/var/log/mysqltest-time) :
mysqltest: At line 591: command "diff $MYSQLTEST_VARDIR/tmp/RPL_DD_ADV_M.sql $MYSQLTEST_VARDIR/tmp/RPL_DD_ADV_S.sql" failed
(the last lines may be the most important ones)

Sometimes it does also pass.

I have two machines with Debian sid (unstable), kernel 2.6.16.
One kernel is configured with maximum kernel preemption and 250Hz clock.
This machine shows the failures almost always. The first version of failure happens slightly more often than the second version.

The other kernel is configured with classic non-preemption and 100Hz clock.
This machine passes the test in most cases. Lately it showed the second version of the failure once.

How to repeat:
Find a machine with Linux 2.6.16, configured with these options:
CONFIG_PREEMPT=y
CONFIG_PREEMPT_BKL=y
The clock options are probably less important, but for completeness:
CONFIG_HZ_250=y
CONFIG_HZ=250

BUILD/compile-pentium-debug-max
cd mysql-test
./mysql-test-run rpl_ndb_dd_advance
./mysql-test-run --ps-protocol --mysqld=--binlog-format=row rpl_ndb_dd_advance
[6 May 2006 11:33] Ingo Strüwing
It happened again for me. This time in the second form (diff failed).
According to the new rules: test failures are P1+SS.
Usually I see this only on Linux 2.6 PREEMPT, not on standard 2.6. So it's scheduling dependent.
[17 May 2006 15:33] Ingo Strüwing
There is another possible symptom:

rpl_ndb_dd_advance             [ fail ]

Errors are (from /mnt/hdb7/mytest/mysql-5.1-test/tmp/test1/mysql-test/var/log/mysqltest-time) :
mysqldump: Got error: 1015: Can't lock file (errno: 4009) when doing LOCK TABLES
mysqltest: At line 531: command "$MYSQL_DUMP_SLAVE --compact --order-by-primary --skip-extended-insert tpcb account teller branch history > $MYSQLTEST_VARDIR/tmp/RPL_DD_ADV_S.sql" failed
(the last lines may be the most important ones)
[17 May 2006 15:34] Ingo Strüwing
And yet another one:

rpl_ndb_dd_advance             [ fail ]

Errors are (from /mnt/hdb7/mytest/mysql-5.1-test/tmp/test1/mysql-test/var/log/mysqltest-time) :
^G/mnt/hdb7/mytest/mysql-5.1-test/tmp/test1/client/.libs/lt-mysqltest: No to-string for last from-string
mysqltest: In included file "./include/ndb_setup_slave.inc": At line 24: Can't initialize replace from 'replace_result $the_pos <the_pos>'
(the last lines may be the most important ones)
[22 Jun 2006 22:26] Kristian Nielsen
FWIW, I also see this failure. My machine is similar (Debian, I *think* with kernel preemption).

Will investigate further.
[22 Jun 2006 22:33] Kristian Nielsen
It does fail in Pushbuild, though rarely.

For example:

    https://intranet.mysql.com/~knielsen/pb/mysql-5.1/1186.html
    https://intranet.mysql.com/~knielsen/pb/mysql-5.1/1172.html
[19 Sep 2006 9: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/12193

ChangeSet@1.2322, 2006-09-19 11:31:55+02:00, mskold@mysql.com +2 -0
  Bug #18679  rpl_ndb_dd_advance.test fails randomly