Bug #77729 | Cleanup procedure for Memory engine tables breaks GITD replica | ||
---|---|---|---|
Submitted: | 15 Jul 2015 8:41 | Modified: | 13 May 2020 12:23 |
Reporter: | Rumen Palov | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Replication | Severity: | S2 (Serious) |
Version: | Distrib 5.6.16, for FreeBSD,5.6.35 | OS: | FreeBSD (tested only on freebsd) |
Assigned to: | CPU Architecture: | Any |
[15 Jul 2015 8:41]
Rumen Palov
[16 Jul 2015 12:58]
MySQL Verification Team
Hello Rumen, Thank you for the report. I'm not seeing this issue on 5.6.25/5.6.27, I see you are using 5.6.16 which is very old and many bugs fixed since then. Please try GA version 5.6.25 and let us know if you are still having this issue along with conf files used and error log for further investigations. If you can provide more information, feel free to add it to this bug and change the status back to 'Open'. Thank you for your interest in MySQL. Thanks, Umesh
[16 Jul 2015 12:58]
MySQL Verification Team
5.6.25/27 test results
Attachment: 77729_5.6.25.results (application/octet-stream, text), 54.99 KiB.
[5 Aug 2015 10:11]
Amar Jaiswal
I am still getting this issue in 5.6.25 as well as 5.6.26. 5.6.27 is still not released according to Mysql5.6 release-notes page. Any updates...
[4 Apr 2016 16:28]
monty solomon
Was this issue fixed as part of bug # 68525?
[7 Mar 2017 14:24]
MySQL Verification Team
Thank you for the feedback, and steps.
[7 Mar 2017 14:25]
MySQL Verification Team
test results
Attachment: 77729_5.6.35.results (application/octet-stream, text), 10.32 KiB.
[13 May 2020 12:23]
Margaret Fisher
Posted by developer: Changelog entry added for MySQL 5.6.49, 5.7.31, and 8.0.21: When a master server shuts down and restarts, its MEMORY tables become empty. To replicate this effect to slaves, the first time that the master uses a given MEMORY table after startup, it notifies slaves that the table must be emptied by writing a DELETE statement for that table to the binary log. Previously, the generated DELETE statement was written to the binary log statement cache for the current session, which could result in it being logged together with other statements under the same GTID, or logged without BEGIN and COMMIT statements. Also, in some situations, the generated DELETE statement could consume the GTID intended for the transaction that triggered it. The generated DELETE statement is now logged with accompanying BEGIN and COMMIT statements, and the resulting transaction is flushed to the binary log immediately after it is written to the statement cache, so that it always receives its own GTID and is kept separate from other transactions.