replication: finish bootstrap from 1.6 only when replica id is received
In 1.7 the join procedure consists of two phases: initial, during which we send the last snapshot, and final, when we send xlogs written after the snapshot. Between the two phases, the replica uuid is added to the cluster table on the master, so by the time join is finished, the replica should have received its id. However, on 1.6 there's no final join phase, instead the master expects the replica to receive xlogs upon subscription. As a result, the replica doesn't receive its id until it sends the subscribe request. This is not expected by 1.7 clients - they fail with ER_UNKNOWN_REPLICA. Fix this problem by making 1.7 replicas proceed to subscription and wait until the id is received before completing bootstrap from 1.6 master. Closes #2702
Loading
Please register or sign in to comment