@@ -7691,22 +7691,45 @@ void loadDataFromDisk(void) {
76917691 server .repl_backlog -> offset = server .master_repl_offset -
76927692 server .repl_backlog -> histlen + 1 ;
76937693 rebaseReplicationBuffer (rsi .repl_offset );
7694- if (server .gtid_enabled || (rsi .gtid != NULL && rsi .gtid -> repl_mode == REPL_MODE_XSYNC ) ) {
7694+ // if (server.gtid_enabled || (rsi.gtid != NULL && rsi.gtid->repl_mode == REPL_MODE_XSYNC) ) {
7695+ // server.repl_mode->mode = REPL_MODE_XSYNC;
7696+ // server.repl_mode->from = rsi.repl_offset + 1;
7697+ // server.prev_repl_mode->mode = REPL_MODE_PSYNC;
7698+ // memcpy(server.prev_repl_mode->psync.replid,rsi.repl_id,sizeof(rsi.repl_id));
7699+ // server.prev_repl_mode->from = 1;
7700+ // gtidSeqRebaseOffset(server.gtid_seq, server.uuid, server.uuid_len, rsi.repl_offset);
7701+ // if (rsi.gtid != NULL) {
7702+ // serverGtidSetResetExecuted(gtidSetDup(rsi.gtid->gtid_executed));
7703+ // serverGtidSetResetLost(gtidSetDup(rsi.gtid->gtid_lost));
7704+ // }
7705+ // } else {
7706+ // serverAssert(server.repl_mode->mode == REPL_MODE_PSYNC);
7707+ // serverAssert(server.repl_mode->from == 1);
7708+ // }
7709+ if (server .gtid_enabled ) {
76957710 server .repl_mode -> mode = REPL_MODE_XSYNC ;
76967711 server .repl_mode -> from = rsi .repl_offset + 1 ;
76977712 server .prev_repl_mode -> mode = REPL_MODE_PSYNC ;
76987713 memcpy (server .prev_repl_mode -> psync .replid ,rsi .repl_id ,sizeof (rsi .repl_id ));
76997714 server .prev_repl_mode -> from = 1 ;
77007715 gtidSeqRebaseOffset (server .gtid_seq , server .uuid , server .uuid_len , rsi .repl_offset );
77017716 if (rsi .gtid != NULL ) {
7702- serverGtidSetResetExecuted (gtidSetDup (rsi .gtid -> gtid_executed ));
7703- serverGtidSetResetLost (gtidSetDup (rsi .gtid -> gtid_lost ));
7717+ // serverGtidSetResetExecuted(gtidSetDup(rsi.gtid->gtid_executed));
7718+ // serverGtidSetResetLost(gtidSetDup(rsi.gtid->gtid_lost));
7719+ gtidSetMerge (server .gtid_executed , rsi .gtid -> gtid_executed );
7720+ gtidSetMerge (server .gtid_lost , rsi .gtid -> gtid_lost );
77047721 }
77057722 } else {
7706- serverAssert (server .repl_mode -> mode == REPL_MODE_PSYNC );
7707- serverAssert (server .repl_mode -> from == 1 );
7723+ if (rsi .gtid != NULL && rsi .gtid -> repl_mode == REPL_MODE_XSYNC ) {
7724+ server .prev_repl_mode -> mode = REPL_MODE_XSYNC ;
7725+ server .prev_repl_mode -> from = 1 ;
7726+ server .repl_mode -> mode = REPL_MODE_PSYNC ;
7727+ server .repl_mode -> from = rsi .repl_offset + 1 ;
7728+ } else {
7729+ serverAssert (server .repl_mode -> mode == REPL_MODE_PSYNC );
7730+ serverAssert (server .repl_mode -> from == 1 );
7731+ }
77087732 }
7709-
77107733 server .repl_no_slaves_since = time (NULL );
77117734 }
77127735 }
0 commit comments