diff --git a/source/dnode/mnode/impl/src/mndSync.c b/source/dnode/mnode/impl/src/mndSync.c index 7c8a8cdb960e91cdef28944306250cd3344561c1..49eaa451563dbcdbf0c251434877c586b98ca6c7 100644 --- a/source/dnode/mnode/impl/src/mndSync.c +++ b/source/dnode/mnode/impl/src/mndSync.c @@ -54,7 +54,7 @@ static int32_t mndRestoreWal(SMnode *pMnode) { int64_t start = walGetFirstVer(pWal); int64_t end = walGetLastVer(pWal); - start = MAX(lastSdbVer, start); + start = MAX(lastSdbVer + 1, start); for (int64_t ver = start; ver >= 0 && ver <= end; ++ver) { if (walReadWithHandle(pHandle, ver) < 0) { @@ -79,19 +79,19 @@ static int32_t mndRestoreWal(SMnode *pMnode) { } int64_t sdbVer = sdbUpdateVer(pSdb, 0); - if (sdbVer != lastSdbVer) { - if (walBeginSnapshot(pWal, sdbVer) < 0) { - goto WAL_RESTORE_OVER; - } + if (walBeginSnapshot(pWal, sdbVer) < 0) { + goto WAL_RESTORE_OVER; + } + if (sdbVer != lastSdbVer) { mInfo("sdb restore wal from %" PRId64 " to %" PRId64, lastSdbVer, sdbVer); if (sdbWriteFile(pSdb) != 0) { goto WAL_RESTORE_OVER; } + } - if (walEndSnapshot(pWal) < 0) { - goto WAL_RESTORE_OVER; - } + if (walEndSnapshot(pWal) < 0) { + goto WAL_RESTORE_OVER; } code = 0; diff --git a/source/dnode/mnode/sdb/src/sdbFile.c b/source/dnode/mnode/sdb/src/sdbFile.c index c5306478f2d7e3ff71b9483df3144daee5277b9d..cc36b8ec1351053f649a5cfbef90971875f014bf 100644 --- a/source/dnode/mnode/sdb/src/sdbFile.c +++ b/source/dnode/mnode/sdb/src/sdbFile.c @@ -81,7 +81,7 @@ static int32_t sdbReadFileHead(SSdb *pSdb, FileFd fd) { } char reserve[SDB_RESERVE_SIZE] = {0}; - ret = taosWriteFile(fd, reserve, sizeof(reserve)); + ret = taosReadFile(fd, reserve, sizeof(reserve)); if (ret < 0) { terrno = TAOS_SYSTEM_ERROR(errno); return -1; @@ -122,7 +122,7 @@ static int32_t sdbWriteFileHead(SSdb *pSdb, FileFd fd) { } } - char reserve[512] = {0}; + char reserve[SDB_RESERVE_SIZE] = {0}; if (taosWriteFile(fd, reserve, sizeof(reserve)) != sizeof(reserve)) { terrno = TAOS_SYSTEM_ERROR(errno); return -1; @@ -210,7 +210,7 @@ int32_t sdbReadFile(SSdb *pSdb) { code = 0; pSdb->lastCommitVer = pSdb->curVer; - mError("read file:%s successfully, ver:%" PRId64, file, pSdb->lastCommitVer); + mDebug("read file:%s successfully, ver:%" PRId64, file, pSdb->lastCommitVer); PARSE_SDB_DATA_ERROR: taosCloseFile(fd); diff --git a/source/libs/wal/src/walWrite.c b/source/libs/wal/src/walWrite.c index c8ffd9d07d59e378667392e3f0bf5012616f3332..05750d64461e6b32777184ee4a6f9323535f6b37 100644 --- a/source/libs/wal/src/walWrite.c +++ b/source/libs/wal/src/walWrite.c @@ -148,7 +148,7 @@ int32_t walBeginSnapshot(SWal *pWal, int64_t ver) { int32_t walEndSnapshot(SWal *pWal) { int64_t ver = pWal->vers.verInSnapshotting; - if (ver == -1) return -1; + if (ver == -1) return 0; pWal->vers.snapshotVer = ver; int ts = taosGetTimestampSec();