[MDEV-32093] long uniques break old->new replication Created: 2023-09-04 Updated: 2023-12-11 Resolved: 2023-09-07 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Replication |
| Affects Version/s: | 10.4, 10.5, 10.6, 10.10, 10.11, 11.0, 11.1 |
| Fix Version/s: | 10.4.32, 10.5.23, 10.6.16, 10.10.7, 10.11.6, 11.0.4, 11.1.3 |
| Type: | Bug | Priority: | Blocker |
| Reporter: | Sergei Golubchik | Assignee: | Sergei Golubchik |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | CS0665516 | ||
| Issue Links: |
|
||||||||||||
| Description |
|
These events were generated by MariaDB 10.5.15 — before The hash value calculation was changed in the following versions: If the master would be before any of the above versions and slave newer than any of the above versions or vice versa, then the reported problem can happen if the master and slave was of different versions when the table was created. After the "Fix version" this cannot happen anymore as the slave will always recalculate the hash on the slave on insert and update. However if the mismatch of master and slave version have ever been in effect, the slaves hash values can be corrupted (as they contain a mismatch of old and new values). The effect of this bug is that if one has a table with an utf8 column and a UNIQUE HASH index like in: CREATE TABLE Then the following problems may occur on slave where the master & slave have conflicting version as described above:
To fix this, one has to drop the unique index and add it back on the affected server or alternatively run ALTER TABLE xxx ENGINE=InnoDB; (In case of InnoDB tables). |
| Comments |
| Comment by Sergei Golubchik [ 2023-09-05 ] | |||||||||||||||||
|
decoded row events
| |||||||||||||||||
| Comment by Nikita Malyavin [ 2023-09-06 ] | |||||||||||||||||
|
The fix is Ok to push. Please note about hash function change into the commit message. |