STOP SLAVE in the middle of event group can cause rollback of transaction mixing transactional and non-transactional DML, causing slave corruption

Description

http://buildbot.askmonty.org/buildbot/builders/work-amd64-valgrind/builds/6554/steps/test/logs/stdio

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 rpl.rpl_parallel 'innodb_plugin,row' w3 [ fail ] Test ended at 2015-01-06 23:50:40 CURRENT_TEST: rpl.rpl_parallel mysqltest: In included file "./include/wait_for_slave_param.inc": included from ./include/wait_for_slave_sql_to_start.inc at line 32: included from ./include/wait_for_slave_to_start.inc at line 27: included from ./include/start_slave.inc at line 35: included from /var/lib/buildbot/maria-slave/work-opensuse-amd64/build/mysql-test/suite/rpl/t/rpl_parallel.test at line 344: At line 115: Timeout in include/wait_for_slave_param.inc The result from queries just before the failure was: < snip > 'group_commit_waiting_for_prior SIGNAL slave_queued3', '')) master-bin.000002 1417 Xid 1 1444 COMMIT /* xid=358 */ master-bin.000002 1444 Gtid 1 1482 BEGIN GTID 0-1-15 master-bin.000002 1482 Query 1 1571 use `test`; INSERT INTO t2 VALUES (20) master-bin.000002 1571 Query 1 1660 use `test`; INSERT INTO t1 VALUES (20) master-bin.000002 1660 Query 1 1749 use `test`; INSERT INTO t2 VALUES (21) master-bin.000002 1749 Query 1 1842 use `test`; INSERT INTO t3 VALUES (20, 20) master-bin.000002 1842 Xid 1 1869 COMMIT /* xid=421 */ master-bin.000002 1869 Gtid 1 1907 BEGIN GTID 0-1-16 master-bin.000002 1907 Query 1 1999 use `test`; INSERT INTO t3 VALUES(21, 21) master-bin.000002 1999 Xid 1 2026 COMMIT /* xid=426 */ master-bin.000002 2026 Gtid 1 2064 BEGIN GTID 0-1-17 master-bin.000002 2064 Query 1 2156 use `test`; INSERT INTO t3 VALUES(22, 22) master-bin.000002 2156 Xid 1 2183 COMMIT /* xid=427 */ **** SHOW RELAYLOG EVENTS on server_1 **** relaylog_name = 'No such row' SHOW RELAYLOG EVENTS IN 'No such row'; Log_name Pos Event_type Server_id End_log_pos Info More results from queries before failure can be found in /dev/shm/var_auto_lwsQ/3/log/rpl_parallel.log - saving '/dev/shm/var_auto_lwsQ/3/log/rpl.rpl_parallel-innodb_plugin,row/' to '/var/lib/buildbot/maria-slave/work-opensuse-amd64/build/mysql-test/var/log/rpl.rpl_parallel-innodb_plugin,row/' Retrying test rpl.rpl_parallel, attempt(2/3)... worker[3] > Restart - not started worker[3] > Restart - not started ***Warnings generated in error logs during shutdown after running tests: rpl.rpl_gtid_startpos rpl.rpl_commit_after_flush rpl.rpl_gtid_errorhandling rpl.rpl_foreign_key_innodb rpl.rpl_old_master rpl.rpl_bug26395 rpl.rpl_gtid_mdev4484 rpl.rpl_failed_optimize rpl.rpl_dual_pos_advance rpl.rpl_gtid_ignored rpl.rpl_insert_id_pk rpl.rpl_gtid_reconnect rpl.rpl_insert_ignore rpl.rpl_insert_id rpl.rpl_parallel rpl.rpl_multi_engine rpl.rpl_gtid_until rpl.rpl_mysql_upgrade rpl.rpl_checksum_cache 150106 23:44:13 [Warning] Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it accesses a non-transactional table after accessing a transactional table within the same transaction. Statement: INSERT INTO t1 VALUES (20) 150106 23:44:15 [Warning] Slave: Duplicate entry '20' for key 'PRIMARY' Error_code: 1062

Environment

None

Status

Assignee

Kristian Nielsen

Reporter

Elena Stepanova

Labels

External issue ID

None

External issue ID

None

Components

Fix versions

Affects versions

10.0
10.1

Priority

Major
Configure