Bug #91008 | mysql stop for multi-threaded slave gives error code 1756 | ||
---|---|---|---|
Submitted: | 24 May 2018 11:03 | Modified: | 17 Dec 2024 16:33 |
Reporter: | Prasad N | Email Updates: | |
Status: | No Feedback | Impact on me: | |
Category: | MySQL Server: Replication | Severity: | S2 (Serious) |
Version: | 5.7.21 | OS: | CentOS (CentOS (2.6.32-696.23.1.el6.x86_64 )) |
Assigned to: | MySQL Verification Team | CPU Architecture: | x86 |
Tags: | MTS, slave |
[24 May 2018 11:03]
Prasad N
[19 Jul 2018 8:24]
MySQL Verification Team
Hi, I don't believe this is a bug. It would be a bug if a start would not solve the issue but since the system will autocorrect when you start it... it's a design choice. If you want consistent data in the slave you should stop replication before you do shutdown. all best Bogdan
[31 Mar 2020 14:48]
Gauravkumar Mishra
I am facing exact same problem, when I am replicating from , Mysql 5.7.23 to mysql 8.0.17. my gtid is stuck, my relay logs keeps on rotating. Slave_IO_State: waiting for handler commit
[19 Feb 2024 16:17]
Online Ops
Just a little color to this. We experienced this error today. Root cause was a mystery to me. I stopped replication and restarted, the server self-healed. Turned out someone on our BI team manually killed a coordinator thread (replication thread) - which probably is what corrupted replication.
[16 Oct 2024 14:17]
Marek Kretkiewicz
Hi. We have exactly the same issue today. 2024-10-16T10:24:23.319479Z 64 [Warning] [MY-010584] [Repl] Replica SQL for channel '': Worker 1 failed executing transaction 'ANONYMOUS' at source log binlog.000361, end_l og_pos 401108027; Error in cleaning up after an event preceding the commit; the group log file/position: binlog.000361 401107180, Error_code: MY-000001 2024-10-16T10:24:23.319598Z 64 [ERROR] [MY-010584] [Repl] Replica SQL for channel '': Worker 1 failed executing transaction 'ANONYMOUS' at source log binlog.000361, end_log _pos 401108027; Error 'Got error 125 - 'Transaction has been rolled back' during COMMIT' on query. Default database: ''. Query: 'COMMIT', Error_code: MY-001180 2024-10-16T10:24:23.319660Z 63 [Warning] [MY-010584] [Repl] Replica SQL for channel '': ... The replica coordinator and worker threads are stopped, possibly leaving data in inconsistent state. A restart should restore consistency automatically, although using non-transactional storage for data or info tables or DDL queries could lead to probl ems. In such cases you have to examine your data (see documentation for details). Error_code: MY-001756 we do have ndbd 8.0.34. Suddenly it stopped with this error. Slave_IO_State: Waiting for source to send event Master_Host: master_host Master_User: repliaction_user Master_Port: 3306 Connect_Retry: 60 Master_Log_File: binlog.000361 Read_Master_Log_Pos: 591918710 Relay_Log_File: relay_file Relay_Log_Pos: 39318280 Relay_Master_Log_File: binlog.000361 Slave_IO_Running: Yes 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: 1180 Last_Error: Coordinator stopped because there were error(s) in the worker(s). The most recent failure being: Worker 1 failed executing transaction 'ANONYMOUS' at source log binlog.000361, end_log_pos 401108027. See error log and/or performance_schema.replication_applier_status_by_worker table for more details about this failure or others, if any. Skip_Counter: 0 Exec_Master_Log_Pos: 401107180 Relay_Log_Space: 57718384 and the only action was to execute "start slave;". No skip, nothing, it has reach last position of master binlog. BUT. It looks that mysqld has skipped problematic transaction. I can see in binlog, that value was: # at 401108471 #241016 12:24:23 server id 41 end_log_pos 401108536 CRC32 0x7dc8061e Write_rows: table id 272 # at 401108536 #241016 12:24:23 server id 31 end_log_pos 401108609 CRC32 0xe20d63df Write_rows: table id 1008 # at 401108609 #241016 12:24:23 server id 41 end_log_pos 401108743 CRC32 0xa759b900 Write_rows: table id 477 # at 401108743 #241016 12:24:23 server id 41 end_log_pos 401108818 CRC32 0xc1e1b813 Write_rows: table id 479 flags: STMT_END_F ### INSERT INTO `mysql`.`ndb_apply_status` ### SET ### @1=41 ### @2=77507911831519245 ### @3='' ### @4=0 ### @5=0 ### INSERT INTO `database1`.`table_1` ### SET ### @1='key_1' ### @2=38 ### INSERT INTO `database2`.`table_2` ### SET ### @1='val_1' ### @2='val_2' ### @3='' ### @4=1 ### @5=1729074263 ### @6=1 ### @7=1 ### @8='longer value' ### INSERT INTO `database2`.`table_2` I've checked on master ### INSERT INTO `database1`.`table_1` ### SET ### @1='key_1' ### @2=38 val 38 was set for key_1, however when slave was synch to master had value 36 for key_1. It looks that mysqld has skipped this transaction on slave side.
[15 Nov 2024 19:38]
MySQL Verification Team
Bug #116682 is marked as duplicate of this one
[15 Nov 2024 19:39]
MySQL Verification Team
Hi, > It looks that mysqld has skipped this transaction on slave side. What version are you reproducing this with? I just tried 8.0.40 and I cannot reproduce this. Can you please try to reproduce this with current version of MySQL Thanks
[10 Dec 2024 14:16]
Marek Kretkiewicz
we do have ndbd 8.0.34.
[11 Dec 2024 7:57]
MySQL Verification Team
Hi Marek, I understand, but that is a release more than a year old with 6 releases with bugfixes released after it. Even if I can reproduce the problem with that release the only solution is to upgrade.
[18 Dec 2024 1:00]
Bugs System
No feedback was provided for this bug for over a month, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open".