Merge pull request #21733 from taosdata/FIX/TD-24810-3.0
fix: vnodeRenameVgroupId correctly
This commit is contained in:
commit
cffbed79ae
|
@ -129,6 +129,12 @@ int32_t vnodeAlterReplica(const char *path, SAlterVnodeReplicaReq *pReq, STfs *p
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int32_t vnodeVgroupIdLen(int32_t vgId) {
|
||||||
|
char tmp[TSDB_FILENAME_LEN];
|
||||||
|
sprintf(tmp, "%d", vgId);
|
||||||
|
return strlen(tmp);
|
||||||
|
}
|
||||||
|
|
||||||
int32_t vnodeRenameVgroupId(const char *srcPath, const char *dstPath, int32_t srcVgId, int32_t dstVgId, STfs *pTfs) {
|
int32_t vnodeRenameVgroupId(const char *srcPath, const char *dstPath, int32_t srcVgId, int32_t dstVgId, STfs *pTfs) {
|
||||||
int32_t ret = tfsRename(pTfs, srcPath, dstPath);
|
int32_t ret = tfsRename(pTfs, srcPath, dstPath);
|
||||||
if (ret != 0) return ret;
|
if (ret != 0) return ret;
|
||||||
|
@ -154,8 +160,7 @@ int32_t vnodeRenameVgroupId(const char *srcPath, const char *dstPath, int32_t sr
|
||||||
|
|
||||||
int32_t tsdbFileVgId = atoi(tsdbFilePrefixPos + 6);
|
int32_t tsdbFileVgId = atoi(tsdbFilePrefixPos + 6);
|
||||||
if (tsdbFileVgId == srcVgId) {
|
if (tsdbFileVgId == srcVgId) {
|
||||||
char *tsdbFileSurfixPos = strstr(tsdbFilePrefixPos, "f");
|
char *tsdbFileSurfixPos = tsdbFilePrefixPos + 6 + vnodeVgroupIdLen(srcVgId);
|
||||||
if (tsdbFileSurfixPos == NULL) continue;
|
|
||||||
|
|
||||||
tsdbFilePrefixPos[6] = 0;
|
tsdbFilePrefixPos[6] = 0;
|
||||||
snprintf(newRname, TSDB_FILENAME_LEN, "%s%d%s", oldRname, dstVgId, tsdbFileSurfixPos);
|
snprintf(newRname, TSDB_FILENAME_LEN, "%s%d%s", oldRname, dstVgId, tsdbFileSurfixPos);
|
||||||
|
|
Loading…
Reference in New Issue