Bug #72212 rpl_heartbeat_basic does not do clean-up
Submitted: 2 Apr 2014 19:58 Modified: 7 Apr 2014 8:08
Reporter: Serge Kozlov Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Replication Severity:S3 (Non-critical)
Version:5.5.36 OS:Any
Assigned to: Serge Kozlov CPU Architecture:Any
Tags: replication

[2 Apr 2014 19:58] Serge Kozlov
Description:
rpl_heartbeat_basic does not do clean-up and thus MTR's check failed

How to repeat:
 ./mysql-test-run.pl --vardir=/tmp/mysql/var --tmpdir=/tmp/mysql/tmp rpl_heartbeat_basic
defined(@array) is deprecated at lib/mtr_cases.pm line 340.
    (Maybe you should just omit the defined()?)
defined(@array) is deprecated at ./mysql-test-run.pl line 490.
    (Maybe you should just omit the defined()?)
Logging: ./mysql-test-run.pl  --vardir=/tmp/mysql/var --tmpdir=/tmp/mysql/tmp rpl_heartbeat_basic
140325 17:25:09 [Note] Plugin 'FEDERATED' is disabled.
MySQL Version 5.5.36
Checking supported features...
- SSL connections supported
Collecting tests...
- adding combinations for rpl
Checking leftover processes...
Removing old var directory...
Creating var directory '/tmp/mysql/var'...
Installing system database...
Using server port 57049

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

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

worker[1] Using MTR_BUILD_THREAD 300, with reserved ports 13000..13009
rpl.rpl_heartbeat_basic 'mix'            [ pass ]  58208

MTR's internal check of the test case 'rpl.rpl_heartbeat_basic' failed.
This means that the test case does not preserve the state that existed
before the test case was executed.  Most likely the test case did not
do a proper clean-up. It could also be caused by the previous test run
by this thread, if the server wasn't restarted.
This is the diff of the states of the servers before and after the
test case was executed:
mysqltest: Logging to '/tmp/mysql/var/tmp/check-mysqld_2.log'.
mysqltest: Results saved in '/tmp/mysql/var/tmp/check-mysqld_2.result'.
mysqltest: Connecting to server localhost:13001 (socket /tmp/mysql/tmp/mysqld.2.sock) as 'root', connection 'default',
attempt 0 ...
mysqltest: ... Connected.
mysqltest: Start processing test commands from './include/check-testcase.test' ...
mysqltest: ... Done processing test commands.
--- /tmp/mysql/var/tmp/check-mysqld_2.result    2014-03-25 20:25:13.555623440 +0300
+++ /tmp/mysql/var/tmp/check-mysqld_2.reject    2014-03-25 20:26:12.079623440 +0300
@@ -612,6 +612,9 @@
mysql.user    plugin    41        YES    char    64    192 NULL NULL    utf8    utf8_bin    char(64)
mysql.user    authentication_string    42    NULL    YES text 65535    65535    NULL    NULL    utf8
utf8_bin    text
EVENT_CATALOG    EVENT_SCHEMA    EVENT_NAME    DEFINER TIME_ZONE EVENT_BODY    EVENT_DEFINITION    EVENT_TYPE
EXECUTE_AT    INTERVAL_VALUE    INTERVAL_FIELD    SQL_MODE STARTS ENDS    STATUS    ON_COMPLETION
CREATEDLAST_ALTERED    LAST_EXECUTED    EVENT_COMMENT ORIGINATOR CHARACTER_SET_CLIENT    COLLATION_CONNECTION
DATABASE_COLLATION
+def    test    e1    root@localhost    SYSTEM    SQL    BEGIN
+UPDATE test.t1 SET a = a + 1 WHERE a < 10;
+END    RECURRING    NULL    1    SECOND        2014-03-25 20:25:29    NULL    SLAVESIDE_DISABLED    NOT PRESERVE
2014-03-25 20:25:29    2014-03-25 20:25:29    NULL        1 latin1    latin1_swedish_ci    latin1_swedish_ci
TRIGGER_CATALOG    TRIGGER_SCHEMA    TRIGGER_NAME EVENT_MANIPULATION    EVENT_OBJECT_CATALOG
EVENT_OBJECT_SCHEMA    EVENT_OBJECT_TABLE    ACTION_ORDER ACTION_CONDITION    ACTION_STATEMENT
ACTION_ORIENTATION    ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE
ACTION_REFERENCE_OLD_ROW    ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE    DEFINER    CHARACTER_SET_CLIENT
COLLATION_CONNECTION    DATABASE_COLLATION
SPECIFIC_NAME    ROUTINE_CATALOG    ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE    DATA_TYPE
CHARACTER_MAXIMUM_LENGTH    CHARACTER_OCTET_LENGTH NUMERIC_PRECISION    NUMERIC_SCALE    CHARACTER_SET_NAME
COLLATION_NAME    DTD_IDENTIFIER    ROUTINE_BODY ROUTINE_DEFINITION    EXTERNAL_NAME    EXTERNAL_LANGUAGE
PARAMETER_STYLE    IS_DETERMINISTIC    SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE    CREATED    LAST_ALTERED
SQL_MODE    ROUTINE_COMMENT    DEFINERCHARACTER_SET_CLIENT COLLATION_CONNECTION    DATABASE_COLLATION
add_suppression    def    mtr    add_suppression PROCEDURE NULL    NULL    NULL    NULL    NULL    NULL
NULL    SQL    BEGIN   INSERT INTO test_suppressions (pattern) VALUES (pattern); END    NULL    NULL    SQL    NO
CONTAINS SQL    NULL    DEFINER    2014-03-25 20:25:11 2014-03-25 20:25:11            root@localhostutf8
utf8_general_ci    latin1_swedish_ci

mysqltest: Result content mismatch

not ok

rpl.rpl_heartbeat_basic 'row'            [ skipped ]  Doesn't support --binlog-format='row'
rpl.rpl_heartbeat_basic 'stmt'           [ skipped ]  Doesn't support --binlog-format='statement'
--------------------------------------------------------------------------
The servers were restarted 0 times
Spent 58.208 of 64 seconds executing testcases

Check of testcase failed for: rpl.rpl_heartbeat_basic 

Suggested fix:
The reason of check failure following code:

--connection master
DELETE FROM t1;
DROP EVENT e1;
--echo

# Check received heartbeat events while logs flushed on slave
--connection slave
--echo *** Flush logs on slave ***
STOP SLAVE;
RESET SLAVE;
DROP TABLE t1;

Test doesn't sync after DELETE/DROP statements and then reset slave.
Adding --sync_slave_with_master after DROP EVENT e1 will fix it
[7 Apr 2014 8:08] Jon Stephens
Thank you for your bug report. This issue has been committed to our source repository of that product and will be incorporated into the next release.

If necessary, you can access the source repository and build the latest available version, including the bug fix. More information about accessing the source trees is available at

    http://dev.mysql.com/doc/en/installing-source.html
[7 Apr 2014 8:10] Jon Stephens
Fixed in MySQL 5.5.38/5.6.18/5.7.5. As this affects testing only, there are no user-facing changes to document and thus no need for a changelog entry.

Closed.
[31 May 2014 13:54] Laurynas Biveinis
$ bzr log -r 4616
------------------------------------------------------------
revno: 4616
committer: Serge Kozlov <serge.kozlov@oracle.com>
branch nick: mysql-5.5
timestamp: Fri 2014-04-04 10:42:25 +0400
message:
  BUG#18506556. Added sync slave with master for clean-up
[3 Jul 2014 5:15] Erlend Dahl
Bug#71631 was marked as a duplicate.