Bug #90580 rpl.rpl_transaction_write_set_extraction_savepoint test fails
Submitted: 23 Apr 2018 17:29 Modified: 24 Apr 2018 11:37
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: rpl.rpl_transaction_write_set_extraction_savepoint, savepoint, test

[23 Apr 2018 17:29] Valeriy Kravchuk
Description:
Test rpl.rpl_transaction_write_set_extraction_savepoint fails for me with MySQL 8.0.11 built from GitHub source on Fedora 27:

[openxs@fc23 mysql-test]$ ./mtr rpl.rpl_transaction_write_set_extraction_savepoint
Logging: ./mtr  rpl.rpl_transaction_write_set_extraction_savepoint
2018-04-23T17:24:24.667280Z 0 [Warning] [MY-010139] [Server] Changed limits: max_open_files: 1024 (requested 8161)
2018-04-23T17:24:24.667388Z 0 [Warning] [MY-010142] [Server] Changed limits: table_open_cache: 431 (requested 4000)
2018-04-23T17:24:24.667720Z 0 [System] [MY-010116] [Server] /home/openxs/dbs/8.0/bin/mysqld (mysqld 8.0.11) starting as process 3762
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_transaction_write_set_extraction_savepoint 'mix' [ skipped ]  Doesn't support --binlog-format='mixed'
rpl.rpl_transaction_write_set_extraction_savepoint 'row' [ fail ]
        Test ended at 2018-04-23 20:25:17

CURRENT_TEST: rpl.rpl_transaction_write_set_extraction_savepoint
mysqltest: At line 34: query 'SAVEPOINT my_savepoint' succeeded - should have failed with errno 1290...

The result from queries just before the failure was:
< snip >
Note    ####    Sending passwords in plain text without SSL/TLS is extremely insecure.
Note    ####    Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START SLAVE; see the 'START SLAVE Syntax' in the MySQL Manual for more information.
[connection master]

############################################################
#  1. Assert that option transaction_write_set_extraction is
#     indeed set.
include/assert.inc [The value for transaction_write_set_extraction should be MURMUR32]

############################################################
#  2. Create a table for the test case.
CREATE TABLE t1 (c1 INT PRIMARY KEY);

############################################################
#  3. Validate that error is thrown when SAVEPOINT is used
#     when option transaction-write-set-extraction is set to
#     a value different of OFF on a regular transaction.
BEGIN;
INSERT INTO t1 VALUES(0);
safe_process[3889]: Child process: 3890, exit: 1

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

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

How to repeat:
Build MySQL 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 test:

[openxs@fc23 mysql-test]$ ./mtr rpl.rpl_transaction_write_set_extraction_savepoint

Enjoy the result...

Suggested fix:
Do something for this test NOT to fail.
[24 Apr 2018 3:08] Erlend Dahl
rpl.rpl_transaction_write_set_extraction_savepoint was removed in 8.0.1, please check your setup.
[24 Apr 2018 11:37] Valeriy Kravchuk
This test was, indded, a leftover of some older 8.0.x version:

openxs@ao756:~/git/mysql-server$ ls -l ~/dbs/8.0/mysql-test/suite/rpl/t/rpl_transaction_write_set_extraction*
-rw-rw-r-- 1 openxs openxs   44 січ 26  2017 /home/openxs/dbs/8.0/mysql-test/suite/rpl/t/rpl_transaction_write_set_extraction-master.opt
-rw-rw-r-- 1 openxs openxs   44 гру 10  2015 /home/openxs/dbs/8.0/mysql-test/suite/rpl/t/rpl_transaction_write_set_extraction_savepoint-master.opt
-rw-rw-r-- 1 openxs openxs 2020 гру 10  2015 /home/openxs/dbs/8.0/mysql-test/suite/rpl/t/rpl_transaction_write_set_extraction_savepoint.test
-rw-rw-r-- 1 openxs openxs   44 січ 26  2017 /home/openxs/dbs/8.0/mysql-test/suite/rpl/t/rpl_transaction_write_set_extraction-slave.opt
-rw-rw-r-- 1 openxs openxs 5406 кві 19 15:32 /home/openxs/dbs/8.0/mysql-test/suite/rpl/t/rpl_transaction_write_set_extraction.test

It does NOT exist in current source code:

openxs@ao756:~/git/mysql-server$ ls -l mysql-test/suite/rpl/t/rpl_transaction_write_set_extraction*
-rw-rw-r-- 1 openxs openxs 5406 кві 19 15:32 mysql-test/suite/rpl/t/rpl_transaction_write_set_extraction.test
openxs@ao756:~/git/mysql-server$

The test rpl_transaction_write_set_extraction that exists needs debug binaries:

openxs@ao756:~/dbs/8.0/mysql-test$ ./mtr rpl.rpl_transaction_write_set_extraction
Logging: ./mtr  rpl.rpl_transaction_write_set_extraction
2018-04-24T11:34:50.414220Z 0 [Warning] [MY-010139] [Server] Changed limits: max_open_files: 1024 (requested 8161)
2018-04-24T11:34:50.414362Z 0 [Warning] [MY-010142] [Server] Changed limits: table_open_cache: 431 (requested 4000)
2018-04-24T11:34:50.414808Z 0 [System] [MY-010116] [Server] /home/openxs/dbs/8.0/bin/mysqld (mysqld 8.0.11) starting as process 1150
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_transaction_write_set_extraction [ skipped ]  Test needs debug binaries
--------------------------------------------------------------------------
The servers were restarted 0 times
Spent 0.000 of 51 seconds executing testcases

Completed: All 0 tests were successful.

1 tests were skipped, 0 by the test itself.

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

To summarize, this was also my fault (assuming that dropping tests in the process of development is OK).