[MDEV-4329] CHANGE MASTER ... master_gtid_pos='' does not reset the position Created: 2013-03-26 Updated: 2013-03-27 Resolved: 2013-03-27 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major |
| Reporter: | Elena Stepanova | Assignee: | Kristian Nielsen |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||
| Description |
|
I'm trying to tweak the test case initially described in
Test case:
|
| Comments |
| Comment by Elena Stepanova [ 2013-03-26 ] | ||||||||||||||
|
Please also note that the expected position looks corrupted: how did it suddenly become 0-2-.. ? If anything, it should still be 0-1-... | ||||||||||||||
| Comment by Kristian Nielsen [ 2013-03-26 ] | ||||||||||||||
|
It's the same problem again So the issue here is that the slave has GTID 0-2-2 in its binlog (the DROP But this is highly unacceptable behaviour, of course. I thought I implemented But I'm starting to think the root problem is deeper. There are two different I'm wondering if I'm trying to make things too magic. Maybe it would be better Instead, if user wants to make old master into a new slave, they can Or maybe I can fix it so they get an error instead of surprising behaviour. Let's discuss this on IRC or something, I really want to get this working | ||||||||||||||
| Comment by Elena Stepanova [ 2013-03-26 ] | ||||||||||||||
|
>> So the issue here is that the slave has GTID 0-2-2 in its binlog (the DROP Okay, now I understand where 0-2-2 comes from, but the error message itself is highly confusing. >> But this is highly unacceptable behaviour, of course. I thought I implemented But in this case, I do NOT want to do RESET MASTER! On the contrary, I want to replay the existing master binlog from the beginning, which is why I drop table t1 (so that it doesn't cause an error when slave attempts to execute the create table event). >> The other That's right, in this particular case I expected my explicit setting to work rather than be overridden by auto magic; especially since, as it was discussed before, it's the only way to actually reset the GTID position. >> I'm wondering if I'm trying to make things too magic. Maybe it would be better 'auto' mode is still a mystery for me, so I don't have a strong opinion yet. >> Let's discuss this on IRC or something, I really want to get this working Yep, let's. At this point I'm especially interested in figuring out the difference between the three cases: How these three cases are supposed to differ, what are expected limitations of (1) comparing to (2) and (2) comparing to (3), etc. | ||||||||||||||
| Comment by Kristian Nielsen [ 2013-03-26 ] | ||||||||||||||
|
> But in this case, I do NOT want to do RESET MASTER! On the contrary, I want Yes, I understand. You need to RESET MASTER on the slave, not on the master. A fundamental concept for MariaDB GTID is that binlog order must be identical I think it is getting to the point where I should use your feedback so far and I worry that I still have so many gotchas in the user interface after several | ||||||||||||||
| Comment by Kristian Nielsen [ 2013-03-27 ] | ||||||||||||||
|
Ok, so turns out I made a simple mistake in the code, it is fixed now. mysqltest: At line 26: query 'CHANGE MASTER TO master_gtid_pos=''' failed: 1947: Requested MASTER_GTID_POS contains no value for replication domain 0. This conflicts with the binary log which contains GTID 0-2-2. To use the requested MASTER_GTID_POS, the old binlog must be removed with RESET MASTER to avoid out-of-order binlog So this is the new testcase:
So I've pushed this fix. However, I'm still open to discussing the deeper It was a fundamental design decision I made early that I wanted the slave GTID Because GTID promises to allow to put any server as a slave of any other So the lesson I took from your previous extensive feedback was to try much Basically, with GTID, you can no longer do local changes on the slave without There is definitely still need for improvement with this and the user |