Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
慢慢CG
TDengine
提交
9cbf1b1f
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看板
提交
9cbf1b1f
编写于
7月 29, 2020
作者:
陶建辉(Jeff)
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
processedCount to prevent race condition
上级
a78c6232
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
14 addition
and
6 deletion
+14
-6
src/dnode/src/dnodeVWrite.c
src/dnode/src/dnodeVWrite.c
+11
-3
src/tsdb/src/tsdbMeta.c
src/tsdb/src/tsdbMeta.c
+3
-3
未找到文件。
src/dnode/src/dnodeVWrite.c
浏览文件 @
9cbf1b1f
...
...
@@ -38,6 +38,8 @@ typedef struct {
typedef
struct
{
SRspRet
rspRet
;
int32_t
processedCount
;
int32_t
code
;
void
*
pCont
;
int32_t
contLen
;
SRpcMsg
rpcMsg
;
...
...
@@ -187,13 +189,16 @@ void dnodeFreeVnodeWqueue(void *wqueue) {
void
dnodeSendRpcVnodeWriteRsp
(
void
*
pVnode
,
void
*
param
,
int32_t
code
)
{
SWriteMsg
*
pWrite
=
(
SWriteMsg
*
)
param
;
if
(
code
>
0
)
return
;
if
(
code
<
0
)
pWrite
->
code
=
code
;
int32_t
count
=
atomic_add_fetch_32
(
&
pWrite
->
processedCount
,
1
);
if
(
count
<=
1
)
return
;
SRpcMsg
rpcRsp
=
{
.
handle
=
pWrite
->
rpcMsg
.
handle
,
.
pCont
=
pWrite
->
rspRet
.
rsp
,
.
contLen
=
pWrite
->
rspRet
.
len
,
.
code
=
code
,
.
code
=
pWrite
->
code
,
};
rpcSendResponse
(
&
rpcRsp
);
...
...
@@ -239,7 +244,10 @@ static void *dnodeProcessWriteQueue(void *param) {
}
int32_t
code
=
vnodeProcessWrite
(
pVnode
,
type
,
pHead
,
pRspRet
);
if
(
pWrite
)
pWrite
->
rpcMsg
.
code
=
code
;
if
(
pWrite
)
{
pWrite
->
rpcMsg
.
code
=
code
;
if
(
code
<=
0
)
pWrite
->
processedCount
=
1
;
}
}
walFsync
(
vnodeGetWal
(
pVnode
));
...
...
src/tsdb/src/tsdbMeta.c
浏览文件 @
9cbf1b1f
...
...
@@ -69,8 +69,8 @@ int tsdbCreateTable(TSDB_REPO_T *repo, STableCfg *pCfg) {
if
(
tid
<
pMeta
->
maxTables
&&
pMeta
->
tables
[
tid
]
!=
NULL
)
{
if
(
TABLE_UID
(
pMeta
->
tables
[
tid
])
==
pCfg
->
tableId
.
uid
)
{
tsdbError
(
"vgId:%d table %s already exists, tid %d uid %"
PRId64
,
REPO_ID
(
pRepo
),
TABLE_CHAR_NAME
(
p
Table
),
TABLE_TID
(
p
Table
),
TABLE_UID
(
pTable
));
tsdbError
(
"vgId:%d table %s already exists, tid %d uid %"
PRId64
,
REPO_ID
(
pRepo
),
TABLE_CHAR_NAME
(
p
Meta
->
tables
[
tid
]
),
TABLE_TID
(
p
Meta
->
tables
[
tid
]),
TABLE_UID
(
pMeta
->
tables
[
tid
]
));
return
TSDB_CODE_TDB_TABLE_ALREADY_EXIST
;
}
else
{
tsdbError
(
"vgId:%d table %s at tid %d uid %"
PRIu64
...
...
@@ -1295,4 +1295,4 @@ static int tsdbAdjustMetaTables(STsdbRepo *pRepo, int tid) {
tsdbDebug
(
"vgId:%d tsdb meta maxTables is adjusted as %d"
,
REPO_ID
(
pRepo
),
maxTables
);
return
0
;
}
\ No newline at end of file
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录