[MDEV-22092] Binlog recovery fails when binlog rotation happens through FLUSH LOGS Created: 2020-03-31 Updated: 2023-04-27 |
|
| Status: | Open |
| Project: | MariaDB Server |
| Component/s: | Replication |
| Affects Version/s: | 10.1, 10.2, 10.3, 10.4 |
| Fix Version/s: | 10.4 |
| Type: | Bug | Priority: | Major |
| Reporter: | Sujatha Sivakumar (Inactive) | Assignee: | Andrei Elkin |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
binlog based recovery works only in a case where prepared transaction is present in the active binary log at the time of crash. For example in the following test 'INSERT INTO t VALUES (20)' is in prepared state and 'master-bin.000002' is active log. Server crashed here. Upon recovery two records are found in table. Test case: RESET MASTER; CREATE TABLE t ( f INT ) ENGINE=INNODB;
--connection default --source include/kill_and_restart_mysqld.inc --connection default Bug case: In the above test if "FLUSH LOGS" are uncommented the active binary log will be 'master-bin.000004'. Prepared transaction will be in 'master-bin.000002'. Now upon restart table has only one row with value '10'. Binlog recovery doesn't work in this case. |