diff --git a/src/sync/src/syncRetrieve.c b/src/sync/src/syncRetrieve.c index 31efe6483170aff2438be90fe824558a22fcd590..bec24baf21cbc9a425f5d56d2ccd3745b7140766 100644 --- a/src/sync/src/syncRetrieve.c +++ b/src/sync/src/syncRetrieve.c @@ -256,7 +256,8 @@ static int syncRetrieveLastWal(SSyncPeer *pPeer, char *name, uint64_t fversion, } (void)lseek(sfd, offset, SEEK_SET); - sDebug("%s, retrieve last wal, offset:%" PRId64 " fversion:%" PRIu64, pPeer->id, offset, fversion); + sDebug("%s, retrieve last wal, offset:%" PRId64 " fversion:%" PRIu64 ", sver:%" PRIu64, pPeer->id, offset, fversion, + pPeer->sversion); while (1) { int wsize = syncReadOneWalRecord(sfd, pHead, pEvent); @@ -266,9 +267,8 @@ static int syncRetrieveLastWal(SSyncPeer *pPeer, char *name, uint64_t fversion, break; } - if (pHead->version > pPeer->version + 1) { - sError("%s, last wal skip forward, ver:%" PRIu64 ", peer ver:%" PRIu64, pPeer->id, pHead->version, - pPeer->sversion); + if (fversion > 0 && pHead->version > pPeer->sversion + 1) { + sError("%s, last wal skip forward, ver:%" PRIu64 ", sver:%" PRIu64, pPeer->id, pHead->version, pPeer->sversion); } else { sDebug("%s, last wal is forwarded, ver:%" PRIu64, pPeer->id, pHead->version); int ret = taosWriteMsg(pPeer->syncFd, pHead, wsize);