-
Arun Kuruvila authored
MEMORY TABLE Bug#25681518: CLEANUP PROCEDURE FOR MEMORY ENGINE TABLES BREAKS GTID REPLICA Analysis: Memory table's data will be lost after server restarts. To keep the data consistency between master and slave, it just binlogs an implicit DELETE statement when the memory table is locked first time. When the above scenario happens in a replication thread, the server raises an assertion. The reason is that the implicit DELETE statement consumes the GTID of the actual transaction (the one that is stored in the relay log), so that the the actual transaction, which comes later, has no GTID to use. This causes the assertion. Fix: This issue is fixed by creating a new THD object for handling the implicit binary logging of DELETE statement. This ensures that the implicit DELETE as well as the actual trasaction which triggered the implicit DELETE gets binary logged with the correct GTIDs. This fix also ensures that the implicit DELETE will be binlogged separately and will be wrapped by BEGIN/COMMIT pair. RB#24351
Arun Kuruvila authoredMEMORY TABLE Bug#25681518: CLEANUP PROCEDURE FOR MEMORY ENGINE TABLES BREAKS GTID REPLICA Analysis: Memory table's data will be lost after server restarts. To keep the data consistency between master and slave, it just binlogs an implicit DELETE statement when the memory table is locked first time. When the above scenario happens in a replication thread, the server raises an assertion. The reason is that the implicit DELETE statement consumes the GTID of the actual transaction (the one that is stored in the relay log), so that the the actual transaction, which comes later, has no GTID to use. This causes the assertion. Fix: This issue is fixed by creating a new THD object for handling the implicit binary logging of DELETE statement. This ensures that the implicit DELETE as well as the actual trasaction which triggered the implicit DELETE gets binary logged with the correct GTIDs. This fix also ensures that the implicit DELETE will be binlogged separately and will be wrapped by BEGIN/COMMIT pair. RB#24351
Loading