Bug #90576 rpl.rpl_row_001 test fails
Submitted: 23 Apr 2018 16:20 Modified: 24 Apr 2018 11:28
Reporter: Valeriy Kravchuk Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Row Based Replication ( RBR ) Severity:S3 (Non-critical)
Version:8.0.11 OS:Fedora (27)
Assigned to: CPU Architecture:x86
Tags: regression, rpl.rpl_row_001, test

[23 Apr 2018 16:20] Valeriy Kravchuk
Description:
rpl.rpl_row_001 test fails for me with MySQL 8.0.11 built from GitHub source on Fedora 27:

[openxs@fc23 mysql-test]$ ./mtr --suite=rpl rpl.rpl_row_001
Logging: ./mtr  --suite=rpl rpl.rpl_row_001
2018-04-23T15:49:30.553112Z 0 [Warning] [MY-010139] [Server] Changed limits: max_open_files: 1024 (requested 8161)
2018-04-23T15:49:30.553222Z 0 [Warning] [MY-010142] [Server] Changed limits: table_open_cache: 431 (requested 4000)
2018-04-23T15:49:30.553552Z 0 [System] [MY-010116] [Server] /home/openxs/dbs/8.0/bin/mysqld (mysqld 8.0.11) starting as process 2826
MySQL Version 8.0.11
Checking supported features...
 - SSL connections supported
Collecting tests...
 - adding combinations for rpl
Checking leftover processes...
Removing old var directory...
Creating var directory '/home/openxs/dbs/8.0/mysql-test/var'...
Installing system database...
Using parallel: 1

==============================================================================

TEST                                      RESULT   TIME (ms) or COMMENT
--------------------------------------------------------------------------

worker[1] Using MTR_BUILD_THREAD 300, with reserved ports 13000..13009
rpl.rpl_row_001 'mix'                    [ skipped ]  Doesn't support --binlog-format='mixed'
rpl.rpl_row_001 'row'                    [ fail ]
        Test ended at 2018-04-23 18:56:13

CURRENT_TEST: rpl.rpl_row_001
--- /home/openxs/dbs/8.0/mysql-test/suite/rpl/r/rpl_row_001.result      2016-06-03 13:04:19.000000000 +0300
+++ /home/openxs/dbs/8.0/mysql-test/var/log/rpl_row_001.reject  2018-04-23 18:56:13.191415876 +0300
@@ -34,24 +34,29 @@
 DROP TABLE t1,t3;
 CREATE TABLE t1 (n INT) ENGINE=MYISAM;
 RESET MASTER;
-STOP SLAVE;
+include/stop_slave.inc
 RESET SLAVE;
 SELECT COUNT(*) FROM t1;
 COUNT(*)
 5000
+include/save_master_pos.inc
 RESET MASTER;
 LOCK TABLES t1 READ;
-START SLAVE;
+include/start_slave.inc
+include/sync_slave_io.inc
 UNLOCK TABLES;
+include/sync_slave_sql_with_io.inc
 SELECT COUNT(*) FROM t1;
 COUNT(*)
 5000
 DROP TABLE t1;
 CREATE TABLE t1 (n INT);
 INSERT INTO t1 VALUES(3456);
+include/sync_slave_sql_with_master.inc
 SELECT n FROM t1;
 n
 3456
 DROP TABLE t1;
 # mysql.user table restored to original values.
+include/sync_slave_sql_with_master.inc
 include/rpl_end.inc

mysqltest: Result content mismatch

safe_process[2953]: Child process: 2954, exit: 1

 - the logfile can be found in '/home/openxs/dbs/8.0/mysql-test/var/log/rpl.rpl_row_001-row/rpl_row_001.log'

Only  2  of 3 completed.
mysql-test-run: *** ERROR: Not all tests completed

It seems the content of .result file was not properly updated.

How to repeat:
Build 8.0.11 from GitHub source using the following cmake command line:

cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_CONFIG=mysql_release -DFEATURE_SET=community -DWITH_EMBEDDED_SERVER=OFF -DCMAKE_INSTALL_PREFIX=/home/openxs/dbs/8.0 -DWITH_BOOST=/home/openxs/boost -DDOWNLOAD_BOOST=1  -DENABLE_DOWNLOADS=1 -DWITH_UNIT_TESTS=OFF

Install it and run the test:

./mtr --suite=rpl rpl.rpl_row_001

Suggested fix:
Update the .result file to match the test, disable the test or do something for it to NOT fail.
[24 Apr 2018 2:59] Erlend Dahl
rpl.rpl_row_001 isn't present in 8.0.11, it was renamed to rpl_nogtid.rpl_row_001 in 8.0.1. Please run that version of the test and report back.
[24 Apr 2018 11:28] Valeriy Kravchuk
Indeed, you are right about this test being old and not existing in current sources:

openxs@ao756:~/git/mysql-server$ git log -1
commit 4f1d7cf5fcb11a3f84cff27e37100d7295e7d5ca
Author: mysql-builder@oracle.com <>
Date:   Tue Apr 3 10:28:21 2018 +0200
openxs@ao756:~/git/mysql-server$ ls -l ~/dbs/8.0/mysql-test/suite/rpl/t/rpl_row_001.*
-rw-rw-r-- 1 openxs openxs 528 гру 10  2015 /home/openxs/dbs/8.0/mysql-test/suite/rpl/t/rpl_row_001.test
openxs@ao756:~/git/mysql-server$ ls -l ~/dbs/8.0/mysql-test/suite/rpl/t/rpl_row_001.*
-rw-rw-r-- 1 openxs openxs 528 гру 10  2015 /home/openxs/dbs/8.0/mysql-test/suite/rpl/t/rpl_row_001.test
openxs@ao756:~/git/mysql-server$

As for running this test in rpl_nogtid suite, I see the following:

openxs@ao756:~/dbs/8.0/mysql-test$ ./mtr --big-test rpl_nogtid.rpl_row_001
Logging: ./mtr  --big-test rpl_nogtid.rpl_row_001
2018-04-24T11:04:16.898142Z 0 [Warning] [MY-010139] [Server] Changed limits: max_open_files: 1024 (requested 8161)
2018-04-24T11:04:16.898284Z 0 [Warning] [MY-010142] [Server] Changed limits: table_open_cache: 431 (requested 4000)
2018-04-24T11:04:16.898725Z 0 [System] [MY-010116] [Server] /home/openxs/dbs/8.0/bin/mysqld (mysqld 8.0.11) starting as process 869
MySQL Version 8.0.11
Checking supported features...
 - SSL connections supported
Collecting tests...
 - adding combinations for rpl_nogtid
Checking leftover processes...
Removing old var directory...
Creating var directory '/home/openxs/dbs/8.0/mysql-test/var'...
Installing system database...
Using parallel: 1

==============================================================================

TEST                                      RESULT   TIME (ms) or COMMENT
--------------------------------------------------------------------------

worker[1] Using MTR_BUILD_THREAD 300, with reserved ports 13000..13009
rpl_nogtid.rpl_row_001 'mix'             [ skipped ]  Doesn't support --binlog-format='mixed'
rpl_nogtid.rpl_row_001 'row'             [ pass ]  561662
rpl_nogtid.rpl_row_001 'stmt'            [ skipped ]  Doesn't support --binlog-format='statement'
--------------------------------------------------------------------------
The servers were restarted 0 times
Spent 561.662 of 632 seconds executing testcases

Completed: All 1 tests were successful.

2 tests were skipped, 0 by the test itself.

openxs@ao756:~/dbs/8.0/mysql-test$

So, the test does not fail. My fault.