Bug #90980 | Duplicate error on Slave when drop temporary tables | ||
---|---|---|---|
Submitted: | 23 May 2018 2:16 | Modified: | 19 Jul 2018 13:12 |
Reporter: | Juan Arruti | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Replication | Severity: | S3 (Non-critical) |
Version: | 5.6, 5.7, 5.7.22 | OS: | Any |
Assigned to: | CPU Architecture: | Any |
[23 May 2018 2:16]
Juan Arruti
[23 May 2018 2:19]
Juan Arruti
Tested on 5.6 and 5.7.
[23 May 2018 11:14]
MySQL Verification Team
Hello Juan, Thank you for the report and test case. Observed this with 5.7.22 build. Thanks, Umesh
[23 May 2018 11:15]
MySQL Verification Team
5.7.22 - test results
Attachment: 90980_5.7.22.results (application/octet-stream, text), 13.25 KiB.
[24 May 2018 16:22]
Juan Arruti
This issue is also present on statement based replication since the DML that affects InnoDB rows is logged into the binary logs alongside the drop temporary command before the rollback statement, regardless of the binary log format.
[19 Jul 2018 13:12]
Margaret Fisher
Posted by developer: Note added in 5.7 and 5.6 docs: From MySQL 8.0, this behavior is changed because the MySQL server tracks the logging mode that was in effect when each temporary table was created. The DROP TEMPORARY TABLE IF EXISTS statement is therefore not necessarily logged for each temporary table. From that release, when a given client session ends, the server logs a DROP TEMPORARY TABLE IF EXISTS statement for each temporary table that still exists and was created when statement-based binary logging was in use. If row-based or mixed format binary logging was in use when the table was created, the DROP TEMPORARY TABLE IF EXISTS statement is not logged.