TBASE-1398 #1073
This commit is contained in:
parent
115d67e092
commit
9362bfe502
|
@ -415,10 +415,10 @@ int vnodeProcessVPeerCfgRsp(char *msg, int msgLen, SMgmtObj *pMgmtObj) {
|
||||||
int32_t *pint = (int32_t *)pRsp->more;
|
int32_t *pint = (int32_t *)pRsp->more;
|
||||||
int vnode = htonl(*pint);
|
int vnode = htonl(*pint);
|
||||||
if (vnode < TSDB_MAX_VNODES && vnodeList[vnode].lastKey != 0) {
|
if (vnode < TSDB_MAX_VNODES && vnodeList[vnode].lastKey != 0) {
|
||||||
dError("vnode:%d not configured, it shall be empty");
|
dError("vnode:%d not configured, it shall be empty, code:%d", vnode, pRsp->code);
|
||||||
vnodeRemoveVnode(vnode);
|
vnodeRemoveVnode(vnode);
|
||||||
} else {
|
} else {
|
||||||
dTrace("vnode:%d is invalid", vnode);
|
dError("vnode:%d is invalid, code:%d", vnode, pRsp->code);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -657,7 +657,10 @@ int mgmtCreateMeter(SDbObj *pDb, SCreateTableMsg *pCreate) {
|
||||||
return TSDB_CODE_NO_ENOUGH_DNODES;
|
return TSDB_CODE_NO_ENOUGH_DNODES;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pDb->vgStatus < TSDB_VG_STATUS_FULL && pDb->vgStatus > TSDB_CODE_ACTION_IN_PROGRESS) {
|
if (pDb->vgStatus == TSDB_VG_STATUS_NO_DISK_PERMISSIONS ||
|
||||||
|
pDb->vgStatus == TSDB_VG_STATUS_SERVER_NO_PACE ||
|
||||||
|
pDb->vgStatus == TSDB_VG_STATUS_SERV_OUT_OF_MEMORY ||
|
||||||
|
pDb->vgStatus == TSDB_VG_STATUS_INIT_FAILED ) {
|
||||||
mgmtDestroyMeter(pMeter);
|
mgmtDestroyMeter(pMeter);
|
||||||
mError("table:%s, vgroup init failed, reason:%d %s", pCreate->meterId, pDb->vgStatus, taosGetVgroupStatusStr(pDb->vgStatus));
|
mError("table:%s, vgroup init failed, reason:%d %s", pCreate->meterId, pDb->vgStatus, taosGetVgroupStatusStr(pDb->vgStatus));
|
||||||
return pDb->vgStatus;
|
return pDb->vgStatus;
|
||||||
|
|
|
@ -79,7 +79,7 @@ int vnodeCreateMeterObjFile(int vnode) {
|
||||||
sprintf(fileName, "%s/vnode%d/meterObj.v%d", tsDirectory, vnode, vnode);
|
sprintf(fileName, "%s/vnode%d/meterObj.v%d", tsDirectory, vnode, vnode);
|
||||||
fp = fopen(fileName, "w+");
|
fp = fopen(fileName, "w+");
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
dError("failed to create vnode:%d file:%s, reason:%s", vnode, fileName, strerror(errno));
|
dError("failed to create vnode:%d file:%s, errno:%d, reason:%s", vnode, fileName, errno, strerror(errno));
|
||||||
if (errno == EACCES) {
|
if (errno == EACCES) {
|
||||||
return TSDB_CODE_NO_DISK_PERMISSIONS;
|
return TSDB_CODE_NO_DISK_PERMISSIONS;
|
||||||
} else if (errno == ENOSPC) {
|
} else if (errno == ENOSPC) {
|
||||||
|
|
|
@ -186,10 +186,29 @@ int vnodeCreateVnode(int vnode, SVnodeCfg *pCfg, SVPeerDesc *pDesc) {
|
||||||
vnodeList[vnode].vnodeStatus = TSDB_VN_STATUS_CREATING;
|
vnodeList[vnode].vnodeStatus = TSDB_VN_STATUS_CREATING;
|
||||||
|
|
||||||
sprintf(fileName, "%s/vnode%d", tsDirectory, vnode);
|
sprintf(fileName, "%s/vnode%d", tsDirectory, vnode);
|
||||||
mkdir(fileName, 0755);
|
if (mkdir(fileName, 0755) != 0) {
|
||||||
|
dError("failed to create vnode:%d directory:%s, errno:%d, reason:%s", vnode, fileName, errno, strerror(errno));
|
||||||
|
if (errno == EACCES) {
|
||||||
|
return TSDB_CODE_NO_DISK_PERMISSIONS;
|
||||||
|
} else if (errno == ENOSPC) {
|
||||||
|
return TSDB_CODE_SERVER_NO_SPACE;
|
||||||
|
} else {
|
||||||
|
return TSDB_CODE_VG_INIT_FAILED;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
sprintf(fileName, "%s/vnode%d/db", tsDirectory, vnode);
|
sprintf(fileName, "%s/vnode%d/db", tsDirectory, vnode);
|
||||||
mkdir(fileName, 0755);
|
mkdir(fileName, 0755);
|
||||||
|
if (mkdir(fileName, 0755) != 0) {
|
||||||
|
dError("failed to create vnode:%d directory:%s, errno:%d, reason:%s", vnode, fileName, errno, strerror(errno));
|
||||||
|
if (errno == EACCES) {
|
||||||
|
return TSDB_CODE_NO_DISK_PERMISSIONS;
|
||||||
|
} else if (errno == ENOSPC) {
|
||||||
|
return TSDB_CODE_SERVER_NO_SPACE;
|
||||||
|
} else {
|
||||||
|
return TSDB_CODE_VG_INIT_FAILED;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
vnodeList[vnode].cfg = *pCfg;
|
vnodeList[vnode].cfg = *pCfg;
|
||||||
int code = vnodeCreateMeterObjFile(vnode);
|
int code = vnodeCreateMeterObjFile(vnode);
|
||||||
|
|
Loading…
Reference in New Issue