Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
9ee43c27
T
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1192
Star
22018
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看板
提交
9ee43c27
编写于
3月 29, 2023
作者:
K
kailixu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
enh: coverity scan for sma
上级
fabd96de
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
26 addition
and
37 deletion
+26
-37
source/dnode/vnode/src/sma/smaFS.c
source/dnode/vnode/src/sma/smaFS.c
+7
-14
source/dnode/vnode/src/sma/smaOpen.c
source/dnode/vnode/src/sma/smaOpen.c
+1
-7
source/dnode/vnode/src/sma/smaRollup.c
source/dnode/vnode/src/sma/smaRollup.c
+16
-14
source/dnode/vnode/src/sma/smaTimeRange.c
source/dnode/vnode/src/sma/smaTimeRange.c
+2
-2
未找到文件。
source/dnode/vnode/src/sma/smaFS.c
浏览文件 @
9ee43c27
...
@@ -99,8 +99,9 @@ _exit:
...
@@ -99,8 +99,9 @@ _exit:
}
}
static
int32_t
tdRSmaSaveFSToFile
(
SRSmaFS
*
pFS
,
const
char
*
fname
)
{
static
int32_t
tdRSmaSaveFSToFile
(
SRSmaFS
*
pFS
,
const
char
*
fname
)
{
int32_t
code
=
0
;
int32_t
code
=
0
;
int32_t
lino
=
0
;
int32_t
lino
=
0
;
TdFilePtr
pFD
=
NULL
;
// encode to binary
// encode to binary
int32_t
size
=
tdRSmaFSToBinary
(
NULL
,
pFS
)
+
sizeof
(
TSCKSUM
);
int32_t
size
=
tdRSmaFSToBinary
(
NULL
,
pFS
)
+
sizeof
(
TSCKSUM
);
...
@@ -113,8 +114,8 @@ static int32_t tdRSmaSaveFSToFile(SRSmaFS *pFS, const char *fname) {
...
@@ -113,8 +114,8 @@ static int32_t tdRSmaSaveFSToFile(SRSmaFS *pFS, const char *fname) {
taosCalcChecksumAppend
(
0
,
pData
,
size
);
taosCalcChecksumAppend
(
0
,
pData
,
size
);
// save to file
// save to file
TdFilePtr
pFD
=
taosCreateFile
(
fname
,
TD_FILE_WRITE
|
TD_FILE_CREATE
|
TD_FILE_TRUNC
);
pFD
=
taosCreateFile
(
fname
,
TD_FILE_WRITE
|
TD_FILE_CREATE
|
TD_FILE_TRUNC
);
if
(
pFD
==
NULL
)
{
if
(
!
pFD
)
{
code
=
TAOS_SYSTEM_ERROR
(
errno
);
code
=
TAOS_SYSTEM_ERROR
(
errno
);
TSDB_CHECK_CODE
(
code
,
lino
,
_exit
);
TSDB_CHECK_CODE
(
code
,
lino
,
_exit
);
}
}
...
@@ -122,19 +123,16 @@ static int32_t tdRSmaSaveFSToFile(SRSmaFS *pFS, const char *fname) {
...
@@ -122,19 +123,16 @@ static int32_t tdRSmaSaveFSToFile(SRSmaFS *pFS, const char *fname) {
int64_t
n
=
taosWriteFile
(
pFD
,
pData
,
size
);
int64_t
n
=
taosWriteFile
(
pFD
,
pData
,
size
);
if
(
n
<
0
)
{
if
(
n
<
0
)
{
code
=
TAOS_SYSTEM_ERROR
(
errno
);
code
=
TAOS_SYSTEM_ERROR
(
errno
);
taosCloseFile
(
&
pFD
);
TSDB_CHECK_CODE
(
code
,
lino
,
_exit
);
TSDB_CHECK_CODE
(
code
,
lino
,
_exit
);
}
}
if
(
taosFsyncFile
(
pFD
)
<
0
)
{
if
(
taosFsyncFile
(
pFD
)
<
0
)
{
code
=
TAOS_SYSTEM_ERROR
(
errno
);
code
=
TAOS_SYSTEM_ERROR
(
errno
);
taosCloseFile
(
&
pFD
);
TSDB_CHECK_CODE
(
code
,
lino
,
_exit
);
TSDB_CHECK_CODE
(
code
,
lino
,
_exit
);
}
}
taosCloseFile
(
&
pFD
);
_exit:
_exit:
taosCloseFile
(
&
pFD
);
if
(
pData
)
taosMemoryFree
(
pData
);
if
(
pData
)
taosMemoryFree
(
pData
);
if
(
code
)
{
if
(
code
)
{
smaError
(
"%s failed at line %d since %s, fname:%s"
,
__func__
,
lino
,
tstrerror
(
code
),
fname
);
smaError
(
"%s failed at line %d since %s, fname:%s"
,
__func__
,
lino
,
tstrerror
(
code
),
fname
);
...
@@ -193,36 +191,31 @@ static int32_t tdRSmaLoadFSFromFile(const char *fname, SRSmaFS *pFS) {
...
@@ -193,36 +191,31 @@ static int32_t tdRSmaLoadFSFromFile(const char *fname, SRSmaFS *pFS) {
int64_t
size
;
int64_t
size
;
if
(
taosFStatFile
(
pFD
,
&
size
,
NULL
)
<
0
)
{
if
(
taosFStatFile
(
pFD
,
&
size
,
NULL
)
<
0
)
{
code
=
TAOS_SYSTEM_ERROR
(
errno
);
code
=
TAOS_SYSTEM_ERROR
(
errno
);
taosCloseFile
(
&
pFD
);
TSDB_CHECK_CODE
(
code
,
lino
,
_exit
);
TSDB_CHECK_CODE
(
code
,
lino
,
_exit
);
}
}
pData
=
taosMemoryMalloc
(
size
);
pData
=
taosMemoryMalloc
(
size
);
if
(
pData
==
NULL
)
{
if
(
pData
==
NULL
)
{
code
=
TSDB_CODE_OUT_OF_MEMORY
;
code
=
TSDB_CODE_OUT_OF_MEMORY
;
taosCloseFile
(
&
pFD
);
TSDB_CHECK_CODE
(
code
,
lino
,
_exit
);
TSDB_CHECK_CODE
(
code
,
lino
,
_exit
);
}
}
if
(
taosReadFile
(
pFD
,
pData
,
size
)
<
0
)
{
if
(
taosReadFile
(
pFD
,
pData
,
size
)
<
0
)
{
code
=
TAOS_SYSTEM_ERROR
(
errno
);
code
=
TAOS_SYSTEM_ERROR
(
errno
);
taosCloseFile
(
&
pFD
);
TSDB_CHECK_CODE
(
code
,
lino
,
_exit
);
TSDB_CHECK_CODE
(
code
,
lino
,
_exit
);
}
}
if
(
!
taosCheckChecksumWhole
(
pData
,
size
))
{
if
(
!
taosCheckChecksumWhole
(
pData
,
size
))
{
code
=
TSDB_CODE_FILE_CORRUPTED
;
code
=
TSDB_CODE_FILE_CORRUPTED
;
taosCloseFile
(
&
pFD
);
TSDB_CHECK_CODE
(
code
,
lino
,
_exit
);
TSDB_CHECK_CODE
(
code
,
lino
,
_exit
);
}
}
taosCloseFile
(
&
pFD
);
// decode binary
// decode binary
code
=
tsdbBinaryToFS
(
pData
,
size
,
pFS
);
code
=
tsdbBinaryToFS
(
pData
,
size
,
pFS
);
TSDB_CHECK_CODE
(
code
,
lino
,
_exit
);
TSDB_CHECK_CODE
(
code
,
lino
,
_exit
);
_exit:
_exit:
taosCloseFile
(
&
pFD
);
if
(
pData
)
taosMemoryFree
(
pData
);
if
(
pData
)
taosMemoryFree
(
pData
);
if
(
code
)
{
if
(
code
)
{
smaError
(
"%s failed at line %d since %s, fname:%s"
,
__func__
,
lino
,
tstrerror
(
code
),
fname
);
smaError
(
"%s failed at line %d since %s, fname:%s"
,
__func__
,
lino
,
tstrerror
(
code
),
fname
);
...
...
source/dnode/vnode/src/sma/smaOpen.c
浏览文件 @
9ee43c27
...
@@ -101,10 +101,6 @@ int smaSetKeepCfg(SVnode *pVnode, STsdbKeepCfg *pKeepCfg, STsdbCfg *pCfg, int ty
...
@@ -101,10 +101,6 @@ int smaSetKeepCfg(SVnode *pVnode, STsdbKeepCfg *pKeepCfg, STsdbCfg *pCfg, int ty
terrno
=
0
;
terrno
=
0
;
pKeepCfg
->
precision
=
pCfg
->
precision
;
pKeepCfg
->
precision
=
pCfg
->
precision
;
switch
(
type
)
{
switch
(
type
)
{
case
TSDB_TYPE_TSMA
:
ASSERTS
(
0
,
"undefined smaType:%d"
,
(
int32_t
)
type
);
terrno
=
TSDB_CODE_APP_ERROR
;
break
;
case
TSDB_TYPE_RSMA_L0
:
case
TSDB_TYPE_RSMA_L0
:
SMA_SET_KEEP_CFG
(
pVnode
,
0
);
SMA_SET_KEEP_CFG
(
pVnode
,
0
);
break
;
break
;
...
@@ -115,7 +111,6 @@ int smaSetKeepCfg(SVnode *pVnode, STsdbKeepCfg *pKeepCfg, STsdbCfg *pCfg, int ty
...
@@ -115,7 +111,6 @@ int smaSetKeepCfg(SVnode *pVnode, STsdbKeepCfg *pKeepCfg, STsdbCfg *pCfg, int ty
SMA_SET_KEEP_CFG
(
pVnode
,
2
);
SMA_SET_KEEP_CFG
(
pVnode
,
2
);
break
;
break
;
default:
default:
ASSERTS
(
0
,
"unknown smaType:%d"
,
(
int32_t
)
type
);
terrno
=
TSDB_CODE_APP_ERROR
;
terrno
=
TSDB_CODE_APP_ERROR
;
break
;
break
;
}
}
...
@@ -189,8 +184,7 @@ int32_t smaClose(SSma *pSma) {
...
@@ -189,8 +184,7 @@ int32_t smaClose(SSma *pSma) {
*/
*/
int32_t
tdRSmaRestore
(
SSma
*
pSma
,
int8_t
type
,
int64_t
committedVer
,
int8_t
rollback
)
{
int32_t
tdRSmaRestore
(
SSma
*
pSma
,
int8_t
type
,
int64_t
committedVer
,
int8_t
rollback
)
{
if
(
!
VND_IS_RSMA
(
pSma
->
pVnode
))
{
if
(
!
VND_IS_RSMA
(
pSma
->
pVnode
))
{
terrno
=
TSDB_CODE_RSMA_INVALID_ENV
;
return
TSDB_CODE_RSMA_INVALID_ENV
;
return
TSDB_CODE_FAILED
;
}
}
return
tdRSmaProcessRestoreImpl
(
pSma
,
type
,
committedVer
,
rollback
);
return
tdRSmaProcessRestoreImpl
(
pSma
,
type
,
committedVer
,
rollback
);
...
...
source/dnode/vnode/src/sma/smaRollup.c
浏览文件 @
9ee43c27
...
@@ -1213,33 +1213,35 @@ _exit:
...
@@ -1213,33 +1213,35 @@ _exit:
* N.B. the data would be restored from the unified WAL replay procedure
* N.B. the data would be restored from the unified WAL replay procedure
*/
*/
int32_t
tdRSmaProcessRestoreImpl
(
SSma
*
pSma
,
int8_t
type
,
int64_t
qtaskFileVer
,
int8_t
rollback
)
{
int32_t
tdRSmaProcessRestoreImpl
(
SSma
*
pSma
,
int8_t
type
,
int64_t
qtaskFileVer
,
int8_t
rollback
)
{
int32_t
code
=
0
;
int64_t
nTables
=
0
;
// step 1: init env
// step 1: init env
if
(
tdCheckAndInitSmaEnv
(
pSma
,
TSDB_SMA_TYPE_ROLLUP
)
!=
TSDB_CODE_SUCCESS
)
{
if
(
tdCheckAndInitSmaEnv
(
pSma
,
TSDB_SMA_TYPE_ROLLUP
)
!=
TSDB_CODE_SUCCESS
)
{
terrno
=
TSDB_CODE_TDB_INIT_FAILED
;
code
=
TSDB_CODE_TDB_INIT_FAILED
;
return
TSDB_CODE_FAILED
;
goto
_err
;
}
}
// step 2: open SRSmaFS for qTaskFiles
// step 2: open SRSmaFS for qTaskFiles
if
(
tdRSmaFSOpen
(
pSma
,
qtaskFileVer
,
rollback
)
<
0
)
{
if
(
(
code
=
tdRSmaFSOpen
(
pSma
,
qtaskFileVer
,
rollback
)
)
<
0
)
{
goto
_err
;
goto
_err
;
}
}
// step 3: iterate all stables to restore the rsma env
// step 3: iterate all stables to restore the rsma env
int64_t
nTables
=
0
;
if
((
code
=
tdRSmaRestoreQTaskInfoInit
(
pSma
,
&
nTables
))
<
0
)
{
if
(
tdRSmaRestoreQTaskInfoInit
(
pSma
,
&
nTables
)
<
0
)
{
goto
_err
;
goto
_err
;
}
}
if
(
nTables
<=
0
)
{
smaDebug
(
"vgId:%d, no need to restore rsma task %"
PRIi8
" since no tables"
,
SMA_VID
(
pSma
),
type
);
return
TSDB_CODE_SUCCESS
;
}
smaInfo
(
"vgId:%d, restore rsma task %"
PRIi8
" from qtaskf %"
PRIi64
" succeed"
,
SMA_VID
(
pSma
),
type
,
qtaskFileVer
);
return
TSDB_CODE_SUCCESS
;
_err:
_err:
smaError
(
"vgId:%d, restore rsma task %"
PRIi8
"from qtaskf %"
PRIi64
" failed since %s"
,
SMA_VID
(
pSma
),
type
,
if
(
code
)
{
qtaskFileVer
,
terrstr
());
smaError
(
"vgId:%d, restore rsma task %"
PRIi8
"from qtaskf %"
PRIi64
" failed since %s"
,
SMA_VID
(
pSma
),
type
,
return
TSDB_CODE_FAILED
;
qtaskFileVer
,
tstrerror
(
code
));
}
else
{
smaInfo
(
"vgId:%d, restore rsma task %"
PRIi8
" from qtaskf %"
PRIi64
" succeed, nTables:%"
PRIi64
,
SMA_VID
(
pSma
),
type
,
qtaskFileVer
,
nTables
);
}
return
code
;
}
}
int32_t
tdRSmaPersistExecImpl
(
SRSmaStat
*
pRSmaStat
,
SHashObj
*
pInfoHash
)
{
int32_t
tdRSmaPersistExecImpl
(
SRSmaStat
*
pRSmaStat
,
SHashObj
*
pInfoHash
)
{
...
...
source/dnode/vnode/src/sma/smaTimeRange.c
浏览文件 @
9ee43c27
...
@@ -419,8 +419,8 @@ static int32_t tdProcessTSmaInsertImpl(SSma *pSma, int64_t indexUid, const char
...
@@ -419,8 +419,8 @@ static int32_t tdProcessTSmaInsertImpl(SSma *pSma, int64_t indexUid, const char
_exit:
_exit:
if
(
code
)
{
if
(
code
)
{
smaError
(
"vgId:%d, %s failed at line %d since %s, smaIndex:%
PRIi64"
,
SMA_VID
(
pSma
),
__func__
,
lino
,
tstrerror
(
code
)
,
smaError
(
"vgId:%d, %s failed at line %d since %s, smaIndex:%
"
PRIi64
,
SMA_VID
(
pSma
),
__func__
,
lino
,
indexUid
);
tstrerror
(
code
),
indexUid
);
}
}
return
code
;
return
code
;
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录