[MDEV-4088] Replication 10.0 -> 5.5 fails Created: 2013-01-25 Updated: 2022-12-08 Resolved: 2013-04-11 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | None |
| Affects Version/s: | 10.0.0 |
| Fix Version/s: | 10.0.2 |
| Type: | Bug | Priority: | Blocker |
| Reporter: | Kristian Nielsen | Assignee: | Sergei Golubchik |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||||||||||||||||||||||
| Description |
|
Replication from 10.0 to 5.5 (or earlier versions, MariaDB and MySQL both) "Master reported unrecognized MySQL version" The problem is that in 5.5 and below, there is code like this in the slave:
This breaks on version "10.0". Agreed solution: we'll sent the version string in the handshake packet in the form of 5.5.30-mysql-10.0.2-MariaDB. The @@global.version variable and the VERSION() sql function will not be affected by this change. The rest of the issue follows, for reference purposes. Apparently this was discovered earlier, as the code in 10.0 is changed to look It looks like we will either need to call 10.0 something else, or have the I investigated the code in a bit more detail. Unfortunately, it looks like we 1. Use 9.0 for the coming MariaDB version, instead of 10.0. 2. Lie to all clients about our version number. Eg. send 5.5.50 or something 3. Not be able to replicate from MariaDB 10.0 master to MySQL slave at all. The option (3) seems unacceptable to me. Option (1) looks attractive to me. This might also help other (3rd party) Option (2) appears easy, but seems likely to cause a lot of confusion. Background: The version string in question is sent by the server in the very The slave replication code in MySQL checks the first character of the version The string is also used by clients to get the server version, So there seems to be no way to implement a work-around for just old slaves. At So basically, unless we start the version string sent to all clients with a If we call the next MariaDB release "10.0", but send to clients that we are So right now, it seems preferable to rename our coming release to "9.0". There Any other ideas? |
| Comments |
| Comment by Kristian Nielsen [ 2013-01-25 ] |
|
Maybe 9.0 would work well instead of 10.0. It seems to not have the same problems with respect to replication (from reading the code). And there might be other stuff (user scripts etc) that would be happier with keeping a one-digit major version. |
| Comment by Elena Stepanova [ 2013-01-30 ] |
|
Lixun Peng submitted it to MySQL, and it's even "verified"... |
| Comment by Sergei Golubchik [ 2013-03-28 ] |
|
pushed in 5.1 too |
| Comment by Sergei Golubchik [ 2013-04-11 ] |
|
pushed in 10.0-base |