| Bug #68568 | Stop Slave statement will timeout not waiting the event group complete | ||
|---|---|---|---|
| Submitted: | 5 Mar 2013 3:17 | Modified: | 14 Nov 2013 21:10 |
| Reporter: | Max Gao | Email Updates: | |
| Status: | Verified | Impact on me: | |
| Category: | MySQL Server: Replication | Severity: | S3 (Non-critical) |
| Version: | 5.6.10 | OS: | Linux (CentOS 5.8 X64) |
| Assigned to: | CPU Architecture: | Any | |
| Tags: | event group, incomplete, slave, stop slave, timeout | ||
[5 Mar 2013 3:17]
Max Gao
[22 Mar 2013 0:09]
Sveta Smirnova
Thank you for the report. I can not repeat described behavior. Please send us output of SHOW SLAVE STATUS\G right after you are seeing the issue.
[22 Mar 2013 13:51]
Max Gao
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: x
Master_User: slave
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000008
Read_Master_Log_Pos: 222923842
Relay_Log_File: inner-relay-bin.000002
Relay_Log_Pos: 283
Relay_Master_Log_File: mysql-bin.000008
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 111461981
Relay_Log_Space: 111462317
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 205
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 2
Master_UUID: fd1de1d2-8495-11e2-9e18-001708517368
Master_Info_File: /home/mysql2/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Reading event from the relay log
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
1 row in set (0.00 sec)
mysql> stop slave;
Query OK, 0 rows affected (1 min 7.19 sec)
(slave stop after 1 min,but the update should take over 2 mins)
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State:
Master_Host: x
Master_User: slave
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000008
Read_Master_Log_Pos: 222923842
Relay_Log_File: inner-relay-bin.000002
Relay_Log_Pos: 283
Relay_Master_Log_File: mysql-bin.000008
Slave_IO_Running: No
Slave_SQL_Running: No
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 1593
Last_Error: Fatal error: ... Slave SQL Thread stopped with incomplete event group having non-transactional changes. If the group consists solely of row-based events, you can try to restart the slave with --slave-exec-mode=IDEMPOTENT, which ignores duplicate key, key not found, and similar errors (see documentation for details).
Skip_Counter: 0
Exec_Master_Log_Pos: 111461981
Relay_Log_Space: 111462317
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 1593
Last_SQL_Error: Fatal error: ... Slave SQL Thread stopped with incomplete event group having non-transactional changes. If the group consists solely of row-based events, you can try to restart the slave with --slave-exec-mode=IDEMPOTENT, which ignores duplicate key, key not found, and similar errors (see documentation for details).
Replicate_Ignore_Server_Ids:
Master_Server_Id: 2
Master_UUID: fd1de1d2-8495-11e2-9e18-001708517368
Master_Info_File: /home/mysql2/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State:
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp: 130322 21:48:38
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
1 row in set (0.00 sec)
[14 Nov 2013 21:10]
MySQL Verification Team
Verified in 5.5 and 5.6
Quick test can recreate on 5.6.12 with large load data into myisam ,bin log_format=row;
2013-11-08 22:36:05 4663 [Warning] Slave SQL: Request to stop slave SQL Thread received while applying a group that has non-transactional changes; waiting for completion of the group ... , Error_code: 0
2013-11-08 22:37:11 4663 [ERROR] Slave SQL: Fatal error: ... Slave SQL Thread stopped with incomplete event group having non-transactional changes. If the group consists solely of row-based events,
mysql> load data local infile '/usr/local/mysql/data/outfile2.txt' into table test.test FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n';
Query OK, 104606784 rows affected, 65535 warnings (9 min 40.38 sec)
mysql> start slave;select sleep(5);show slave status\G;stop slave sql_thread;
Last_SQL_Error: Fatal error: ... Slave SQL Thread stopped with incomplete event group having non-transactional changes. If the group consists solely of row-based events, you can try to restart the slave with --slave-exec-mode=IDEMPOTENT, which ignores duplicate key, key not found, and similar errors (see documentation for details).
2013-11-08 22:36:05 4663 [Warning] Slave SQL: Request to stop slave SQL Thread received while applying a group that has non-transactional changes; waiting for completion of the group ... , Error_code: 0
2013-11-08 22:37:11 4663 [ERROR] Slave SQL: Fatal error: ... Slave SQL Thread stopped with incomplete event group having non-transactional changes. If the group consists solely of row-based events,
^ notice in all cases seems to timeout right at minute
[13 Sep 2014 6:31]
Caio James
This also happens in MySQL 5.5.39
[28 Sep 2015 20:56]
Tim Connolly
I see this issue on mysql-5.7.3-m13-linux-glibc2.5-x86_64 also. PRD-DC2 root@data106:/usr/local/mysql$ service mysql restart Shutting down MySQL .2015-09-28T20:39:53.530188Z 0 [Note] Giving 3 client threads a chance to die gracefully 2015-09-28T20:39:53.530247Z 0 [Note] Shutting down slave threads 2015-09-28T20:39:53.841470Z 1 [Note] Slave I/O thread killed while reading event 2015-09-28T20:39:53.841514Z 1 [Note] Slave I/O thread exiting, read up to log 'mysql_binary_log.000194', position 590447037 ..............................2015-09-28T20:40:23.746872Z 2 [Warning] Slave SQL: Request to stop slave SQL Thread received while applying a group that has non-transactional changes; waiting for completion of the group ... , Error_code: 0 ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... * * Failed to stop running server, so refusing to try to start.
[19 Jul 2017 15:42]
Daniel Ragle
I'm getting this on CentOS7/MySQL 5.5.52. Would love to see it get escalated, or at least if someone has found a decent work around. We've gotten it twice this month and each time had to manually resync the affected table.
[22 Dec 2017 15:28]
Mikhail Golenkov
Hi, There is a little trick you can do in order to prevent this bug. 1) Run "Stop slave IO_THREAD" 2) Wait all transactions from relay logs to be executed by SQL_THREAD 3) Check the state of SQL_THREAD (show slave status): Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it 4) Now you can run "Stop slave" safely. Best regards
[15 Sep 2021 20:49]
Jason Sowa
We see this several times a month during hourly backups of the slave. Mikhail Golenkov's workaround does not work for us. I can confirm the slave state is "Slave has read all relay log; waiting for more updates", and upon stopping the slave we still (sometimes) see "Fatal error: ... Slave SQL Thread stopped with incomplete event group having non-transactional changes...". We need to stop the slave to run a backup, maybe someone can recommend another method of gracefully stopping or backing up a slave? mysql Ver 14.14 Distrib 5.7.27
