[MDEV-14436] Incorrect binlog order on slave for MyISAM statements Created: 2017-11-17 Updated: 2020-12-01 |
|
| Status: | Confirmed |
| Project: | MariaDB Server |
| Component/s: | Replication |
| Affects Version/s: | 10.0, 10.1, 10.0.33, 10.2 |
| Fix Version/s: | 10.2 |
| Type: | Bug | Priority: | Major |
| Reporter: | Kristian Nielsen | Assignee: | Andrei Elkin |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | replication | ||
| Description |
|
This bug is a regression introduced with this commit:
The problem with this patch is that makes the slave SQL thread always use
In order to ensure correct binlog order, it is essential that the binlog is A simple testcase shows the problem. First, apply this patch to recent 10.0:
Then run this testcase:
Before the patch 8bf6152b, the result is correct on all three servers. After
This problem can also occur without direct changes on the slave if parallel |
| Comments |
| Comment by Kristian Nielsen [ 2017-11-17 ] | |||||||||||||||||
|
BTW, this .cnf is needed to run the testcase:
| |||||||||||||||||
| Comment by Michael Widenius [ 2017-11-22 ] | |||||||||||||||||
|
Kristian, any suggestion for how to fix this ? The problem my patch fixes, as far as I can remember, was to ensure that GTID's are kept in sync between master and slave. One solution for this would be to keep the MyISAM tables locked until commit, which is not that trivial as we have to add code to kill any queries using any conflicting tables used on the slave. Do you have any other suggestions ? | |||||||||||||||||
| Comment by Kristian Nielsen [ 2017-11-23 ] | |||||||||||||||||
|
Copying my reply on IRC:
|