dont delete vnode hash until the final stage, otherwise, pVnode will be freed
This commit is contained in:
parent
f890815518
commit
d4254489da
|
@ -182,6 +182,7 @@ void vnodeRelease(void *pVnodeRaw) {
|
||||||
}
|
}
|
||||||
|
|
||||||
dTrace("pVnode:%p vgId:%d, vnode is released", pVnode, pVnode->vgId);
|
dTrace("pVnode:%p vgId:%d, vnode is released", pVnode, pVnode->vgId);
|
||||||
|
taosDeleteIntHash(tsDnodeVnodesHash, pVnode->vgId);
|
||||||
|
|
||||||
tsOpennedVnodes--;
|
tsOpennedVnodes--;
|
||||||
if (tsOpennedVnodes <= 0) {
|
if (tsOpennedVnodes <= 0) {
|
||||||
|
@ -198,6 +199,11 @@ void *vnodeGetVnode(int32_t vgId) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (pVnode->status == VN_STATUS_CLOSING || pVnode->status == VN_STATUS_DELETING) {
|
||||||
|
terrno = TSDB_CODE_INVALID_VGROUP_ID;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
atomic_add_fetch_32(&pVnode->refCount, 1);
|
atomic_add_fetch_32(&pVnode->refCount, 1);
|
||||||
dTrace("pVnode:%p vgId:%d, get vnode, refCount:%d", pVnode, pVnode->vgId, pVnode->refCount);
|
dTrace("pVnode:%p vgId:%d, get vnode, refCount:%d", pVnode, pVnode->vgId, pVnode->refCount);
|
||||||
|
|
||||||
|
@ -241,7 +247,6 @@ static void vnodeBuildVloadMsg(char *pNode, void * param) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void vnodeCleanUp(SVnodeObj *pVnode) {
|
static void vnodeCleanUp(SVnodeObj *pVnode) {
|
||||||
taosDeleteIntHash(tsDnodeVnodesHash, pVnode->vgId);
|
|
||||||
|
|
||||||
//syncStop(pVnode->sync);
|
//syncStop(pVnode->sync);
|
||||||
tsdbCloseRepo(pVnode->tsdb);
|
tsdbCloseRepo(pVnode->tsdb);
|
||||||
|
|
Loading…
Reference in New Issue