Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
0d922c0d
T
TDengine
项目概览
taosdata
/
TDengine
大约 1 年 前同步成功
通知
1184
Star
22015
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
0d922c0d
编写于
7月 18, 2023
作者:
H
Haojun Liao
提交者:
GitHub
7月 18, 2023
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #22095 from taosdata/fix/TS-3672
fix:add sdbFetchCancel to release hash node
上级
0d0dc6be
08c50dfb
变更
12
显示空白变更内容
内联
并排
Showing
12 changed file
with
49 addition
and
9 deletion
+49
-9
source/dnode/mnode/impl/src/mndCluster.c
source/dnode/mnode/impl/src/mndCluster.c
+0
-1
source/dnode/mnode/impl/src/mndDb.c
source/dnode/mnode/impl/src/mndDb.c
+1
-2
source/dnode/mnode/impl/src/mndDnode.c
source/dnode/mnode/impl/src/mndDnode.c
+1
-0
source/dnode/mnode/impl/src/mndIndex.c
source/dnode/mnode/impl/src/mndIndex.c
+2
-1
source/dnode/mnode/impl/src/mndQnode.c
source/dnode/mnode/impl/src/mndQnode.c
+1
-0
source/dnode/mnode/impl/src/mndScheduler.c
source/dnode/mnode/impl/src/mndScheduler.c
+6
-0
source/dnode/mnode/impl/src/mndStb.c
source/dnode/mnode/impl/src/mndStb.c
+12
-1
source/dnode/mnode/impl/src/mndStream.c
source/dnode/mnode/impl/src/mndStream.c
+2
-0
source/dnode/mnode/impl/src/mndSubscribe.c
source/dnode/mnode/impl/src/mndSubscribe.c
+3
-0
source/dnode/mnode/impl/src/mndTopic.c
source/dnode/mnode/impl/src/mndTopic.c
+11
-1
source/dnode/mnode/impl/src/mndUser.c
source/dnode/mnode/impl/src/mndUser.c
+9
-3
source/dnode/mnode/impl/src/mndVgroup.c
source/dnode/mnode/impl/src/mndVgroup.c
+1
-0
未找到文件。
source/dnode/mnode/impl/src/mndCluster.c
浏览文件 @
0d922c0d
...
@@ -77,7 +77,6 @@ static SClusterObj *mndAcquireCluster(SMnode *pMnode, void **ppIter) {
...
@@ -77,7 +77,6 @@ static SClusterObj *mndAcquireCluster(SMnode *pMnode, void **ppIter) {
if
(
pIter
==
NULL
)
break
;
if
(
pIter
==
NULL
)
break
;
*
ppIter
=
pIter
;
*
ppIter
=
pIter
;
return
pCluster
;
return
pCluster
;
}
}
...
...
source/dnode/mnode/impl/src/mndDb.c
浏览文件 @
0d922c0d
...
@@ -1303,11 +1303,10 @@ static void mndBuildDBVgroupInfo(SDbObj *pDb, SMnode *pMnode, SArray *pVgList) {
...
@@ -1303,11 +1303,10 @@ static void mndBuildDBVgroupInfo(SDbObj *pDb, SMnode *pMnode, SArray *pVgList) {
sdbRelease
(
pSdb
,
pVgroup
);
sdbRelease
(
pSdb
,
pVgroup
);
if
(
pDb
&&
(
vindex
>=
pDb
->
cfg
.
numOfVgroups
))
{
if
(
pDb
&&
(
vindex
>=
pDb
->
cfg
.
numOfVgroups
))
{
sdbCancelFetch
(
pSdb
,
pIter
);
break
;
break
;
}
}
}
}
sdbCancelFetch
(
pSdb
,
pIter
);
}
}
int32_t
mndExtractDbInfo
(
SMnode
*
pMnode
,
SDbObj
*
pDb
,
SUseDbRsp
*
pRsp
,
const
SUseDbReq
*
pReq
)
{
int32_t
mndExtractDbInfo
(
SMnode
*
pMnode
,
SDbObj
*
pDb
,
SUseDbRsp
*
pRsp
,
const
SUseDbReq
*
pReq
)
{
...
...
source/dnode/mnode/impl/src/mndDnode.c
浏览文件 @
0d922c0d
...
@@ -706,6 +706,7 @@ _OVER:
...
@@ -706,6 +706,7 @@ _OVER:
}
else
{
}
else
{
mndReleaseDnode
(
pMnode
,
pDnode
);
mndReleaseDnode
(
pMnode
,
pDnode
);
}
}
sdbCancelFetch
(
pSdb
,
pIter
);
mndTransDrop
(
pTrans
);
mndTransDrop
(
pTrans
);
sdbFreeRaw
(
pRaw
);
sdbFreeRaw
(
pRaw
);
return
terrno
;
return
terrno
;
...
...
source/dnode/mnode/impl/src/mndIndex.c
浏览文件 @
0d922c0d
...
@@ -831,6 +831,7 @@ int32_t mndGetIdxsByTagName(SMnode *pMnode, SStbObj *pStb, char *tagName, SIdxOb
...
@@ -831,6 +831,7 @@ int32_t mndGetIdxsByTagName(SMnode *pMnode, SStbObj *pStb, char *tagName, SIdxOb
if
(
pIdx
->
stbUid
==
pStb
->
uid
&&
strcasecmp
(
pIdx
->
colName
,
tagName
)
==
0
)
{
if
(
pIdx
->
stbUid
==
pStb
->
uid
&&
strcasecmp
(
pIdx
->
colName
,
tagName
)
==
0
)
{
memcpy
((
char
*
)
idx
,
(
char
*
)
pIdx
,
sizeof
(
SIdxObj
));
memcpy
((
char
*
)
idx
,
(
char
*
)
pIdx
,
sizeof
(
SIdxObj
));
sdbRelease
(
pSdb
,
pIdx
);
sdbRelease
(
pSdb
,
pIdx
);
sdbCancelFetch
(
pSdb
,
pIter
);
return
0
;
return
0
;
}
}
...
@@ -851,7 +852,7 @@ int32_t mndDropIdxsByDb(SMnode *pMnode, STrans *pTrans, SDbObj *pDb) {
...
@@ -851,7 +852,7 @@ int32_t mndDropIdxsByDb(SMnode *pMnode, STrans *pTrans, SDbObj *pDb) {
if
(
pIdx
->
dbUid
==
pDb
->
uid
)
{
if
(
pIdx
->
dbUid
==
pDb
->
uid
)
{
if
(
mndSetDropIdxCommitLogs
(
pMnode
,
pTrans
,
pIdx
)
!=
0
)
{
if
(
mndSetDropIdxCommitLogs
(
pMnode
,
pTrans
,
pIdx
)
!=
0
)
{
sdbRelease
(
pSdb
,
pIdx
);
sdbRelease
(
pSdb
,
pIdx
);
sdbCancelFetch
(
pSdb
,
pI
dx
);
sdbCancelFetch
(
pSdb
,
pI
ter
);
return
-
1
;
return
-
1
;
}
}
}
}
...
...
source/dnode/mnode/impl/src/mndQnode.c
浏览文件 @
0d922c0d
...
@@ -454,6 +454,7 @@ int32_t mndCreateQnodeList(SMnode *pMnode, SArray **pList, int32_t limit) {
...
@@ -454,6 +454,7 @@ int32_t mndCreateQnodeList(SMnode *pMnode, SArray **pList, int32_t limit) {
sdbRelease
(
pSdb
,
pObj
);
sdbRelease
(
pSdb
,
pObj
);
if
(
limit
>
0
&&
numOfRows
>=
limit
)
{
if
(
limit
>
0
&&
numOfRows
>=
limit
)
{
sdbCancelFetch
(
pSdb
,
pIter
);
break
;
break
;
}
}
}
}
...
...
source/dnode/mnode/impl/src/mndScheduler.c
浏览文件 @
0d922c0d
...
@@ -168,6 +168,7 @@ SSnodeObj* mndSchedFetchOneSnode(SMnode* pMnode) {
...
@@ -168,6 +168,7 @@ SSnodeObj* mndSchedFetchOneSnode(SMnode* pMnode) {
void
*
pIter
=
NULL
;
void
*
pIter
=
NULL
;
// TODO random fetch
// TODO random fetch
pIter
=
sdbFetch
(
pMnode
->
pSdb
,
SDB_SNODE
,
pIter
,
(
void
**
)
&
pObj
);
pIter
=
sdbFetch
(
pMnode
->
pSdb
,
SDB_SNODE
,
pIter
,
(
void
**
)
&
pObj
);
sdbCancelFetch
(
pMnode
->
pSdb
,
pIter
);
return
pObj
;
return
pObj
;
}
}
...
@@ -197,6 +198,7 @@ SVgObj* mndSchedFetchOneVg(SMnode* pMnode, int64_t dbUid) {
...
@@ -197,6 +198,7 @@ SVgObj* mndSchedFetchOneVg(SMnode* pMnode, int64_t dbUid) {
sdbRelease
(
pMnode
->
pSdb
,
pVgroup
);
sdbRelease
(
pMnode
->
pSdb
,
pVgroup
);
continue
;
continue
;
}
}
sdbCancelFetch
(
pMnode
->
pSdb
,
pIter
);
return
pVgroup
;
return
pVgroup
;
}
}
return
pVgroup
;
return
pVgroup
;
...
@@ -435,6 +437,7 @@ int32_t mndScheduleStream(SMnode* pMnode, SStreamObj* pStream) {
...
@@ -435,6 +437,7 @@ int32_t mndScheduleStream(SMnode* pMnode, SStreamObj* pStream) {
terrno
=
TSDB_CODE_OUT_OF_MEMORY
;
terrno
=
TSDB_CODE_OUT_OF_MEMORY
;
sdbRelease
(
pSdb
,
pVgroup
);
sdbRelease
(
pSdb
,
pVgroup
);
qDestroyQueryPlan
(
pPlan
);
qDestroyQueryPlan
(
pPlan
);
sdbCancelFetch
(
pSdb
,
pIter
);
return
-
1
;
return
-
1
;
}
}
...
@@ -444,6 +447,7 @@ int32_t mndScheduleStream(SMnode* pMnode, SStreamObj* pStream) {
...
@@ -444,6 +447,7 @@ int32_t mndScheduleStream(SMnode* pMnode, SStreamObj* pStream) {
if
(
mndAssignStreamTaskToVgroup
(
pMnode
,
pTask
,
plan
,
pVgroup
)
<
0
)
{
if
(
mndAssignStreamTaskToVgroup
(
pMnode
,
pTask
,
plan
,
pVgroup
)
<
0
)
{
sdbRelease
(
pSdb
,
pVgroup
);
sdbRelease
(
pSdb
,
pVgroup
);
qDestroyQueryPlan
(
pPlan
);
qDestroyQueryPlan
(
pPlan
);
sdbCancelFetch
(
pSdb
,
pIter
);
return
-
1
;
return
-
1
;
}
}
...
@@ -453,6 +457,7 @@ int32_t mndScheduleStream(SMnode* pMnode, SStreamObj* pStream) {
...
@@ -453,6 +457,7 @@ int32_t mndScheduleStream(SMnode* pMnode, SStreamObj* pStream) {
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
terrno
=
code
;
terrno
=
code
;
qDestroyQueryPlan
(
pPlan
);
qDestroyQueryPlan
(
pPlan
);
sdbCancelFetch
(
pSdb
,
pIter
);
return
-
1
;
return
-
1
;
}
}
}
}
...
@@ -492,6 +497,7 @@ int32_t mndScheduleStream(SMnode* pMnode, SStreamObj* pStream) {
...
@@ -492,6 +497,7 @@ int32_t mndScheduleStream(SMnode* pMnode, SStreamObj* pStream) {
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
qDestroyQueryPlan
(
pPlan
);
qDestroyQueryPlan
(
pPlan
);
sdbCancelFetch
(
pSdb
,
pIter
);
return
-
1
;
return
-
1
;
}
}
}
}
...
...
source/dnode/mnode/impl/src/mndStb.c
浏览文件 @
0d922c0d
...
@@ -900,7 +900,6 @@ static int32_t mndProcessTtlTimer(SRpcMsg *pReq) {
...
@@ -900,7 +900,6 @@ static int32_t mndProcessTtlTimer(SRpcMsg *pReq) {
SMsgHead
*
pHead
=
rpcMallocCont
(
contLen
);
SMsgHead
*
pHead
=
rpcMallocCont
(
contLen
);
if
(
pHead
==
NULL
)
{
if
(
pHead
==
NULL
)
{
sdbCancelFetch
(
pSdb
,
pVgroup
);
sdbRelease
(
pSdb
,
pVgroup
);
sdbRelease
(
pSdb
,
pVgroup
);
continue
;
continue
;
}
}
...
@@ -1240,6 +1239,7 @@ static int32_t mndCheckAlterColForTopic(SMnode *pMnode, const char *stbFullName,
...
@@ -1240,6 +1239,7 @@ static int32_t mndCheckAlterColForTopic(SMnode *pMnode, const char *stbFullName,
terrno
=
TSDB_CODE_MND_FIELD_CONFLICT_WITH_TOPIC
;
terrno
=
TSDB_CODE_MND_FIELD_CONFLICT_WITH_TOPIC
;
mError
(
"topic:%s, create ast error"
,
pTopic
->
name
);
mError
(
"topic:%s, create ast error"
,
pTopic
->
name
);
sdbRelease
(
pSdb
,
pTopic
);
sdbRelease
(
pSdb
,
pTopic
);
sdbCancelFetch
(
pSdb
,
pIter
);
return
-
1
;
return
-
1
;
}
}
...
@@ -1260,6 +1260,7 @@ static int32_t mndCheckAlterColForTopic(SMnode *pMnode, const char *stbFullName,
...
@@ -1260,6 +1260,7 @@ static int32_t mndCheckAlterColForTopic(SMnode *pMnode, const char *stbFullName,
mError
(
"topic:%s, check colId:%d conflicted"
,
pTopic
->
name
,
pCol
->
colId
);
mError
(
"topic:%s, check colId:%d conflicted"
,
pTopic
->
name
,
pCol
->
colId
);
nodesDestroyNode
(
pAst
);
nodesDestroyNode
(
pAst
);
nodesDestroyList
(
pNodeList
);
nodesDestroyList
(
pNodeList
);
sdbCancelFetch
(
pSdb
,
pIter
);
sdbRelease
(
pSdb
,
pTopic
);
sdbRelease
(
pSdb
,
pTopic
);
return
-
1
;
return
-
1
;
}
}
...
@@ -1287,6 +1288,7 @@ static int32_t mndCheckAlterColForStream(SMnode *pMnode, const char *stbFullName
...
@@ -1287,6 +1288,7 @@ static int32_t mndCheckAlterColForStream(SMnode *pMnode, const char *stbFullName
terrno
=
TSDB_CODE_MND_INVALID_STREAM_OPTION
;
terrno
=
TSDB_CODE_MND_INVALID_STREAM_OPTION
;
mError
(
"stream:%s, create ast error"
,
pStream
->
name
);
mError
(
"stream:%s, create ast error"
,
pStream
->
name
);
sdbRelease
(
pSdb
,
pStream
);
sdbRelease
(
pSdb
,
pStream
);
sdbCancelFetch
(
pSdb
,
pIter
);
return
-
1
;
return
-
1
;
}
}
...
@@ -1306,6 +1308,7 @@ static int32_t mndCheckAlterColForStream(SMnode *pMnode, const char *stbFullName
...
@@ -1306,6 +1308,7 @@ static int32_t mndCheckAlterColForStream(SMnode *pMnode, const char *stbFullName
nodesDestroyNode
(
pAst
);
nodesDestroyNode
(
pAst
);
nodesDestroyList
(
pNodeList
);
nodesDestroyList
(
pNodeList
);
sdbRelease
(
pSdb
,
pStream
);
sdbRelease
(
pSdb
,
pStream
);
sdbCancelFetch
(
pSdb
,
pIter
);
return
-
1
;
return
-
1
;
}
}
mInfo
(
"stream:%s, check colId:%d passed"
,
pStream
->
name
,
pCol
->
colId
);
mInfo
(
"stream:%s, check colId:%d passed"
,
pStream
->
name
,
pCol
->
colId
);
...
@@ -1335,6 +1338,7 @@ static int32_t mndCheckAlterColForTSma(SMnode *pMnode, const char *stbFullName,
...
@@ -1335,6 +1338,7 @@ static int32_t mndCheckAlterColForTSma(SMnode *pMnode, const char *stbFullName,
terrno
=
TSDB_CODE_SDB_INVALID_DATA_CONTENT
;
terrno
=
TSDB_CODE_SDB_INVALID_DATA_CONTENT
;
mError
(
"tsma:%s, check tag and column modifiable, stb:%s suid:%"
PRId64
" colId:%d failed since parse AST err"
,
mError
(
"tsma:%s, check tag and column modifiable, stb:%s suid:%"
PRId64
" colId:%d failed since parse AST err"
,
pSma
->
name
,
stbFullName
,
suid
,
colId
);
pSma
->
name
,
stbFullName
,
suid
,
colId
);
sdbCancelFetch
(
pSdb
,
pIter
);
return
-
1
;
return
-
1
;
}
}
...
@@ -1355,6 +1359,7 @@ static int32_t mndCheckAlterColForTSma(SMnode *pMnode, const char *stbFullName,
...
@@ -1355,6 +1359,7 @@ static int32_t mndCheckAlterColForTSma(SMnode *pMnode, const char *stbFullName,
nodesDestroyNode
(
pAst
);
nodesDestroyNode
(
pAst
);
nodesDestroyList
(
pNodeList
);
nodesDestroyList
(
pNodeList
);
sdbRelease
(
pSdb
,
pSma
);
sdbRelease
(
pSdb
,
pSma
);
sdbCancelFetch
(
pSdb
,
pIter
);
return
-
1
;
return
-
1
;
}
}
mInfo
(
"tsma:%s, check colId:%d passed"
,
pSma
->
name
,
pCol
->
colId
);
mInfo
(
"tsma:%s, check colId:%d passed"
,
pSma
->
name
,
pCol
->
colId
);
...
@@ -2268,6 +2273,7 @@ static int32_t mndCheckDropStbForTopic(SMnode *pMnode, const char *stbFullName,
...
@@ -2268,6 +2273,7 @@ static int32_t mndCheckDropStbForTopic(SMnode *pMnode, const char *stbFullName,
if
(
pTopic
->
subType
==
TOPIC_SUB_TYPE__TABLE
)
{
if
(
pTopic
->
subType
==
TOPIC_SUB_TYPE__TABLE
)
{
if
(
pTopic
->
stbUid
==
suid
)
{
if
(
pTopic
->
stbUid
==
suid
)
{
sdbRelease
(
pSdb
,
pTopic
);
sdbRelease
(
pSdb
,
pTopic
);
sdbCancelFetch
(
pSdb
,
pIter
);
return
-
1
;
return
-
1
;
}
}
}
}
...
@@ -2282,6 +2288,7 @@ static int32_t mndCheckDropStbForTopic(SMnode *pMnode, const char *stbFullName,
...
@@ -2282,6 +2288,7 @@ static int32_t mndCheckDropStbForTopic(SMnode *pMnode, const char *stbFullName,
terrno
=
TSDB_CODE_MND_INVALID_TOPIC_OPTION
;
terrno
=
TSDB_CODE_MND_INVALID_TOPIC_OPTION
;
mError
(
"topic:%s, create ast error"
,
pTopic
->
name
);
mError
(
"topic:%s, create ast error"
,
pTopic
->
name
);
sdbRelease
(
pSdb
,
pTopic
);
sdbRelease
(
pSdb
,
pTopic
);
sdbCancelFetch
(
pSdb
,
pIter
);
return
-
1
;
return
-
1
;
}
}
...
@@ -2295,6 +2302,7 @@ static int32_t mndCheckDropStbForTopic(SMnode *pMnode, const char *stbFullName,
...
@@ -2295,6 +2302,7 @@ static int32_t mndCheckDropStbForTopic(SMnode *pMnode, const char *stbFullName,
sdbRelease
(
pSdb
,
pTopic
);
sdbRelease
(
pSdb
,
pTopic
);
nodesDestroyNode
(
pAst
);
nodesDestroyNode
(
pAst
);
nodesDestroyList
(
pNodeList
);
nodesDestroyList
(
pNodeList
);
sdbCancelFetch
(
pSdb
,
pIter
);
return
-
1
;
return
-
1
;
}
else
{
}
else
{
goto
NEXT
;
goto
NEXT
;
...
@@ -2322,6 +2330,7 @@ static int32_t mndCheckDropStbForStream(SMnode *pMnode, const char *stbFullName,
...
@@ -2322,6 +2330,7 @@ static int32_t mndCheckDropStbForStream(SMnode *pMnode, const char *stbFullName,
}
}
if
(
pStream
->
targetStbUid
==
suid
)
{
if
(
pStream
->
targetStbUid
==
suid
)
{
sdbCancelFetch
(
pSdb
,
pIter
);
sdbRelease
(
pSdb
,
pStream
);
sdbRelease
(
pSdb
,
pStream
);
return
-
1
;
return
-
1
;
}
}
...
@@ -2330,6 +2339,7 @@ static int32_t mndCheckDropStbForStream(SMnode *pMnode, const char *stbFullName,
...
@@ -2330,6 +2339,7 @@ static int32_t mndCheckDropStbForStream(SMnode *pMnode, const char *stbFullName,
if
(
nodesStringToNode
(
pStream
->
ast
,
&
pAst
)
!=
0
)
{
if
(
nodesStringToNode
(
pStream
->
ast
,
&
pAst
)
!=
0
)
{
terrno
=
TSDB_CODE_MND_INVALID_STREAM_OPTION
;
terrno
=
TSDB_CODE_MND_INVALID_STREAM_OPTION
;
mError
(
"stream:%s, create ast error"
,
pStream
->
name
);
mError
(
"stream:%s, create ast error"
,
pStream
->
name
);
sdbCancelFetch
(
pSdb
,
pIter
);
sdbRelease
(
pSdb
,
pStream
);
sdbRelease
(
pSdb
,
pStream
);
return
-
1
;
return
-
1
;
}
}
...
@@ -2341,6 +2351,7 @@ static int32_t mndCheckDropStbForStream(SMnode *pMnode, const char *stbFullName,
...
@@ -2341,6 +2351,7 @@ static int32_t mndCheckDropStbForStream(SMnode *pMnode, const char *stbFullName,
SColumnNode
*
pCol
=
(
SColumnNode
*
)
pNode
;
SColumnNode
*
pCol
=
(
SColumnNode
*
)
pNode
;
if
(
pCol
->
tableId
==
suid
)
{
if
(
pCol
->
tableId
==
suid
)
{
sdbCancelFetch
(
pSdb
,
pIter
);
sdbRelease
(
pSdb
,
pStream
);
sdbRelease
(
pSdb
,
pStream
);
nodesDestroyNode
(
pAst
);
nodesDestroyNode
(
pAst
);
nodesDestroyList
(
pNodeList
);
nodesDestroyList
(
pNodeList
);
...
...
source/dnode/mnode/impl/src/mndStream.c
浏览文件 @
0d922c0d
...
@@ -705,12 +705,14 @@ static int32_t mndProcessCreateStreamReq(SRpcMsg *pReq) {
...
@@ -705,12 +705,14 @@ static int32_t mndProcessCreateStreamReq(SRpcMsg *pReq) {
if
(
numOfStream
>
MND_STREAM_MAX_NUM
)
{
if
(
numOfStream
>
MND_STREAM_MAX_NUM
)
{
mError
(
"too many streams, no more than %d for each database"
,
MND_STREAM_MAX_NUM
);
mError
(
"too many streams, no more than %d for each database"
,
MND_STREAM_MAX_NUM
);
terrno
=
TSDB_CODE_MND_TOO_MANY_STREAMS
;
terrno
=
TSDB_CODE_MND_TOO_MANY_STREAMS
;
sdbCancelFetch
(
pMnode
->
pSdb
,
pIter
);
goto
_OVER
;
goto
_OVER
;
}
}
if
(
pStream
->
targetStbUid
==
streamObj
.
targetStbUid
)
{
if
(
pStream
->
targetStbUid
==
streamObj
.
targetStbUid
)
{
mError
(
"Cannot write the same stable as other stream:%s"
,
pStream
->
name
);
mError
(
"Cannot write the same stable as other stream:%s"
,
pStream
->
name
);
terrno
=
TSDB_CODE_MND_INVALID_TARGET_TABLE
;
terrno
=
TSDB_CODE_MND_INVALID_TARGET_TABLE
;
sdbCancelFetch
(
pMnode
->
pSdb
,
pIter
);
goto
_OVER
;
goto
_OVER
;
}
}
}
}
...
...
source/dnode/mnode/impl/src/mndSubscribe.c
浏览文件 @
0d922c0d
...
@@ -1104,6 +1104,7 @@ int32_t mndDropSubByTopic(SMnode *pMnode, STrans *pTrans, const char *topicName)
...
@@ -1104,6 +1104,7 @@ int32_t mndDropSubByTopic(SMnode *pMnode, STrans *pTrans, const char *topicName)
if
(
taosHashGetSize
(
pSub
->
consumerHash
)
!=
0
)
{
if
(
taosHashGetSize
(
pSub
->
consumerHash
)
!=
0
)
{
sdbRelease
(
pSdb
,
pSub
);
sdbRelease
(
pSdb
,
pSub
);
terrno
=
TSDB_CODE_MND_IN_REBALANCE
;
terrno
=
TSDB_CODE_MND_IN_REBALANCE
;
sdbCancelFetch
(
pSdb
,
pIter
);
return
-
1
;
return
-
1
;
}
}
int32_t
sz
=
taosArrayGetSize
(
pSub
->
unassignedVgs
);
int32_t
sz
=
taosArrayGetSize
(
pSub
->
unassignedVgs
);
...
@@ -1122,12 +1123,14 @@ int32_t mndDropSubByTopic(SMnode *pMnode, STrans *pTrans, const char *topicName)
...
@@ -1122,12 +1123,14 @@ int32_t mndDropSubByTopic(SMnode *pMnode, STrans *pTrans, const char *topicName)
if
(
mndTransAppendRedoAction
(
pTrans
,
&
action
)
!=
0
)
{
if
(
mndTransAppendRedoAction
(
pTrans
,
&
action
)
!=
0
)
{
taosMemoryFree
(
pReq
);
taosMemoryFree
(
pReq
);
sdbRelease
(
pSdb
,
pSub
);
sdbRelease
(
pSdb
,
pSub
);
sdbCancelFetch
(
pSdb
,
pIter
);
return
-
1
;
return
-
1
;
}
}
}
}
if
(
mndSetDropSubRedoLogs
(
pMnode
,
pTrans
,
pSub
)
<
0
)
{
if
(
mndSetDropSubRedoLogs
(
pMnode
,
pTrans
,
pSub
)
<
0
)
{
sdbRelease
(
pSdb
,
pSub
);
sdbRelease
(
pSdb
,
pSub
);
sdbCancelFetch
(
pSdb
,
pIter
);
goto
END
;
goto
END
;
}
}
...
...
source/dnode/mnode/impl/src/mndTopic.c
浏览文件 @
0d922c0d
...
@@ -513,6 +513,7 @@ static int32_t mndCreateTopic(SMnode *pMnode, SRpcMsg *pReq, SCMCreateTopicReq *
...
@@ -513,6 +513,7 @@ static int32_t mndCreateTopic(SMnode *pMnode, SRpcMsg *pReq, SCMCreateTopicReq *
tEncodeSize
(
tEncodeSTqCheckInfo
,
&
info
,
len
,
code
);
tEncodeSize
(
tEncodeSTqCheckInfo
,
&
info
,
len
,
code
);
if
(
code
<
0
)
{
if
(
code
<
0
)
{
sdbRelease
(
pSdb
,
pVgroup
);
sdbRelease
(
pSdb
,
pVgroup
);
sdbCancelFetch
(
pSdb
,
pIter
);
goto
_OUT
;
goto
_OUT
;
}
}
void
*
buf
=
taosMemoryCalloc
(
1
,
sizeof
(
SMsgHead
)
+
len
);
void
*
buf
=
taosMemoryCalloc
(
1
,
sizeof
(
SMsgHead
)
+
len
);
...
@@ -522,6 +523,7 @@ static int32_t mndCreateTopic(SMnode *pMnode, SRpcMsg *pReq, SCMCreateTopicReq *
...
@@ -522,6 +523,7 @@ static int32_t mndCreateTopic(SMnode *pMnode, SRpcMsg *pReq, SCMCreateTopicReq *
if
(
tEncodeSTqCheckInfo
(
&
encoder
,
&
info
)
<
0
)
{
if
(
tEncodeSTqCheckInfo
(
&
encoder
,
&
info
)
<
0
)
{
taosMemoryFree
(
buf
);
taosMemoryFree
(
buf
);
sdbRelease
(
pSdb
,
pVgroup
);
sdbRelease
(
pSdb
,
pVgroup
);
sdbCancelFetch
(
pSdb
,
pIter
);
goto
_OUT
;
goto
_OUT
;
}
}
tEncoderClear
(
&
encoder
);
tEncoderClear
(
&
encoder
);
...
@@ -535,6 +537,7 @@ static int32_t mndCreateTopic(SMnode *pMnode, SRpcMsg *pReq, SCMCreateTopicReq *
...
@@ -535,6 +537,7 @@ static int32_t mndCreateTopic(SMnode *pMnode, SRpcMsg *pReq, SCMCreateTopicReq *
if
(
mndTransAppendRedoAction
(
pTrans
,
&
action
)
!=
0
)
{
if
(
mndTransAppendRedoAction
(
pTrans
,
&
action
)
!=
0
)
{
taosMemoryFree
(
buf
);
taosMemoryFree
(
buf
);
sdbRelease
(
pSdb
,
pVgroup
);
sdbRelease
(
pSdb
,
pVgroup
);
sdbCancelFetch
(
pSdb
,
pIter
);
goto
_OUT
;
goto
_OUT
;
}
}
buf
=
NULL
;
buf
=
NULL
;
...
@@ -647,7 +650,6 @@ static int32_t mndDropTopic(SMnode *pMnode, STrans *pTrans, SRpcMsg *pReq, SMqTo
...
@@ -647,7 +650,6 @@ static int32_t mndDropTopic(SMnode *pMnode, STrans *pTrans, SRpcMsg *pReq, SMqTo
code
=
0
;
code
=
0
;
_OVER:
_OVER:
mndTransDrop
(
pTrans
);
return
code
;
return
code
;
}
}
...
@@ -698,6 +700,7 @@ static int32_t mndProcessDropTopicReq(SRpcMsg *pReq) {
...
@@ -698,6 +700,7 @@ static int32_t mndProcessDropTopicReq(SRpcMsg *pReq) {
if
(
strcmp
(
name
,
pTopic
->
name
)
==
0
)
{
if
(
strcmp
(
name
,
pTopic
->
name
)
==
0
)
{
mndReleaseConsumer
(
pMnode
,
pConsumer
);
mndReleaseConsumer
(
pMnode
,
pConsumer
);
mndReleaseTopic
(
pMnode
,
pTopic
);
mndReleaseTopic
(
pMnode
,
pTopic
);
sdbCancelFetch
(
pSdb
,
pIter
);
terrno
=
TSDB_CODE_MND_TOPIC_SUBSCRIBED
;
terrno
=
TSDB_CODE_MND_TOPIC_SUBSCRIBED
;
mError
(
"topic:%s, failed to drop since subscribed by consumer:0x%"
PRIx64
", in consumer group %s"
,
mError
(
"topic:%s, failed to drop since subscribed by consumer:0x%"
PRIx64
", in consumer group %s"
,
dropReq
.
name
,
pConsumer
->
consumerId
,
pConsumer
->
cgroup
);
dropReq
.
name
,
pConsumer
->
consumerId
,
pConsumer
->
cgroup
);
...
@@ -711,6 +714,7 @@ static int32_t mndProcessDropTopicReq(SRpcMsg *pReq) {
...
@@ -711,6 +714,7 @@ static int32_t mndProcessDropTopicReq(SRpcMsg *pReq) {
if
(
strcmp
(
name
,
pTopic
->
name
)
==
0
)
{
if
(
strcmp
(
name
,
pTopic
->
name
)
==
0
)
{
mndReleaseConsumer
(
pMnode
,
pConsumer
);
mndReleaseConsumer
(
pMnode
,
pConsumer
);
mndReleaseTopic
(
pMnode
,
pTopic
);
mndReleaseTopic
(
pMnode
,
pTopic
);
sdbCancelFetch
(
pSdb
,
pIter
);
terrno
=
TSDB_CODE_MND_TOPIC_SUBSCRIBED
;
terrno
=
TSDB_CODE_MND_TOPIC_SUBSCRIBED
;
mError
(
"topic:%s, failed to drop since subscribed by consumer:%"
PRId64
", in consumer group %s (reb new)"
,
mError
(
"topic:%s, failed to drop since subscribed by consumer:%"
PRId64
", in consumer group %s (reb new)"
,
dropReq
.
name
,
pConsumer
->
consumerId
,
pConsumer
->
cgroup
);
dropReq
.
name
,
pConsumer
->
consumerId
,
pConsumer
->
cgroup
);
...
@@ -724,6 +728,7 @@ static int32_t mndProcessDropTopicReq(SRpcMsg *pReq) {
...
@@ -724,6 +728,7 @@ static int32_t mndProcessDropTopicReq(SRpcMsg *pReq) {
if
(
strcmp
(
name
,
pTopic
->
name
)
==
0
)
{
if
(
strcmp
(
name
,
pTopic
->
name
)
==
0
)
{
mndReleaseConsumer
(
pMnode
,
pConsumer
);
mndReleaseConsumer
(
pMnode
,
pConsumer
);
mndReleaseTopic
(
pMnode
,
pTopic
);
mndReleaseTopic
(
pMnode
,
pTopic
);
sdbCancelFetch
(
pSdb
,
pIter
);
terrno
=
TSDB_CODE_MND_TOPIC_SUBSCRIBED
;
terrno
=
TSDB_CODE_MND_TOPIC_SUBSCRIBED
;
mError
(
"topic:%s, failed to drop since subscribed by consumer:%"
PRId64
", in consumer group %s (reb remove)"
,
mError
(
"topic:%s, failed to drop since subscribed by consumer:%"
PRId64
", in consumer group %s (reb remove)"
,
dropReq
.
name
,
pConsumer
->
consumerId
,
pConsumer
->
cgroup
);
dropReq
.
name
,
pConsumer
->
consumerId
,
pConsumer
->
cgroup
);
...
@@ -735,6 +740,7 @@ static int32_t mndProcessDropTopicReq(SRpcMsg *pReq) {
...
@@ -735,6 +740,7 @@ static int32_t mndProcessDropTopicReq(SRpcMsg *pReq) {
}
}
if
(
mndCheckDbPrivilegeByName
(
pMnode
,
pReq
->
info
.
conn
.
user
,
MND_OPER_READ_DB
,
pTopic
->
db
)
!=
0
)
{
if
(
mndCheckDbPrivilegeByName
(
pMnode
,
pReq
->
info
.
conn
.
user
,
MND_OPER_READ_DB
,
pTopic
->
db
)
!=
0
)
{
mndReleaseTopic
(
pMnode
,
pTopic
);
return
-
1
;
return
-
1
;
}
}
...
@@ -788,6 +794,8 @@ static int32_t mndProcessDropTopicReq(SRpcMsg *pReq) {
...
@@ -788,6 +794,8 @@ static int32_t mndProcessDropTopicReq(SRpcMsg *pReq) {
if
(
mndTransAppendRedoAction
(
pTrans
,
&
action
)
!=
0
)
{
if
(
mndTransAppendRedoAction
(
pTrans
,
&
action
)
!=
0
)
{
taosMemoryFree
(
buf
);
taosMemoryFree
(
buf
);
sdbRelease
(
pSdb
,
pVgroup
);
sdbRelease
(
pSdb
,
pVgroup
);
mndReleaseTopic
(
pMnode
,
pTopic
);
sdbCancelFetch
(
pSdb
,
pIter
);
mndTransDrop
(
pTrans
);
mndTransDrop
(
pTrans
);
return
-
1
;
return
-
1
;
}
}
...
@@ -796,6 +804,7 @@ static int32_t mndProcessDropTopicReq(SRpcMsg *pReq) {
...
@@ -796,6 +804,7 @@ static int32_t mndProcessDropTopicReq(SRpcMsg *pReq) {
int32_t
code
=
mndDropTopic
(
pMnode
,
pTrans
,
pReq
,
pTopic
);
int32_t
code
=
mndDropTopic
(
pMnode
,
pTrans
,
pReq
,
pTopic
);
mndReleaseTopic
(
pMnode
,
pTopic
);
mndReleaseTopic
(
pMnode
,
pTopic
);
mndTransDrop
(
pTrans
);
if
(
code
!=
0
)
{
if
(
code
!=
0
)
{
mError
(
"topic:%s, failed to drop since %s"
,
dropReq
.
name
,
terrstr
());
mError
(
"topic:%s, failed to drop since %s"
,
dropReq
.
name
,
terrstr
());
...
@@ -999,6 +1008,7 @@ bool mndTopicExistsForDb(SMnode *pMnode, SDbObj *pDb) {
...
@@ -999,6 +1008,7 @@ bool mndTopicExistsForDb(SMnode *pMnode, SDbObj *pDb) {
if
(
pTopic
->
dbUid
==
pDb
->
uid
)
{
if
(
pTopic
->
dbUid
==
pDb
->
uid
)
{
sdbRelease
(
pSdb
,
pTopic
);
sdbRelease
(
pSdb
,
pTopic
);
sdbCancelFetch
(
pSdb
,
pIter
);
return
true
;
return
true
;
}
}
...
...
source/dnode/mnode/impl/src/mndUser.c
浏览文件 @
0d922c0d
...
@@ -1444,7 +1444,9 @@ int32_t mndUserRemoveDb(SMnode *pMnode, STrans *pTrans, char *db) {
...
@@ -1444,7 +1444,9 @@ int32_t mndUserRemoveDb(SMnode *pMnode, STrans *pTrans, char *db) {
if
(
pIter
==
NULL
)
break
;
if
(
pIter
==
NULL
)
break
;
code
=
-
1
;
code
=
-
1
;
if
(
mndUserDupObj
(
pUser
,
&
newUser
)
!=
0
)
break
;
if
(
mndUserDupObj
(
pUser
,
&
newUser
)
!=
0
)
{
break
;
}
bool
inRead
=
(
taosHashGet
(
newUser
.
readDbs
,
db
,
len
)
!=
NULL
);
bool
inRead
=
(
taosHashGet
(
newUser
.
readDbs
,
db
,
len
)
!=
NULL
);
bool
inWrite
=
(
taosHashGet
(
newUser
.
writeDbs
,
db
,
len
)
!=
NULL
);
bool
inWrite
=
(
taosHashGet
(
newUser
.
writeDbs
,
db
,
len
)
!=
NULL
);
...
@@ -1453,7 +1455,9 @@ int32_t mndUserRemoveDb(SMnode *pMnode, STrans *pTrans, char *db) {
...
@@ -1453,7 +1455,9 @@ int32_t mndUserRemoveDb(SMnode *pMnode, STrans *pTrans, char *db) {
(
void
)
taosHashRemove
(
newUser
.
writeDbs
,
db
,
len
);
(
void
)
taosHashRemove
(
newUser
.
writeDbs
,
db
,
len
);
SSdbRaw
*
pCommitRaw
=
mndUserActionEncode
(
&
newUser
);
SSdbRaw
*
pCommitRaw
=
mndUserActionEncode
(
&
newUser
);
if
(
pCommitRaw
==
NULL
||
mndTransAppendCommitlog
(
pTrans
,
pCommitRaw
)
!=
0
)
break
;
if
(
pCommitRaw
==
NULL
||
mndTransAppendCommitlog
(
pTrans
,
pCommitRaw
)
!=
0
)
{
break
;
}
(
void
)
sdbSetRawStatus
(
pCommitRaw
,
SDB_STATUS_READY
);
(
void
)
sdbSetRawStatus
(
pCommitRaw
,
SDB_STATUS_READY
);
}
}
...
@@ -1491,7 +1495,9 @@ int32_t mndUserRemoveTopic(SMnode *pMnode, STrans *pTrans, char *topic) {
...
@@ -1491,7 +1495,9 @@ int32_t mndUserRemoveTopic(SMnode *pMnode, STrans *pTrans, char *topic) {
if
(
inTopic
)
{
if
(
inTopic
)
{
(
void
)
taosHashRemove
(
newUser
.
topics
,
topic
,
len
);
(
void
)
taosHashRemove
(
newUser
.
topics
,
topic
,
len
);
SSdbRaw
*
pCommitRaw
=
mndUserActionEncode
(
&
newUser
);
SSdbRaw
*
pCommitRaw
=
mndUserActionEncode
(
&
newUser
);
if
(
pCommitRaw
==
NULL
||
mndTransAppendCommitlog
(
pTrans
,
pCommitRaw
)
!=
0
)
break
;
if
(
pCommitRaw
==
NULL
||
mndTransAppendCommitlog
(
pTrans
,
pCommitRaw
)
!=
0
)
{
break
;
}
(
void
)
sdbSetRawStatus
(
pCommitRaw
,
SDB_STATUS_READY
);
(
void
)
sdbSetRawStatus
(
pCommitRaw
,
SDB_STATUS_READY
);
}
}
...
...
source/dnode/mnode/impl/src/mndVgroup.c
浏览文件 @
0d922c0d
...
@@ -2591,6 +2591,7 @@ static int32_t mndProcessBalanceVgroupMsg(SRpcMsg *pReq) {
...
@@ -2591,6 +2591,7 @@ static int32_t mndProcessBalanceVgroupMsg(SRpcMsg *pReq) {
pIter
=
sdbFetch
(
pMnode
->
pSdb
,
SDB_DNODE
,
pIter
,
(
void
**
)
&
pDnode
);
pIter
=
sdbFetch
(
pMnode
->
pSdb
,
SDB_DNODE
,
pIter
,
(
void
**
)
&
pDnode
);
if
(
pIter
==
NULL
)
break
;
if
(
pIter
==
NULL
)
break
;
if
(
!
mndIsDnodeOnline
(
pDnode
,
curMs
))
{
if
(
!
mndIsDnodeOnline
(
pDnode
,
curMs
))
{
sdbCancelFetch
(
pMnode
->
pSdb
,
pIter
);
terrno
=
TSDB_CODE_MND_HAS_OFFLINE_DNODE
;
terrno
=
TSDB_CODE_MND_HAS_OFFLINE_DNODE
;
mError
(
"failed to balance vgroup since %s, dnode:%d"
,
terrstr
(),
pDnode
->
id
);
mError
(
"failed to balance vgroup since %s, dnode:%d"
,
terrstr
(),
pDnode
->
id
);
sdbRelease
(
pMnode
->
pSdb
,
pDnode
);
sdbRelease
(
pMnode
->
pSdb
,
pDnode
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录