Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
慢慢CG
TDengine
提交
993cce6d
T
TDengine
项目概览
慢慢CG
/
TDengine
与 Fork 源项目一致
Fork自
taosdata / TDengine
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
993cce6d
编写于
4月 30, 2020
作者:
S
slguan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[TD-147] fix invalid write in drop db
上级
dc1cc4bd
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
47 addition
and
35 deletion
+47
-35
src/mnode/src/mgmtDb.c
src/mnode/src/mgmtDb.c
+3
-1
src/mnode/src/mgmtDnode.c
src/mnode/src/mgmtDnode.c
+1
-1
src/mnode/src/mgmtTable.c
src/mnode/src/mgmtTable.c
+12
-9
src/mnode/src/mgmtVgroup.c
src/mnode/src/mgmtVgroup.c
+31
-24
未找到文件。
src/mnode/src/mgmtDb.c
浏览文件 @
993cce6d
...
...
@@ -913,15 +913,17 @@ static void mgmtProcessDropDbMsg(SQueuedMsg *pMsg) {
return
;
}
#if 0
SVgObj *pVgroup = pMsg->pDb->pHead;
if (pVgroup != NULL) {
mPrint
(
"vg
roup
:%d, will be dropped"
,
pVgroup
->
vgId
);
mPrint("vg
Id
:%d, will be dropped", pVgroup->vgId);
SQueuedMsg *newMsg = mgmtCloneQueuedMsg(pMsg);
newMsg->ahandle = pVgroup;
newMsg->expected = pVgroup->numOfVnodes;
mgmtDropVgroup(pVgroup, newMsg);
return;
}
#endif
mTrace
(
"db:%s, all vgroups is dropped"
,
pMsg
->
pDb
->
name
);
mgmtDropDb
(
pMsg
);
...
...
src/mnode/src/mgmtDnode.c
浏览文件 @
993cce6d
...
...
@@ -309,7 +309,7 @@ void mgmtProcessDnodeStatusMsg(SRpcMsg *rpcMsg) {
SVgObj
*
pVgroup
=
mgmtGetVgroup
(
pVload
->
vgId
);
if
(
pVgroup
==
NULL
)
{
SRpcIpSet
ipSet
=
mgmtGetIpSetFromIp
(
pDnode
->
dnodeEp
);
mPrint
(
"dnode:%d, vg
roup
:%d not exist in mnode, drop it"
,
pDnode
->
dnodeId
,
pVload
->
vgId
);
mPrint
(
"dnode:%d, vg
Id
:%d not exist in mnode, drop it"
,
pDnode
->
dnodeId
,
pVload
->
vgId
);
mgmtSendDropVnodeMsg
(
pVload
->
vgId
,
&
ipSet
,
NULL
);
}
else
{
mgmtUpdateVgroupStatus
(
pVgroup
,
pDnode
,
pVload
);
...
...
src/mnode/src/mgmtTable.c
浏览文件 @
993cce6d
...
...
@@ -97,14 +97,14 @@ static int32_t mgmtChildTableActionInsert(SSdbOper *pOper) {
SVgObj
*
pVgroup
=
mgmtGetVgroup
(
pTable
->
vgId
);
if
(
pVgroup
==
NULL
)
{
mError
(
"ctable:%s, not in vg
roup
:%d"
,
pTable
->
info
.
tableId
,
pTable
->
vgId
);
mError
(
"ctable:%s, not in vg
Id
:%d"
,
pTable
->
info
.
tableId
,
pTable
->
vgId
);
return
TSDB_CODE_INVALID_VGROUP_ID
;
}
mgmtDecVgroupRef
(
pVgroup
);
SDbObj
*
pDb
=
mgmtGetDb
(
pVgroup
->
dbName
);
if
(
pDb
==
NULL
)
{
mError
(
"ctable:%s, vg
roup
:%d not in db:%s"
,
pTable
->
info
.
tableId
,
pVgroup
->
vgId
,
pVgroup
->
dbName
);
mError
(
"ctable:%s, vg
Id
:%d not in db:%s"
,
pTable
->
info
.
tableId
,
pVgroup
->
vgId
,
pVgroup
->
dbName
);
return
TSDB_CODE_INVALID_DB
;
}
mgmtDecDbRef
(
pDb
);
...
...
@@ -147,7 +147,7 @@ static int32_t mgmtChildTableActionDelete(SSdbOper *pOper) {
SDbObj
*
pDb
=
mgmtGetDb
(
pVgroup
->
dbName
);
if
(
pDb
==
NULL
)
{
mError
(
"ctable:%s, vg
roup
:%d not in DB:%s"
,
pTable
->
info
.
tableId
,
pVgroup
->
vgId
,
pVgroup
->
dbName
);
mError
(
"ctable:%s, vg
Id
:%d not in DB:%s"
,
pTable
->
info
.
tableId
,
pVgroup
->
vgId
,
pVgroup
->
dbName
);
return
TSDB_CODE_INVALID_DB
;
}
mgmtDecDbRef
(
pDb
);
...
...
@@ -270,7 +270,7 @@ static int32_t mgmtChildTableActionRestored() {
SVgObj
*
pVgroup
=
mgmtGetVgroup
(
pTable
->
vgId
);
if
(
pVgroup
==
NULL
)
{
mError
(
"ctable:%s, failed to get vg
roup
:%d sid:%d, discard it"
,
pTable
->
info
.
tableId
,
pTable
->
vgId
,
pTable
->
sid
);
mError
(
"ctable:%s, failed to get vg
Id
:%d sid:%d, discard it"
,
pTable
->
info
.
tableId
,
pTable
->
vgId
,
pTable
->
sid
);
pTable
->
vgId
=
0
;
SSdbOper
desc
=
{
0
};
desc
.
type
=
SDB_OPER_LOCAL
;
...
...
@@ -283,7 +283,7 @@ static int32_t mgmtChildTableActionRestored() {
mgmtDecVgroupRef
(
pVgroup
);
if
(
strcmp
(
pVgroup
->
dbName
,
pDb
->
name
)
!=
0
)
{
mError
(
"ctable:%s, db:%s not match with vg
roup
:%d db:%s sid:%d, discard it"
,
mError
(
"ctable:%s, db:%s not match with vg
Id
:%d db:%s sid:%d, discard it"
,
pTable
->
info
.
tableId
,
pDb
->
name
,
pTable
->
vgId
,
pVgroup
->
dbName
,
pTable
->
sid
);
pTable
->
vgId
=
0
;
SSdbOper
desc
=
{
0
};
...
...
@@ -296,7 +296,7 @@ static int32_t mgmtChildTableActionRestored() {
}
if
(
pVgroup
->
tableList
==
NULL
)
{
mError
(
"ctable:%s, vg
roup
:%d tableList is null"
,
pTable
->
info
.
tableId
,
pTable
->
vgId
);
mError
(
"ctable:%s, vg
Id
:%d tableList is null"
,
pTable
->
info
.
tableId
,
pTable
->
vgId
);
pTable
->
vgId
=
0
;
SSdbOper
desc
=
{
0
};
desc
.
type
=
SDB_OPER_LOCAL
;
...
...
@@ -1157,6 +1157,7 @@ void mgmtDropAllSuperTables(SDbObj *pDropDb) {
mPrint
(
"db:%s, all super tables will be dropped from sdb"
,
pDropDb
->
name
);
while
(
1
)
{
pLastNode
=
pNode
;
pNode
=
mgmtGetNextSuperTable
(
pNode
,
&
pTable
);
if
(
pTable
==
NULL
)
break
;
...
...
@@ -1432,7 +1433,7 @@ static void mgmtProcessCreateChildTableMsg(SQueuedMsg *pMsg) {
int32_t
sid
=
taosAllocateId
(
pVgroup
->
idPool
);
if
(
sid
<=
0
)
{
mTrace
(
"tables:%s, no enough sid in vg
roup
:%d"
,
pCreate
->
tableId
,
pVgroup
->
vgId
);
mTrace
(
"tables:%s, no enough sid in vg
Id
:%d"
,
pCreate
->
tableId
,
pVgroup
->
vgId
);
mgmtCreateVgroup
(
mgmtCloneQueuedMsg
(
pMsg
),
pMsg
->
pDb
);
return
;
}
...
...
@@ -1716,6 +1717,7 @@ void mgmtDropAllChildTables(SDbObj *pDropDb) {
mPrint
(
"db:%s, all child tables will be dropped from sdb"
,
pDropDb
->
name
);
while
(
1
)
{
pLastNode
=
pNode
;
pNode
=
mgmtGetNextChildTable
(
pNode
,
&
pTable
);
if
(
pTable
==
NULL
)
break
;
...
...
@@ -1744,6 +1746,7 @@ static void mgmtDropAllChildTablesInStable(SSuperTableObj *pStable) {
mPrint
(
"stable:%s, all child tables will dropped from sdb"
,
pStable
->
info
.
tableId
,
numOfTables
);
while
(
1
)
{
pLastNode
=
pNode
;
pNode
=
mgmtGetNextChildTable
(
pNode
,
&
pTable
);
if
(
pTable
==
NULL
)
break
;
...
...
@@ -1768,7 +1771,7 @@ static SChildTableObj* mgmtGetTableByPos(int32_t vnode, int32_t sid) {
SVgObj
*
pVgroup
=
mgmtGetVgroup
(
vnode
);
if
(
pVgroup
==
NULL
)
return
NULL
;
SChildTableObj
*
pTable
=
pVgroup
->
tableList
[
sid
];
SChildTableObj
*
pTable
=
pVgroup
->
tableList
[
sid
-
1
];
mgmtIncTableRef
((
STableObj
*
)
pTable
);
mgmtDecVgroupRef
(
pVgroup
);
...
...
@@ -1852,7 +1855,7 @@ static void mgmtProcessDropChildTableRsp(SRpcMsg *rpcMsg) {
}
if
(
queueMsg
->
pVgroup
->
numOfTables
<=
0
)
{
mPrint
(
"vg
roup
:%d, all tables is dropped, drop vgroup"
,
queueMsg
->
pVgroup
->
vgId
);
mPrint
(
"vg
Id
:%d, all tables is dropped, drop vgroup"
,
queueMsg
->
pVgroup
->
vgId
);
mgmtDropVgroup
(
queueMsg
->
pVgroup
,
NULL
);
}
...
...
src/mnode/src/mgmtVgroup.c
浏览文件 @
993cce6d
...
...
@@ -76,13 +76,13 @@ static int32_t mgmtVgroupActionInsert(SSdbOper *pOper) {
int32_t
size
=
sizeof
(
SChildTableObj
*
)
*
pDb
->
cfg
.
maxTables
;
pVgroup
->
tableList
=
calloc
(
pDb
->
cfg
.
maxTables
,
sizeof
(
SChildTableObj
*
));
if
(
pVgroup
->
tableList
==
NULL
)
{
mError
(
"vg
roup
:%d, failed to malloc(size:%d) for the tableList of vgroups"
,
pVgroup
->
vgId
,
size
);
mError
(
"vg
Id
:%d, failed to malloc(size:%d) for the tableList of vgroups"
,
pVgroup
->
vgId
,
size
);
return
-
1
;
}
pVgroup
->
idPool
=
taosInitIdPool
(
pDb
->
cfg
.
maxTables
);
if
(
pVgroup
->
idPool
==
NULL
)
{
mError
(
"vg
roup
:%d, failed to taosInitIdPool for vgroups"
,
pVgroup
->
vgId
);
mError
(
"vg
Id
:%d, failed to taosInitIdPool for vgroups"
,
pVgroup
->
vgId
);
tfree
(
pVgroup
->
tableList
);
return
-
1
;
}
...
...
@@ -103,7 +103,7 @@ static int32_t mgmtVgroupActionInsert(SSdbOper *pOper) {
static
int32_t
mgmtVgroupActionDelete
(
SSdbOper
*
pOper
)
{
SVgObj
*
pVgroup
=
pOper
->
pObj
;
if
(
pVgroup
->
pDb
!=
NULL
)
{
mgmtRemoveVgroupFromDb
(
pVgroup
);
}
...
...
@@ -150,7 +150,7 @@ static int32_t mgmtVgroupActionUpdate(SSdbOper *pOper) {
SDbObj
*
pDb
=
pVgroup
->
pDb
;
if
(
pDb
!=
NULL
)
{
if
(
pDb
->
cfg
.
maxTables
!=
oldTables
)
{
mPrint
(
"vg
roup
:%d tables change from %d to %d"
,
pVgroup
->
vgId
,
oldTables
,
pDb
->
cfg
.
maxTables
);
mPrint
(
"vg
Id
:%d tables change from %d to %d"
,
pVgroup
->
vgId
,
oldTables
,
pDb
->
cfg
.
maxTables
);
taosUpdateIdPool
(
pVgroup
->
idPool
,
pDb
->
cfg
.
maxTables
);
int32_t
size
=
sizeof
(
SChildTableObj
*
)
*
pDb
->
cfg
.
maxTables
;
pVgroup
->
tableList
=
(
SChildTableObj
**
)
realloc
(
pVgroup
->
tableList
,
size
);
...
...
@@ -158,7 +158,7 @@ static int32_t mgmtVgroupActionUpdate(SSdbOper *pOper) {
}
mgmtDecVgroupRef
(
pVgroup
);
mTrace
(
"vg
roup
:%d, is updated, tables:%d numOfVnode:%d"
,
pVgroup
->
vgId
,
pDb
->
cfg
.
maxTables
,
pVgroup
->
numOfVnodes
);
mTrace
(
"vg
Id
:%d, is updated, tables:%d numOfVnode:%d"
,
pVgroup
->
vgId
,
pDb
->
cfg
.
maxTables
,
pVgroup
->
numOfVnodes
);
return
TSDB_CODE_SUCCESS
;
}
...
...
@@ -264,7 +264,7 @@ void mgmtUpdateVgroupStatus(SVgObj *pVgroup, SDnodeObj *pDnode, SVnodeLoad *pVlo
if
(
!
dnodeExist
)
{
SRpcIpSet
ipSet
=
mgmtGetIpSetFromIp
(
pDnode
->
dnodeEp
);
mError
(
"vg
roup
:%d, dnode:%d not exist in mnode, drop it"
,
pVload
->
vgId
,
pDnode
->
dnodeId
);
mError
(
"vg
Id
:%d, dnode:%d not exist in mnode, drop it"
,
pVload
->
vgId
,
pDnode
->
dnodeId
);
mgmtSendDropVnodeMsg
(
pVload
->
vgId
,
&
ipSet
,
NULL
);
return
;
}
...
...
@@ -276,7 +276,7 @@ void mgmtUpdateVgroupStatus(SVgObj *pVgroup, SDnodeObj *pDnode, SVnodeLoad *pVlo
}
if
(
pVload
->
cfgVersion
!=
pVgroup
->
pDb
->
cfgVersion
||
pVload
->
replica
!=
pVgroup
->
numOfVnodes
)
{
mError
(
"dnode:%d, vg
roup
:%d, vnode cfgVersion:%d repica:%d not match with mgmt cfgVersion:%d replica:%d"
,
mError
(
"dnode:%d, vg
Id
:%d, vnode cfgVersion:%d repica:%d not match with mgmt cfgVersion:%d replica:%d"
,
pDnode
->
dnodeId
,
pVload
->
vgId
,
pVload
->
cfgVersion
,
pVload
->
replica
,
pVgroup
->
pDb
->
cfgVersion
,
pVgroup
->
numOfVnodes
);
mgmtSendCreateVgroupMsg
(
pVgroup
,
NULL
);
...
...
@@ -320,9 +320,9 @@ void mgmtCreateVgroup(SQueuedMsg *pMsg, SDbObj *pDb) {
return
;
}
mPrint
(
"vg
roup
:%d, is created in mnode, db:%s replica:%d"
,
pVgroup
->
vgId
,
pDb
->
name
,
pVgroup
->
numOfVnodes
);
mPrint
(
"vg
Id
:%d, is created in mnode, db:%s replica:%d"
,
pVgroup
->
vgId
,
pDb
->
name
,
pVgroup
->
numOfVnodes
);
for
(
int32_t
i
=
0
;
i
<
pVgroup
->
numOfVnodes
;
++
i
)
{
mPrint
(
"vg
roup
:%d, index:%d, dnode:%d"
,
pVgroup
->
vgId
,
i
,
pVgroup
->
vnodeGid
[
i
].
dnodeId
);
mPrint
(
"vg
Id
:%d, index:%d, dnode:%d"
,
pVgroup
->
vgId
,
i
,
pVgroup
->
vnodeGid
[
i
].
dnodeId
);
}
pMsg
->
ahandle
=
pVgroup
;
...
...
@@ -334,7 +334,7 @@ void mgmtDropVgroup(SVgObj *pVgroup, void *ahandle) {
if
(
ahandle
!=
NULL
)
{
mgmtSendDropVgroupMsg
(
pVgroup
,
ahandle
);
}
else
{
mTrace
(
"vg
roup
:%d, replica:%d is deleting from sdb"
,
pVgroup
->
vgId
,
pVgroup
->
numOfVnodes
);
mTrace
(
"vg
Id
:%d, replica:%d is deleting from sdb"
,
pVgroup
->
vgId
,
pVgroup
->
numOfVnodes
);
mgmtSendDropVgroupMsg
(
pVgroup
,
NULL
);
SSdbOper
oper
=
{
.
type
=
SDB_OPER_GLOBAL
,
...
...
@@ -509,25 +509,31 @@ int32_t mgmtRetrieveVgroups(SShowObj *pShow, char *data, int32_t rows, void *pCo
}
void
mgmtAddTableIntoVgroup
(
SVgObj
*
pVgroup
,
SChildTableObj
*
pTable
)
{
if
(
pTable
->
sid
>=
0
&&
pVgroup
->
tableList
[
pTable
->
sid
]
==
NULL
)
{
pVgroup
->
tableList
[
pTable
->
sid
]
=
pTable
;
if
(
pTable
->
sid
>=
1
&&
pVgroup
->
tableList
[
pTable
->
sid
-
1
]
==
NULL
)
{
pVgroup
->
tableList
[
pTable
->
sid
-
1
]
=
pTable
;
taosIdPoolMarkStatus
(
pVgroup
->
idPool
,
pTable
->
sid
);
pVgroup
->
numOfTables
++
;
}
if
(
pVgroup
->
numOfTables
>=
pVgroup
->
pDb
->
cfg
.
maxTables
)
if
(
pVgroup
->
numOfTables
>=
pVgroup
->
pDb
->
cfg
.
maxTables
)
{
mgmtAddVgroupIntoDbTail
(
pVgroup
);
}
mgmtIncVgroupRef
(
pVgroup
);
}
void
mgmtRemoveTableFromVgroup
(
SVgObj
*
pVgroup
,
SChildTableObj
*
pTable
)
{
if
(
pTable
->
sid
>=
0
&&
pVgroup
->
tableList
[
pTable
->
sid
]
!=
NULL
)
{
pVgroup
->
tableList
[
pTable
->
sid
]
=
NULL
;
if
(
pTable
->
sid
>=
1
&&
pVgroup
->
tableList
[
pTable
->
sid
-
1
]
!=
NULL
)
{
pVgroup
->
tableList
[
pTable
->
sid
-
1
]
=
NULL
;
taosFreeId
(
pVgroup
->
idPool
,
pTable
->
sid
);
pVgroup
->
numOfTables
--
;
}
if
(
pVgroup
->
numOfTables
>=
pVgroup
->
pDb
->
cfg
.
maxTables
)
mgmtAddVgroupIntoDbTail
(
pVgroup
);
if
(
pVgroup
->
numOfTables
==
0
)
{
mgmtRemoveVgroupFromDb
(
pVgroup
);
}
mgmtDecVgroupRef
(
pVgroup
);
}
SMDCreateVnodeMsg
*
mgmtBuildCreateVnodeMsg
(
SVgObj
*
pVgroup
)
{
...
...
@@ -592,7 +598,7 @@ SRpcIpSet mgmtGetIpSetFromIp(char *ep) {
}
void
mgmtSendCreateVnodeMsg
(
SVgObj
*
pVgroup
,
SRpcIpSet
*
ipSet
,
void
*
ahandle
)
{
mTrace
(
"vg
roup
:%d, send create vnode:%d msg, ahandle:%p"
,
pVgroup
->
vgId
,
pVgroup
->
vgId
,
ahandle
);
mTrace
(
"vg
Id
:%d, send create vnode:%d msg, ahandle:%p"
,
pVgroup
->
vgId
,
pVgroup
->
vgId
,
ahandle
);
SMDCreateVnodeMsg
*
pCreate
=
mgmtBuildCreateVnodeMsg
(
pVgroup
);
SRpcMsg
rpcMsg
=
{
.
handle
=
ahandle
,
...
...
@@ -605,7 +611,7 @@ void mgmtSendCreateVnodeMsg(SVgObj *pVgroup, SRpcIpSet *ipSet, void *ahandle) {
}
void
mgmtSendCreateVgroupMsg
(
SVgObj
*
pVgroup
,
void
*
ahandle
)
{
mTrace
(
"vg
roup
:%d, send create all vnodes msg, ahandle:%p"
,
pVgroup
->
vgId
,
ahandle
);
mTrace
(
"vg
Id
:%d, send create all vnodes msg, ahandle:%p"
,
pVgroup
->
vgId
,
ahandle
);
for
(
int32_t
i
=
0
;
i
<
pVgroup
->
numOfVnodes
;
++
i
)
{
SRpcIpSet
ipSet
=
mgmtGetIpSetFromIp
(
pVgroup
->
vnodeGid
[
i
].
pDnode
->
dnodeEp
);
mgmtSendCreateVnodeMsg
(
pVgroup
,
&
ipSet
,
ahandle
);
...
...
@@ -623,7 +629,7 @@ static void mgmtProcessCreateVnodeRsp(SRpcMsg *rpcMsg) {
}
SVgObj
*
pVgroup
=
queueMsg
->
ahandle
;
mTrace
(
"vg
roup
:%d, create vnode rsp received, result:%s received:%d successed:%d expected:%d, thandle:%p ahandle:%p"
,
mTrace
(
"vg
Id
:%d, create vnode rsp received, result:%s received:%d successed:%d expected:%d, thandle:%p ahandle:%p"
,
pVgroup
->
vgId
,
tstrerror
(
rpcMsg
->
code
),
queueMsg
->
received
,
queueMsg
->
successed
,
queueMsg
->
expected
,
queueMsg
->
thandle
,
rpcMsg
->
handle
);
...
...
@@ -658,7 +664,7 @@ static SMDDropVnodeMsg *mgmtBuildDropVnodeMsg(int32_t vgId) {
}
void
mgmtSendDropVnodeMsg
(
int32_t
vgId
,
SRpcIpSet
*
ipSet
,
void
*
ahandle
)
{
mTrace
(
"vg
roup
:%d, send drop vnode msg, ahandle:%p"
,
vgId
,
ahandle
);
mTrace
(
"vg
Id
:%d, send drop vnode msg, ahandle:%p"
,
vgId
,
ahandle
);
SMDDropVnodeMsg
*
pDrop
=
mgmtBuildDropVnodeMsg
(
vgId
);
SRpcMsg
rpcMsg
=
{
.
handle
=
ahandle
,
...
...
@@ -671,7 +677,7 @@ void mgmtSendDropVnodeMsg(int32_t vgId, SRpcIpSet *ipSet, void *ahandle) {
}
static
void
mgmtSendDropVgroupMsg
(
SVgObj
*
pVgroup
,
void
*
ahandle
)
{
mTrace
(
"vg
roup
:%d, send drop all vnodes msg, ahandle:%p"
,
pVgroup
->
vgId
,
ahandle
);
mTrace
(
"vg
Id
:%d, send drop all vnodes msg, ahandle:%p"
,
pVgroup
->
vgId
,
ahandle
);
for
(
int32_t
i
=
0
;
i
<
pVgroup
->
numOfVnodes
;
++
i
)
{
SRpcIpSet
ipSet
=
mgmtGetIpSetFromIp
(
pVgroup
->
vnodeGid
[
i
].
pDnode
->
dnodeEp
);
mgmtSendDropVnodeMsg
(
pVgroup
->
vgId
,
&
ipSet
,
ahandle
);
...
...
@@ -679,7 +685,7 @@ static void mgmtSendDropVgroupMsg(SVgObj *pVgroup, void *ahandle) {
}
static
void
mgmtProcessDropVnodeRsp
(
SRpcMsg
*
rpcMsg
)
{
mTrace
(
"drop vnode rsp is received
"
);
mTrace
(
"drop vnode rsp is received
, handle:%p"
,
rpcMsg
->
handle
);
if
(
rpcMsg
->
handle
==
NULL
)
return
;
SQueuedMsg
*
queueMsg
=
rpcMsg
->
handle
;
...
...
@@ -690,7 +696,7 @@ static void mgmtProcessDropVnodeRsp(SRpcMsg *rpcMsg) {
}
SVgObj
*
pVgroup
=
queueMsg
->
ahandle
;
mTrace
(
"vg
roup
:%d, drop vnode rsp received, result:%s received:%d successed:%d expected:%d, thandle:%p ahandle:%p"
,
mTrace
(
"vg
Id
:%d, drop vnode rsp received, result:%s received:%d successed:%d expected:%d, thandle:%p ahandle:%p"
,
pVgroup
->
vgId
,
tstrerror
(
rpcMsg
->
code
),
queueMsg
->
received
,
queueMsg
->
successed
,
queueMsg
->
expected
,
queueMsg
->
thandle
,
rpcMsg
->
handle
);
...
...
@@ -774,6 +780,7 @@ void mgmtDropAllDbVgroups(SDbObj *pDropDb) {
mPrint
(
"db:%s, all vgroups will be dropped from sdb"
,
pDropDb
->
name
);
while
(
1
)
{
pLastNode
=
pNode
;
pNode
=
mgmtGetNextVgroup
(
pNode
,
&
pVgroup
);
if
(
pVgroup
==
NULL
)
break
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录