Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
慢慢CG
TDengine
提交
1f08d25d
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看板
提交
1f08d25d
编写于
3月 26, 2021
作者:
P
Ping Xiao
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'develop' into xiaoping/add_test_case
上级
9887a58e
e9b3f5d3
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
214 addition
and
90 deletion
+214
-90
Jenkinsfile
Jenkinsfile
+1
-1
src/kit/taosdemo/CMakeLists.txt
src/kit/taosdemo/CMakeLists.txt
+47
-0
src/kit/taosdemo/taosdemo.c
src/kit/taosdemo/taosdemo.c
+112
-66
src/rpc/src/rpcMain.c
src/rpc/src/rpcMain.c
+20
-9
src/tsdb/src/tsdbCommit.c
src/tsdb/src/tsdbCommit.c
+1
-1
tests/Jenkinsfile
tests/Jenkinsfile
+10
-8
tests/test-all.sh
tests/test-all.sh
+23
-5
未找到文件。
Jenkinsfile
浏览文件 @
1f08d25d
...
@@ -39,7 +39,7 @@ def pre_test(){
...
@@ -39,7 +39,7 @@ def pre_test(){
sudo rmtaos || echo "taosd has not installed"
sudo rmtaos || echo "taosd has not installed"
'''
'''
sh
'''
sh
'''
ps -ef | grep taosd | grep -v grep | awk '{print $2}' | xargs kill -9
cd ${WKC}
cd ${WKC}
git checkout develop
git checkout develop
git reset --hard HEAD~10 >/dev/null
git reset --hard HEAD~10 >/dev/null
...
...
src/kit/taosdemo/CMakeLists.txt
浏览文件 @
1f08d25d
...
@@ -3,6 +3,53 @@ PROJECT(TDengine)
...
@@ -3,6 +3,53 @@ PROJECT(TDengine)
INCLUDE_DIRECTORIES
(
${
TD_COMMUNITY_DIR
}
/src/client/inc
)
INCLUDE_DIRECTORIES
(
${
TD_COMMUNITY_DIR
}
/src/client/inc
)
FIND_PACKAGE
(
Git
)
IF
(
GIT_FOUND
)
MESSAGE
(
"Git found"
)
EXECUTE_PROCESS
(
COMMAND
${
GIT_EXECUTABLE
}
log --pretty=oneline -n 1 ../src/kit/taosdemo/taosdemo.c
RESULT_VARIABLE RESULT
OUTPUT_VARIABLE TAOSDEMO_COMMIT
)
EXECUTE_PROCESS
(
COMMAND bash
"-c"
"echo '
${
TAOSDEMO_COMMIT
}
' | awk '{print $1}' | cut -c -9"
RESULT_VARIABLE RESULT
OUTPUT_VARIABLE TAOSDEMO_COMMIT_SHA1
)
EXECUTE_PROCESS
(
COMMAND
${
GIT_EXECUTABLE
}
status -z -s ../src/kit/taosdemo/taosdemo.c
RESULT_VARIABLE RESULT
OUTPUT_VARIABLE TAOSDEMO_STATUS
)
EXECUTE_PROCESS
(
COMMAND bash
"-c"
"echo '
${
TAOSDEMO_STATUS
}
' | awk '{print $1}'"
RESULT_VARIABLE RESULT
OUTPUT_VARIABLE TAOSDEMO_STATUS
)
MESSAGE
(
"taosdemo.c status: "
${
TAOSDEMO_STATUS
}
)
ELSE
()
MESSAGE
(
"Git not found"
)
SET
(
TAOSDEMO_COMMIT_SHA1
"unknown"
)
SET
(
TAOSDEMO_STATUS
"unknown"
)
ENDIF
(
GIT_FOUND
)
STRING
(
STRIP
${
TAOSDEMO_COMMIT_SHA1
}
TAOSDEMO_COMMIT_SHA1
)
MESSAGE
(
"taosdemo's latest commit in short is:"
${
TAOSDEMO_COMMIT_SHA1
}
)
STRING
(
STRIP
${
TAOSDEMO_STATUS
}
TAOSDEMO_STATUS
)
IF
(
TAOSDEMO_STATUS MATCHES
"M"
)
SET
(
TAOSDEMO_STATUS
"modified"
)
ELSE
()
SET
(
TAOSDEMO_STATUS
""
)
ENDIF
()
MESSAGE
(
"taosdemo's status is:"
${
TAOSDEMO_STATUS
}
)
ADD_DEFINITIONS
(
-DTAOSDEMO_COMMIT_SHA1=
"
${
TAOSDEMO_COMMIT_SHA1
}
"
)
ADD_DEFINITIONS
(
-DTAOSDEMO_STATUS=
"
${
TAOSDEMO_STATUS
}
"
)
MESSAGE
(
"VERNUMBER is:"
${
VERNUMBER
}
)
IF
(
VERNUMBER MATCHES
""
)
ADD_DEFINITIONS
(
-DTD_VERNUMBER=
"TDengie-version-unknown"
)
ELSE
()
ADD_DEFINITIONS
(
-DTD_VERNUMBER=
"
${
VERNUMBER
}
"
)
ENDIF
()
IF
(
TD_LINUX
)
IF
(
TD_LINUX
)
AUX_SOURCE_DIRECTORY
(
. SRC
)
AUX_SOURCE_DIRECTORY
(
. SRC
)
ADD_EXECUTABLE
(
taosdemo
${
SRC
}
)
ADD_EXECUTABLE
(
taosdemo
${
SRC
}
)
...
...
src/kit/taosdemo/taosdemo.c
浏览文件 @
1f08d25d
...
@@ -94,6 +94,7 @@ enum TEST_MODE {
...
@@ -94,6 +94,7 @@ enum TEST_MODE {
#define DEFAULT_TIMESTAMP_STEP 1
#define DEFAULT_TIMESTAMP_STEP 1
typedef
enum
CREATE_SUB_TALBE_MOD_EN
{
typedef
enum
CREATE_SUB_TALBE_MOD_EN
{
PRE_CREATE_SUBTBL
,
PRE_CREATE_SUBTBL
,
AUTO_CREATE_SUBTBL
,
AUTO_CREATE_SUBTBL
,
...
@@ -236,7 +237,7 @@ typedef struct SSuperTable_S {
...
@@ -236,7 +237,7 @@ typedef struct SSuperTable_S {
int
childTblOffset
;
int
childTblOffset
;
int
multiThreadWriteOneTbl
;
// 0: no, 1: yes
int
multiThreadWriteOneTbl
;
// 0: no, 1: yes
int
rowsPerTbl
;
//
int
interlaceRows
;
//
int
disorderRatio
;
// 0: no disorder, >0: x%
int
disorderRatio
;
// 0: no disorder, >0: x%
int
disorderRange
;
// ms or us by database precision
int
disorderRange
;
// ms or us by database precision
int
maxSqlLen
;
//
int
maxSqlLen
;
//
...
@@ -590,6 +591,32 @@ static FILE * g_fpOfInsertResult = NULL;
...
@@ -590,6 +591,32 @@ static FILE * g_fpOfInsertResult = NULL;
static
void
ERROR_EXIT
(
const
char
*
msg
)
{
perror
(
msg
);
exit
(
-
1
);
}
static
void
ERROR_EXIT
(
const
char
*
msg
)
{
perror
(
msg
);
exit
(
-
1
);
}
#ifndef TAOSDEMO_COMMIT_SHA1
#define TAOSDEMO_COMMIT_SHA1 "unknown"
#endif
#ifndef TD_VERNUMBER
#define TD_VERNUMBER "unknown"
#endif
#ifndef TAOSDEMO_STATUS
#define TAOSDEMO_STATUS "unknown"
#endif
static
void
printVersion
()
{
char
tdengine_ver
[]
=
TD_VERNUMBER
;
char
taosdemo_ver
[]
=
TAOSDEMO_COMMIT_SHA1
;
char
taosdemo_status
[]
=
TAOSDEMO_STATUS
;
if
(
strlen
(
taosdemo_status
)
==
0
)
{
printf
(
"taosdemo verison %s-%s
\n
"
,
tdengine_ver
,
taosdemo_ver
);
}
else
{
printf
(
"taosdemo verison %s-%s, status:%s
\n
"
,
tdengine_ver
,
taosdemo_ver
,
taosdemo_status
);
}
}
static
void
printHelp
()
{
static
void
printHelp
()
{
char
indent
[
10
]
=
" "
;
char
indent
[
10
]
=
" "
;
printf
(
"%s%s%s%s
\n
"
,
indent
,
"-f"
,
indent
,
printf
(
"%s%s%s%s
\n
"
,
indent
,
"-f"
,
indent
,
...
@@ -647,6 +674,8 @@ static void printHelp() {
...
@@ -647,6 +674,8 @@ static void printHelp() {
"Out of order data's range, ms, default is 1000."
);
"Out of order data's range, ms, default is 1000."
);
printf
(
"%s%s%s%s
\n
"
,
indent
,
"-g"
,
indent
,
printf
(
"%s%s%s%s
\n
"
,
indent
,
"-g"
,
indent
,
"Print debug info."
);
"Print debug info."
);
printf
(
"%s%s%s%s
\n
"
,
indent
,
"-V, --version"
,
indent
,
"Print version info."
);
/* printf("%s%s%s%s\n", indent, "-D", indent,
/* printf("%s%s%s%s\n", indent, "-D", indent,
"if elete database if exists. 0: no, 1: yes, default is 1");
"if elete database if exists. 0: no, 1: yes, default is 1");
*/
*/
...
@@ -788,6 +817,10 @@ static void parse_args(int argc, char *argv[], SArguments *arguments) {
...
@@ -788,6 +817,10 @@ static void parse_args(int argc, char *argv[], SArguments *arguments) {
||
arguments
->
method_of_delete
>
3
)
{
||
arguments
->
method_of_delete
>
3
)
{
arguments
->
method_of_delete
=
0
;
arguments
->
method_of_delete
=
0
;
}
}
}
else
if
((
strcmp
(
argv
[
i
],
"--version"
)
==
0
)
||
(
strcmp
(
argv
[
i
],
"-V"
)
==
0
)){
printVersion
();
exit
(
0
);
}
else
if
(
strcmp
(
argv
[
i
],
"--help"
)
==
0
)
{
}
else
if
(
strcmp
(
argv
[
i
],
"--help"
)
==
0
)
{
printHelp
();
printHelp
();
exit
(
0
);
exit
(
0
);
...
@@ -1166,8 +1199,8 @@ static int printfInsertMeta() {
...
@@ -1166,8 +1199,8 @@ static int printfInsertMeta() {
}
else
{
}
else
{
printf
(
" multiThreadWriteOneTbl:
\033
[33myes
\033
[0m
\n
"
);
printf
(
" multiThreadWriteOneTbl:
\033
[33myes
\033
[0m
\n
"
);
}
}
printf
(
"
rowsPerTbl:
\033
[33m%d
\033
[0m
\n
"
,
printf
(
"
interlaceRows:
\033
[33m%d
\033
[0m
\n
"
,
g_Dbs
.
db
[
i
].
superTbls
[
j
].
rowsPerTbl
);
g_Dbs
.
db
[
i
].
superTbls
[
j
].
interlaceRows
);
printf
(
" disorderRange:
\033
[33m%d
\033
[0m
\n
"
,
printf
(
" disorderRange:
\033
[33m%d
\033
[0m
\n
"
,
g_Dbs
.
db
[
i
].
superTbls
[
j
].
disorderRange
);
g_Dbs
.
db
[
i
].
superTbls
[
j
].
disorderRange
);
printf
(
" disorderRatio:
\033
[33m%d
\033
[0m
\n
"
,
printf
(
" disorderRatio:
\033
[33m%d
\033
[0m
\n
"
,
...
@@ -1328,7 +1361,7 @@ static void printfInsertMetaToFile(FILE* fp) {
...
@@ -1328,7 +1361,7 @@ static void printfInsertMetaToFile(FILE* fp) {
}
else
{
}
else
{
fprintf
(
fp
,
" multiThreadWriteOneTbl: yes
\n
"
);
fprintf
(
fp
,
" multiThreadWriteOneTbl: yes
\n
"
);
}
}
fprintf
(
fp
,
"
rowsPerTbl: %d
\n
"
,
g_Dbs
.
db
[
i
].
superTbls
[
j
].
rowsPerTbl
);
fprintf
(
fp
,
"
interlaceRows: %d
\n
"
,
g_Dbs
.
db
[
i
].
superTbls
[
j
].
interlaceRows
);
fprintf
(
fp
,
" disorderRange: %d
\n
"
,
g_Dbs
.
db
[
i
].
superTbls
[
j
].
disorderRange
);
fprintf
(
fp
,
" disorderRange: %d
\n
"
,
g_Dbs
.
db
[
i
].
superTbls
[
j
].
disorderRange
);
fprintf
(
fp
,
" disorderRatio: %d
\n
"
,
g_Dbs
.
db
[
i
].
superTbls
[
j
].
disorderRatio
);
fprintf
(
fp
,
" disorderRatio: %d
\n
"
,
g_Dbs
.
db
[
i
].
superTbls
[
j
].
disorderRatio
);
fprintf
(
fp
,
" maxSqlLen: %d
\n
"
,
g_Dbs
.
db
[
i
].
superTbls
[
j
].
maxSqlLen
);
fprintf
(
fp
,
" maxSqlLen: %d
\n
"
,
g_Dbs
.
db
[
i
].
superTbls
[
j
].
maxSqlLen
);
...
@@ -2540,8 +2573,8 @@ static void* createTable(void *sarg)
...
@@ -2540,8 +2573,8 @@ static void* createTable(void *sarg)
len
=
0
;
len
=
0
;
verbosePrint
(
"%s() LN%d %s
\n
"
,
__func__
,
__LINE__
,
buffer
);
verbosePrint
(
"%s() LN%d %s
\n
"
,
__func__
,
__LINE__
,
buffer
);
if
(
0
!=
queryDbExec
(
winfo
->
taos
,
buffer
,
NO_INSERT_TYPE
)){
if
(
0
!=
queryDbExec
(
winfo
->
taos
,
buffer
,
NO_INSERT_TYPE
)){
free
(
buffer
);
errorPrint
(
"queryDbExec() failed. buffer:
\n
%s
\n
"
,
buffer
);
errorPrint
(
"queryDbExec() failed. buffer:
\n
%s
\n
"
,
buffer
);
free
(
buffer
);
return
NULL
;
return
NULL
;
}
}
...
@@ -3028,9 +3061,10 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
...
@@ -3028,9 +3061,10 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
if
(
threads2
&&
threads2
->
type
==
cJSON_Number
)
{
if
(
threads2
&&
threads2
->
type
==
cJSON_Number
)
{
g_Dbs
.
threadCountByCreateTbl
=
threads2
->
valueint
;
g_Dbs
.
threadCountByCreateTbl
=
threads2
->
valueint
;
}
else
if
(
!
threads2
)
{
}
else
if
(
!
threads2
)
{
g_Dbs
.
threadCountByCreateTbl
=
1
;
g_Dbs
.
threadCountByCreateTbl
=
g_args
.
num_of_threads
;
}
else
{
}
else
{
printf
(
"ERROR: failed to read json, threads2 not found
\n
"
);
errorPrint
(
"%s() LN%d, failed to read json, threads2 not found
\n
"
,
__func__
,
__LINE__
);
goto
PARSE_OVER
;
goto
PARSE_OVER
;
}
}
...
@@ -3545,13 +3579,15 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
...
@@ -3545,13 +3579,15 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
goto
PARSE_OVER
;
goto
PARSE_OVER
;
}
}
cJSON
*
rowsPerTbl
=
cJSON_GetObjectItem
(
stbInfo
,
"interlace_rows"
);
cJSON
*
interlaceRows
=
cJSON_GetObjectItem
(
stbInfo
,
"interlace_rows"
);
if
(
rowsPerTbl
&&
rowsPerTbl
->
type
==
cJSON_Number
)
{
if
(
interlaceRows
&&
interlaceRows
->
type
==
cJSON_Number
)
{
g_Dbs
.
db
[
i
].
superTbls
[
j
].
rowsPerTbl
=
rowsPerTbl
->
valueint
;
g_Dbs
.
db
[
i
].
superTbls
[
j
].
interlaceRows
=
interlaceRows
->
valueint
;
}
else
if
(
!
rowsPerTbl
)
{
}
else
if
(
!
interlaceRows
)
{
g_Dbs
.
db
[
i
].
superTbls
[
j
].
rowsPerTbl
=
0
;
// 0 means progressive mode, > 0 mean interlace mode. max value is less or equ num_of_records_per_req
g_Dbs
.
db
[
i
].
superTbls
[
j
].
interlaceRows
=
0
;
// 0 means progressive mode, > 0 mean interlace mode. max value is less or equ num_of_records_per_req
}
else
{
}
else
{
errorPrint
(
"%s() LN%d, failed to read json, rowsPerTbl input mistake
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s() LN%d, failed to read json, interlace rows input mistake
\n
"
,
__func__
,
__LINE__
);
goto
PARSE_OVER
;
goto
PARSE_OVER
;
}
}
...
@@ -4472,17 +4508,17 @@ static void* syncWriteInterlace(threadInfo *pThreadInfo) {
...
@@ -4472,17 +4508,17 @@ static void* syncWriteInterlace(threadInfo *pThreadInfo) {
int
insertMode
;
int
insertMode
;
char
tableName
[
TSDB_TABLE_NAME_LEN
];
char
tableName
[
TSDB_TABLE_NAME_LEN
];
int
rowsPerTbl
=
superTblInfo
?
superTblInfo
->
rowsPerTbl
:
g_args
.
interlace_rows
;
int
interlaceRows
=
superTblInfo
?
superTblInfo
->
interlaceRows
:
g_args
.
interlace_rows
;
if
(
rowsPerTbl
>
0
)
{
if
(
interlaceRows
>
0
)
{
insertMode
=
INTERLACE_INSERT_MODE
;
insertMode
=
INTERLACE_INSERT_MODE
;
}
else
{
}
else
{
insertMode
=
PROGRESSIVE_INSERT_MODE
;
insertMode
=
PROGRESSIVE_INSERT_MODE
;
}
}
// rows per table need be less than insert batch
// rows per table need be less than insert batch
if
(
rowsPerTbl
>
g_args
.
num_of_RPR
)
if
(
interlaceRows
>
g_args
.
num_of_RPR
)
rowsPerTbl
=
g_args
.
num_of_RPR
;
interlaceRows
=
g_args
.
num_of_RPR
;
pThreadInfo
->
totalInsertRows
=
0
;
pThreadInfo
->
totalInsertRows
=
0
;
pThreadInfo
->
totalAffectedRows
=
0
;
pThreadInfo
->
totalAffectedRows
=
0
;
...
@@ -4510,13 +4546,13 @@ static void* syncWriteInterlace(threadInfo *pThreadInfo) {
...
@@ -4510,13 +4546,13 @@ static void* syncWriteInterlace(threadInfo *pThreadInfo) {
assert
(
pThreadInfo
->
ntables
>
0
);
assert
(
pThreadInfo
->
ntables
>
0
);
if
(
rowsPerTbl
>
g_args
.
num_of_RPR
)
if
(
interlaceRows
>
g_args
.
num_of_RPR
)
rowsPerTbl
=
g_args
.
num_of_RPR
;
interlaceRows
=
g_args
.
num_of_RPR
;
batchPerTbl
=
rowsPerTbl
;
batchPerTbl
=
interlaceRows
;
if
((
rowsPerTbl
>
0
)
&&
(
pThreadInfo
->
ntables
>
1
))
{
if
((
interlaceRows
>
0
)
&&
(
pThreadInfo
->
ntables
>
1
))
{
batchPerTblTimes
=
batchPerTblTimes
=
(
g_args
.
num_of_RPR
/
(
rowsPerTbl
*
pThreadInfo
->
ntables
))
+
1
;
(
g_args
.
num_of_RPR
/
(
interlaceRows
*
pThreadInfo
->
ntables
))
+
1
;
}
else
{
}
else
{
batchPerTblTimes
=
1
;
batchPerTblTimes
=
1
;
}
}
...
@@ -4797,9 +4833,9 @@ static void* syncWrite(void *sarg) {
...
@@ -4797,9 +4833,9 @@ static void* syncWrite(void *sarg) {
threadInfo
*
winfo
=
(
threadInfo
*
)
sarg
;
threadInfo
*
winfo
=
(
threadInfo
*
)
sarg
;
SSuperTable
*
superTblInfo
=
winfo
->
superTblInfo
;
SSuperTable
*
superTblInfo
=
winfo
->
superTblInfo
;
int
rowsPerTbl
=
superTblInfo
?
superTblInfo
->
rowsPerTbl
:
g_args
.
interlace_rows
;
int
interlaceRows
=
superTblInfo
?
superTblInfo
->
interlaceRows
:
g_args
.
interlace_rows
;
if
(
rowsPerTbl
>
0
)
{
if
(
interlaceRows
>
0
)
{
// interlace mode
// interlace mode
return
syncWriteInterlace
(
winfo
);
return
syncWriteInterlace
(
winfo
);
}
else
{
}
else
{
...
@@ -4876,7 +4912,7 @@ static void *asyncWrite(void *sarg) {
...
@@ -4876,7 +4912,7 @@ static void *asyncWrite(void *sarg) {
winfo
->
et
=
0
;
winfo
->
et
=
0
;
winfo
->
lastTs
=
winfo
->
start_time
;
winfo
->
lastTs
=
winfo
->
start_time
;
int
insert_interval
=
int
insert_interval
=
superTblInfo
?
superTblInfo
->
insertInterval
:
g_args
.
insert_interval
;
superTblInfo
?
superTblInfo
->
insertInterval
:
g_args
.
insert_interval
;
if
(
insert_interval
)
{
if
(
insert_interval
)
{
winfo
->
st
=
taosGetTimestampUs
();
winfo
->
st
=
taosGetTimestampUs
();
...
@@ -4941,12 +4977,12 @@ static void startMultiThreadInsertData(int threads, char* db_name,
...
@@ -4941,12 +4977,12 @@ static void startMultiThreadInsertData(int threads, char* db_name,
}
else
if
(
0
==
strncasecmp
(
precision
,
"us"
,
2
))
{
}
else
if
(
0
==
strncasecmp
(
precision
,
"us"
,
2
))
{
timePrec
=
TSDB_TIME_PRECISION_MICRO
;
timePrec
=
TSDB_TIME_PRECISION_MICRO
;
}
else
{
}
else
{
errorPrint
(
"No
support precision: %s
\n
"
,
precision
);
errorPrint
(
"Not
support precision: %s
\n
"
,
precision
);
exit
(
-
1
);
exit
(
-
1
);
}
}
}
}
int64_t
start_time
;
int64_t
start_time
;
if
(
superTblInfo
)
{
if
(
superTblInfo
)
{
if
(
0
==
strncasecmp
(
superTblInfo
->
startTimestamp
,
"now"
,
3
))
{
if
(
0
==
strncasecmp
(
superTblInfo
->
startTimestamp
,
"now"
,
3
))
{
start_time
=
taosGetTimestamp
(
timePrec
);
start_time
=
taosGetTimestamp
(
timePrec
);
...
@@ -4973,19 +5009,21 @@ static void startMultiThreadInsertData(int threads, char* db_name,
...
@@ -4973,19 +5009,21 @@ static void startMultiThreadInsertData(int threads, char* db_name,
startFrom
=
0
;
startFrom
=
0
;
// read sample data from file first
// read sample data from file first
if
((
superTblInfo
)
&&
(
0
==
strncasecmp
(
superTblInfo
->
dataSource
,
if
((
superTblInfo
)
&&
(
0
==
strncasecmp
(
superTblInfo
->
dataSource
,
"sample"
,
strlen
(
"sample"
))))
{
"sample"
,
strlen
(
"sample"
))))
{
if
(
0
!=
prepareSampleDataForSTable
(
superTblInfo
))
{
if
(
0
!=
prepareSampleDataForSTable
(
superTblInfo
))
{
errorPrint
(
"%s() LN%d, prepare sample data for stable failed!
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s() LN%d, prepare sample data for stable failed!
\n
"
,
__func__
,
__LINE__
);
exit
(
-
1
);
exit
(
-
1
);
}
}
}
}
// read sample data from file first
// read sample data from file first
if
((
superTblInfo
)
&&
(
0
==
strncasecmp
(
superTblInfo
->
dataSource
,
if
((
superTblInfo
)
&&
(
0
==
strncasecmp
(
superTblInfo
->
dataSource
,
"sample"
,
strlen
(
"sample"
))))
{
"sample"
,
strlen
(
"sample"
))))
{
if
(
0
!=
prepareSampleDataForSTable
(
superTblInfo
))
{
if
(
0
!=
prepareSampleDataForSTable
(
superTblInfo
))
{
errorPrint
(
"%s() LN%d, prepare sample data for stable failed!
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s() LN%d, prepare sample data for stable failed!
\n
"
,
__func__
,
__LINE__
);
exit
(
-
1
);
exit
(
-
1
);
}
}
}
}
...
@@ -5045,7 +5083,8 @@ static void startMultiThreadInsertData(int threads, char* db_name,
...
@@ -5045,7 +5083,8 @@ static void startMultiThreadInsertData(int threads, char* db_name,
g_Dbs
.
host
,
g_Dbs
.
user
,
g_Dbs
.
host
,
g_Dbs
.
user
,
g_Dbs
.
password
,
db_name
,
g_Dbs
.
port
);
g_Dbs
.
password
,
db_name
,
g_Dbs
.
port
);
if
(
NULL
==
t_info
->
taos
)
{
if
(
NULL
==
t_info
->
taos
)
{
errorPrint
(
"connect to server fail from insert sub thread, reason: %s
\n
"
,
errorPrint
(
"connect to server fail from insert sub thread, reason: %s
\n
"
,
taos_errstr
(
NULL
));
taos_errstr
(
NULL
));
exit
(
-
1
);
exit
(
-
1
);
}
}
...
@@ -5144,7 +5183,7 @@ static void startMultiThreadInsertData(int threads, char* db_name,
...
@@ -5144,7 +5183,7 @@ static void startMultiThreadInsertData(int threads, char* db_name,
avgDelay
/
1000
.
0
,
(
double
)
maxDelay
/
1000
.
0
,
(
double
)
minDelay
/
1000
.
0
);
avgDelay
/
1000
.
0
,
(
double
)
maxDelay
/
1000
.
0
,
(
double
)
minDelay
/
1000
.
0
);
fprintf
(
g_fpOfInsertResult
,
"insert delay, avg:%10.6fms, max: %10.6fms, min: %10.6fms
\n\n
"
,
fprintf
(
g_fpOfInsertResult
,
"insert delay, avg:%10.6fms, max: %10.6fms, min: %10.6fms
\n\n
"
,
avgDelay
/
1000
.
0
,
(
double
)
maxDelay
/
1000
.
0
,
(
double
)
minDelay
/
1000
.
0
);
avgDelay
/
1000
.
0
,
(
double
)
maxDelay
/
1000
.
0
,
(
double
)
minDelay
/
1000
.
0
);
//taos_close(taos);
//taos_close(taos);
free
(
pids
);
free
(
pids
);
...
@@ -5187,7 +5226,8 @@ static void *readTable(void *sarg) {
...
@@ -5187,7 +5226,8 @@ static void *readTable(void *sarg) {
double
totalT
=
0
;
double
totalT
=
0
;
int
count
=
0
;
int
count
=
0
;
for
(
int
i
=
0
;
i
<
num_of_tables
;
i
++
)
{
for
(
int
i
=
0
;
i
<
num_of_tables
;
i
++
)
{
sprintf
(
command
,
"select %s from %s%d where ts>= %"
PRId64
,
aggreFunc
[
j
],
tb_prefix
,
i
,
sTime
);
sprintf
(
command
,
"select %s from %s%d where ts>= %"
PRId64
,
aggreFunc
[
j
],
tb_prefix
,
i
,
sTime
);
double
t
=
getCurrentTime
();
double
t
=
getCurrentTime
();
TAOS_RES
*
pSql
=
taos_query
(
taos
,
command
);
TAOS_RES
*
pSql
=
taos_query
(
taos
,
command
);
...
@@ -5340,10 +5380,10 @@ static int insertTestProcess() {
...
@@ -5340,10 +5380,10 @@ static int insertTestProcess() {
if
(
g_totalChildTables
>
0
)
{
if
(
g_totalChildTables
>
0
)
{
printf
(
"Spent %.4f seconds to create %d tables with %d thread(s)
\n\n
"
,
printf
(
"Spent %.4f seconds to create %d tables with %d thread(s)
\n\n
"
,
end
-
start
,
g_totalChildTables
,
g_Dbs
.
threadCount
);
end
-
start
,
g_totalChildTables
,
g_Dbs
.
threadCount
ByCreateTbl
);
fprintf
(
g_fpOfInsertResult
,
fprintf
(
g_fpOfInsertResult
,
"Spent %.4f seconds to create %d tables with %d thread(s)
\n\n
"
,
"Spent %.4f seconds to create %d tables with %d thread(s)
\n\n
"
,
end
-
start
,
g_totalChildTables
,
g_Dbs
.
threadCount
);
end
-
start
,
g_totalChildTables
,
g_Dbs
.
threadCount
ByCreateTbl
);
}
}
taosMsleep
(
1000
);
taosMsleep
(
1000
);
...
@@ -5394,7 +5434,10 @@ static void *superQueryProcess(void *sarg) {
...
@@ -5394,7 +5434,10 @@ static void *superQueryProcess(void *sarg) {
int64_t
st
=
0
;
int64_t
st
=
0
;
int64_t
et
=
0
;
int64_t
et
=
0
;
while
(
1
)
{
int
queryTimes
=
g_args
.
query_times
;
while
(
queryTimes
--
)
{
if
(
g_queryInfo
.
superQueryInfo
.
rate
&&
(
et
-
st
)
<
if
(
g_queryInfo
.
superQueryInfo
.
rate
&&
(
et
-
st
)
<
(
int64_t
)
g_queryInfo
.
superQueryInfo
.
rate
*
1000
)
{
(
int64_t
)
g_queryInfo
.
superQueryInfo
.
rate
*
1000
)
{
taosMsleep
(
g_queryInfo
.
superQueryInfo
.
rate
*
1000
-
(
et
-
st
));
// ms
taosMsleep
(
g_queryInfo
.
superQueryInfo
.
rate
*
1000
-
(
et
-
st
));
// ms
...
@@ -5464,7 +5507,7 @@ static void *subQueryProcess(void *sarg) {
...
@@ -5464,7 +5507,7 @@ static void *subQueryProcess(void *sarg) {
int64_t
et
=
(
int64_t
)
g_queryInfo
.
subQueryInfo
.
rate
*
1000
;
int64_t
et
=
(
int64_t
)
g_queryInfo
.
subQueryInfo
.
rate
*
1000
;
int
queryTimes
=
g_args
.
query_times
;
int
queryTimes
=
g_args
.
query_times
;
while
(
queryTimes
--
)
{
while
(
queryTimes
--
)
{
if
(
g_queryInfo
.
subQueryInfo
.
rate
if
(
g_queryInfo
.
subQueryInfo
.
rate
&&
(
et
-
st
)
<
(
int64_t
)
g_queryInfo
.
subQueryInfo
.
rate
*
1000
)
{
&&
(
et
-
st
)
<
(
int64_t
)
g_queryInfo
.
subQueryInfo
.
rate
*
1000
)
{
taosMsleep
(
g_queryInfo
.
subQueryInfo
.
rate
*
1000
-
(
et
-
st
));
// ms
taosMsleep
(
g_queryInfo
.
subQueryInfo
.
rate
*
1000
-
(
et
-
st
));
// ms
...
@@ -5509,7 +5552,8 @@ static int queryTestProcess() {
...
@@ -5509,7 +5552,8 @@ static int queryTestProcess() {
NULL
,
NULL
,
g_queryInfo
.
port
);
g_queryInfo
.
port
);
if
(
taos
==
NULL
)
{
if
(
taos
==
NULL
)
{
errorPrint
(
"Failed to connect to TDengine, reason:%s
\n
"
,
taos_errstr
(
NULL
));
errorPrint
(
"Failed to connect to TDengine, reason:%s
\n
"
,
taos_errstr
(
NULL
));
exit
(
-
1
);
exit
(
-
1
);
}
}
...
@@ -5830,7 +5874,8 @@ static int subscribeTestProcess() {
...
@@ -5830,7 +5874,8 @@ static int subscribeTestProcess() {
g_queryInfo
.
dbName
,
g_queryInfo
.
dbName
,
g_queryInfo
.
port
);
g_queryInfo
.
port
);
if
(
taos
==
NULL
)
{
if
(
taos
==
NULL
)
{
errorPrint
(
"Failed to connect to TDengine, reason:%s
\n
"
,
taos_errstr
(
NULL
));
errorPrint
(
"Failed to connect to TDengine, reason:%s
\n
"
,
taos_errstr
(
NULL
));
exit
(
-
1
);
exit
(
-
1
);
}
}
...
@@ -5961,15 +6006,15 @@ static void setParaFromArg(){
...
@@ -5961,15 +6006,15 @@ static void setParaFromArg(){
if
(
g_args
.
user
)
{
if
(
g_args
.
user
)
{
strcpy
(
g_Dbs
.
user
,
g_args
.
user
);
strcpy
(
g_Dbs
.
user
,
g_args
.
user
);
}
}
if
(
g_args
.
password
)
{
if
(
g_args
.
password
)
{
strcpy
(
g_Dbs
.
password
,
g_args
.
password
);
strcpy
(
g_Dbs
.
password
,
g_args
.
password
);
}
}
if
(
g_args
.
port
)
{
if
(
g_args
.
port
)
{
g_Dbs
.
port
=
g_args
.
port
;
g_Dbs
.
port
=
g_args
.
port
;
}
}
g_Dbs
.
threadCount
=
g_args
.
num_of_threads
;
g_Dbs
.
threadCount
=
g_args
.
num_of_threads
;
g_Dbs
.
threadCountByCreateTbl
=
g_args
.
num_of_threads
;
g_Dbs
.
threadCountByCreateTbl
=
g_args
.
num_of_threads
;
...
@@ -5990,11 +6035,11 @@ static void setParaFromArg(){
...
@@ -5990,11 +6035,11 @@ static void setParaFromArg(){
char
dataString
[
STRING_LEN
];
char
dataString
[
STRING_LEN
];
char
**
data_type
=
g_args
.
datatype
;
char
**
data_type
=
g_args
.
datatype
;
memset
(
dataString
,
0
,
STRING_LEN
);
memset
(
dataString
,
0
,
STRING_LEN
);
if
(
strcasecmp
(
data_type
[
0
],
"BINARY"
)
==
0
if
(
strcasecmp
(
data_type
[
0
],
"BINARY"
)
==
0
||
strcasecmp
(
data_type
[
0
],
"BOOL"
)
==
0
||
strcasecmp
(
data_type
[
0
],
"BOOL"
)
==
0
||
strcasecmp
(
data_type
[
0
],
"NCHAR"
)
==
0
)
{
||
strcasecmp
(
data_type
[
0
],
"NCHAR"
)
==
0
)
{
g_Dbs
.
do_aggreFunc
=
false
;
g_Dbs
.
do_aggreFunc
=
false
;
}
}
...
@@ -6004,7 +6049,7 @@ static void setParaFromArg(){
...
@@ -6004,7 +6049,7 @@ static void setParaFromArg(){
tstrncpy
(
g_Dbs
.
db
[
0
].
superTbls
[
0
].
sTblName
,
"meters"
,
MAX_TB_NAME_SIZE
);
tstrncpy
(
g_Dbs
.
db
[
0
].
superTbls
[
0
].
sTblName
,
"meters"
,
MAX_TB_NAME_SIZE
);
g_Dbs
.
db
[
0
].
superTbls
[
0
].
childTblCount
=
g_args
.
num_of_tables
;
g_Dbs
.
db
[
0
].
superTbls
[
0
].
childTblCount
=
g_args
.
num_of_tables
;
g_Dbs
.
threadCount
=
g_args
.
num_of_threads
;
g_Dbs
.
threadCount
=
g_args
.
num_of_threads
;
g_Dbs
.
threadCountByCreateTbl
=
1
;
g_Dbs
.
threadCountByCreateTbl
=
g_args
.
num_of_threads
;
g_Dbs
.
queryMode
=
g_args
.
mode
;
g_Dbs
.
queryMode
=
g_args
.
mode
;
g_Dbs
.
db
[
0
].
superTbls
[
0
].
autoCreateTable
=
PRE_CREATE_SUBTBL
;
g_Dbs
.
db
[
0
].
superTbls
[
0
].
autoCreateTable
=
PRE_CREATE_SUBTBL
;
...
@@ -6012,14 +6057,14 @@ static void setParaFromArg(){
...
@@ -6012,14 +6057,14 @@ static void setParaFromArg(){
g_Dbs
.
db
[
0
].
superTbls
[
0
].
childTblExists
=
TBL_NO_EXISTS
;
g_Dbs
.
db
[
0
].
superTbls
[
0
].
childTblExists
=
TBL_NO_EXISTS
;
g_Dbs
.
db
[
0
].
superTbls
[
0
].
disorderRange
=
g_args
.
disorderRange
;
g_Dbs
.
db
[
0
].
superTbls
[
0
].
disorderRange
=
g_args
.
disorderRange
;
g_Dbs
.
db
[
0
].
superTbls
[
0
].
disorderRatio
=
g_args
.
disorderRatio
;
g_Dbs
.
db
[
0
].
superTbls
[
0
].
disorderRatio
=
g_args
.
disorderRatio
;
tstrncpy
(
g_Dbs
.
db
[
0
].
superTbls
[
0
].
childTblPrefix
,
tstrncpy
(
g_Dbs
.
db
[
0
].
superTbls
[
0
].
childTblPrefix
,
g_args
.
tb_prefix
,
MAX_TB_NAME_SIZE
);
g_args
.
tb_prefix
,
MAX_TB_NAME_SIZE
);
tstrncpy
(
g_Dbs
.
db
[
0
].
superTbls
[
0
].
dataSource
,
"rand"
,
MAX_TB_NAME_SIZE
);
tstrncpy
(
g_Dbs
.
db
[
0
].
superTbls
[
0
].
dataSource
,
"rand"
,
MAX_TB_NAME_SIZE
);
tstrncpy
(
g_Dbs
.
db
[
0
].
superTbls
[
0
].
insertMode
,
"taosc"
,
MAX_TB_NAME_SIZE
);
tstrncpy
(
g_Dbs
.
db
[
0
].
superTbls
[
0
].
insertMode
,
"taosc"
,
MAX_TB_NAME_SIZE
);
tstrncpy
(
g_Dbs
.
db
[
0
].
superTbls
[
0
].
startTimestamp
,
tstrncpy
(
g_Dbs
.
db
[
0
].
superTbls
[
0
].
startTimestamp
,
"2017-07-14 10:40:00.000"
,
MAX_TB_NAME_SIZE
);
"2017-07-14 10:40:00.000"
,
MAX_TB_NAME_SIZE
);
g_Dbs
.
db
[
0
].
superTbls
[
0
].
timeStampStep
=
DEFAULT_TIMESTAMP_STEP
;
g_Dbs
.
db
[
0
].
superTbls
[
0
].
timeStampStep
=
DEFAULT_TIMESTAMP_STEP
;
g_Dbs
.
db
[
0
].
superTbls
[
0
].
insertRows
=
g_args
.
num_of_DPT
;
g_Dbs
.
db
[
0
].
superTbls
[
0
].
insertRows
=
g_args
.
num_of_DPT
;
g_Dbs
.
db
[
0
].
superTbls
[
0
].
maxSqlLen
=
TSDB_PAYLOAD_SIZE
;
g_Dbs
.
db
[
0
].
superTbls
[
0
].
maxSqlLen
=
TSDB_PAYLOAD_SIZE
;
...
@@ -6029,31 +6074,31 @@ static void setParaFromArg(){
...
@@ -6029,31 +6074,31 @@ static void setParaFromArg(){
break
;
break
;
}
}
tstrncpy
(
g_Dbs
.
db
[
0
].
superTbls
[
0
].
columns
[
i
].
dataType
,
tstrncpy
(
g_Dbs
.
db
[
0
].
superTbls
[
0
].
columns
[
i
].
dataType
,
data_type
[
i
],
MAX_TB_NAME_SIZE
);
data_type
[
i
],
MAX_TB_NAME_SIZE
);
g_Dbs
.
db
[
0
].
superTbls
[
0
].
columns
[
i
].
dataLen
=
g_args
.
len_of_binary
;
g_Dbs
.
db
[
0
].
superTbls
[
0
].
columns
[
i
].
dataLen
=
g_args
.
len_of_binary
;
g_Dbs
.
db
[
0
].
superTbls
[
0
].
columnCount
++
;
g_Dbs
.
db
[
0
].
superTbls
[
0
].
columnCount
++
;
}
}
if
(
g_Dbs
.
db
[
0
].
superTbls
[
0
].
columnCount
>
g_args
.
num_of_CPR
)
{
if
(
g_Dbs
.
db
[
0
].
superTbls
[
0
].
columnCount
>
g_args
.
num_of_CPR
)
{
g_Dbs
.
db
[
0
].
superTbls
[
0
].
columnCount
=
g_args
.
num_of_CPR
;
g_Dbs
.
db
[
0
].
superTbls
[
0
].
columnCount
=
g_args
.
num_of_CPR
;
}
else
{
}
else
{
for
(
int
i
=
g_Dbs
.
db
[
0
].
superTbls
[
0
].
columnCount
;
i
<
g_args
.
num_of_CPR
;
i
++
)
{
for
(
int
i
=
g_Dbs
.
db
[
0
].
superTbls
[
0
].
columnCount
;
i
<
g_args
.
num_of_CPR
;
i
++
)
{
tstrncpy
(
g_Dbs
.
db
[
0
].
superTbls
[
0
].
columns
[
i
].
dataType
,
"INT"
,
MAX_TB_NAME_SIZE
);
tstrncpy
(
g_Dbs
.
db
[
0
].
superTbls
[
0
].
columns
[
i
].
dataType
,
"INT"
,
MAX_TB_NAME_SIZE
);
g_Dbs
.
db
[
0
].
superTbls
[
0
].
columns
[
i
].
dataLen
=
0
;
g_Dbs
.
db
[
0
].
superTbls
[
0
].
columns
[
i
].
dataLen
=
0
;
g_Dbs
.
db
[
0
].
superTbls
[
0
].
columnCount
++
;
g_Dbs
.
db
[
0
].
superTbls
[
0
].
columnCount
++
;
}
}
}
}
tstrncpy
(
g_Dbs
.
db
[
0
].
superTbls
[
0
].
tags
[
0
].
dataType
,
"INT"
,
MAX_TB_NAME_SIZE
);
tstrncpy
(
g_Dbs
.
db
[
0
].
superTbls
[
0
].
tags
[
0
].
dataType
,
"INT"
,
MAX_TB_NAME_SIZE
);
g_Dbs
.
db
[
0
].
superTbls
[
0
].
tags
[
0
].
dataLen
=
0
;
g_Dbs
.
db
[
0
].
superTbls
[
0
].
tags
[
0
].
dataLen
=
0
;
tstrncpy
(
g_Dbs
.
db
[
0
].
superTbls
[
0
].
tags
[
1
].
dataType
,
"BINARY"
,
MAX_TB_NAME_SIZE
);
tstrncpy
(
g_Dbs
.
db
[
0
].
superTbls
[
0
].
tags
[
1
].
dataType
,
"BINARY"
,
MAX_TB_NAME_SIZE
);
g_Dbs
.
db
[
0
].
superTbls
[
0
].
tags
[
1
].
dataLen
=
g_args
.
len_of_binary
;
g_Dbs
.
db
[
0
].
superTbls
[
0
].
tags
[
1
].
dataLen
=
g_args
.
len_of_binary
;
g_Dbs
.
db
[
0
].
superTbls
[
0
].
tagCount
=
2
;
g_Dbs
.
db
[
0
].
superTbls
[
0
].
tagCount
=
2
;
}
else
{
}
else
{
g_Dbs
.
threadCountByCreateTbl
=
1
;
g_Dbs
.
threadCountByCreateTbl
=
g_args
.
num_of_threads
;
g_Dbs
.
db
[
0
].
superTbls
[
0
].
tagCount
=
0
;
g_Dbs
.
db
[
0
].
superTbls
[
0
].
tagCount
=
0
;
}
}
}
}
...
@@ -6185,7 +6230,7 @@ static void queryResult() {
...
@@ -6185,7 +6230,7 @@ static void queryResult() {
rInfo
->
ntables
=
g_Dbs
.
db
[
0
].
superTbls
[
0
].
childTblCount
;
rInfo
->
ntables
=
g_Dbs
.
db
[
0
].
superTbls
[
0
].
childTblCount
;
rInfo
->
end_table_to
=
g_Dbs
.
db
[
0
].
superTbls
[
0
].
childTblCount
-
1
;
rInfo
->
end_table_to
=
g_Dbs
.
db
[
0
].
superTbls
[
0
].
childTblCount
-
1
;
rInfo
->
superTblInfo
=
&
g_Dbs
.
db
[
0
].
superTbls
[
0
];
rInfo
->
superTblInfo
=
&
g_Dbs
.
db
[
0
].
superTbls
[
0
];
strcpy
(
rInfo
->
tb_prefix
,
strcpy
(
rInfo
->
tb_prefix
,
g_Dbs
.
db
[
0
].
superTbls
[
0
].
childTblPrefix
);
g_Dbs
.
db
[
0
].
superTbls
[
0
].
childTblPrefix
);
}
else
{
}
else
{
rInfo
->
ntables
=
g_args
.
num_of_tables
;
rInfo
->
ntables
=
g_args
.
num_of_tables
;
...
@@ -6194,13 +6239,14 @@ static void queryResult() {
...
@@ -6194,13 +6239,14 @@ static void queryResult() {
}
}
rInfo
->
taos
=
taos_connect
(
rInfo
->
taos
=
taos_connect
(
g_Dbs
.
host
,
g_Dbs
.
host
,
g_Dbs
.
user
,
g_Dbs
.
user
,
g_Dbs
.
password
,
g_Dbs
.
password
,
g_Dbs
.
db
[
0
].
dbName
,
g_Dbs
.
db
[
0
].
dbName
,
g_Dbs
.
port
);
g_Dbs
.
port
);
if
(
rInfo
->
taos
==
NULL
)
{
if
(
rInfo
->
taos
==
NULL
)
{
errorPrint
(
"Failed to connect to TDengine, reason:%s
\n
"
,
taos_errstr
(
NULL
));
errorPrint
(
"Failed to connect to TDengine, reason:%s
\n
"
,
taos_errstr
(
NULL
));
free
(
rInfo
);
free
(
rInfo
);
exit
(
-
1
);
exit
(
-
1
);
}
}
...
...
src/rpc/src/rpcMain.c
浏览文件 @
1f08d25d
...
@@ -1017,6 +1017,13 @@ static SRpcConn *rpcProcessMsgHead(SRpcInfo *pRpc, SRecvInfo *pRecv, SRpcReqCont
...
@@ -1017,6 +1017,13 @@ static SRpcConn *rpcProcessMsgHead(SRpcInfo *pRpc, SRecvInfo *pRecv, SRpcReqCont
return
pConn
;
return
pConn
;
}
}
static
void
doRpcReportBrokenLinkToServer
(
void
*
param
,
void
*
id
)
{
SRpcMsg
*
pRpcMsg
=
(
SRpcMsg
*
)(
param
);
SRpcConn
*
pConn
=
(
SRpcConn
*
)(
pRpcMsg
->
handle
);
SRpcInfo
*
pRpc
=
pConn
->
pRpc
;
(
*
(
pRpc
->
cfp
))(
pRpcMsg
,
NULL
);
free
(
pRpcMsg
);
}
static
void
rpcReportBrokenLinkToServer
(
SRpcConn
*
pConn
)
{
static
void
rpcReportBrokenLinkToServer
(
SRpcConn
*
pConn
)
{
SRpcInfo
*
pRpc
=
pConn
->
pRpc
;
SRpcInfo
*
pRpc
=
pConn
->
pRpc
;
if
(
pConn
->
pReqMsg
==
NULL
)
return
;
if
(
pConn
->
pReqMsg
==
NULL
)
return
;
...
@@ -1025,16 +1032,20 @@ static void rpcReportBrokenLinkToServer(SRpcConn *pConn) {
...
@@ -1025,16 +1032,20 @@ static void rpcReportBrokenLinkToServer(SRpcConn *pConn) {
rpcAddRef
(
pRpc
);
rpcAddRef
(
pRpc
);
tDebug
(
"%s, notify the server app, connection is gone"
,
pConn
->
info
);
tDebug
(
"%s, notify the server app, connection is gone"
,
pConn
->
info
);
SRpcMsg
rpcMsg
;
SRpcMsg
*
rpcMsg
=
malloc
(
sizeof
(
SRpcMsg
))
;
rpcMsg
.
pCont
=
pConn
->
pReqMsg
;
// pReqMsg is re-used to store the APP context from server
rpcMsg
->
pCont
=
pConn
->
pReqMsg
;
// pReqMsg is re-used to store the APP context from server
rpcMsg
.
contLen
=
pConn
->
reqMsgLen
;
// reqMsgLen is re-used to store the APP context length
rpcMsg
->
contLen
=
pConn
->
reqMsgLen
;
// reqMsgLen is re-used to store the APP context length
rpcMsg
.
ahandle
=
pConn
->
ahandle
;
rpcMsg
->
ahandle
=
pConn
->
ahandle
;
rpcMsg
.
handle
=
pConn
;
rpcMsg
->
handle
=
pConn
;
rpcMsg
.
msgType
=
pConn
->
inType
;
rpcMsg
->
msgType
=
pConn
->
inType
;
rpcMsg
.
code
=
TSDB_CODE_RPC_NETWORK_UNAVAIL
;
rpcMsg
->
code
=
TSDB_CODE_RPC_NETWORK_UNAVAIL
;
pConn
->
pReqMsg
=
NULL
;
pConn
->
pReqMsg
=
NULL
;
pConn
->
reqMsgLen
=
0
;
pConn
->
reqMsgLen
=
0
;
if
(
pRpc
->
cfp
)
(
*
(
pRpc
->
cfp
))(
&
rpcMsg
,
NULL
);
if
(
pRpc
->
cfp
)
{
taosTmrStart
(
doRpcReportBrokenLinkToServer
,
0
,
rpcMsg
,
pRpc
->
tmrCtrl
);
}
else
{
free
(
rpcMsg
);
}
}
}
static
void
rpcProcessBrokenLink
(
SRpcConn
*
pConn
)
{
static
void
rpcProcessBrokenLink
(
SRpcConn
*
pConn
)
{
...
@@ -1051,7 +1062,7 @@ static void rpcProcessBrokenLink(SRpcConn *pConn) {
...
@@ -1051,7 +1062,7 @@ static void rpcProcessBrokenLink(SRpcConn *pConn) {
pConn
->
pReqMsg
=
NULL
;
pConn
->
pReqMsg
=
NULL
;
taosTmrStart
(
rpcProcessConnError
,
0
,
pContext
,
pRpc
->
tmrCtrl
);
taosTmrStart
(
rpcProcessConnError
,
0
,
pContext
,
pRpc
->
tmrCtrl
);
}
}
if
(
pConn
->
inType
)
rpcReportBrokenLinkToServer
(
pConn
);
if
(
pConn
->
inType
)
rpcReportBrokenLinkToServer
(
pConn
);
rpcReleaseConn
(
pConn
);
rpcReleaseConn
(
pConn
);
...
...
src/tsdb/src/tsdbCommit.c
浏览文件 @
1f08d25d
...
@@ -17,7 +17,7 @@
...
@@ -17,7 +17,7 @@
#define TSDB_MAX_SUBBLOCKS 8
#define TSDB_MAX_SUBBLOCKS 8
static
FORCE_INLINE
int
TSDB_KEY_FID
(
TSKEY
key
,
int32_t
days
,
int8_t
precision
)
{
static
FORCE_INLINE
int
TSDB_KEY_FID
(
TSKEY
key
,
int32_t
days
,
int8_t
precision
)
{
if
(
key
<
0
)
{
if
(
key
<
0
)
{
return
(
int
)(
-
((
-
key
)
/
tsMsPerDay
[
precision
]
/
days
+
1
)
);
return
(
int
)(
(
key
+
1
)
/
tsMsPerDay
[
precision
]
/
days
+
1
);
}
else
{
}
else
{
return
(
int
)((
key
/
tsMsPerDay
[
precision
]
/
days
));
return
(
int
)((
key
/
tsMsPerDay
[
precision
]
/
days
));
}
}
...
...
tests/Jenkinsfile
浏览文件 @
1f08d25d
...
@@ -56,14 +56,8 @@ pipeline {
...
@@ -56,14 +56,8 @@ pipeline {
cd ${WKC}/tests
cd ${WKC}/tests
./test-all.sh b1
./test-all.sh b1
date'''
date'''
sh
'''
cd ${WKC}/tests
./test-all.sh full jdbc
date'''
sh
'''
cd ${WKC}/tests
./test-all.sh full unit
date'''
}
}
}
}
...
@@ -136,6 +130,10 @@ pipeline {
...
@@ -136,6 +130,10 @@ pipeline {
./test-all.sh b2
./test-all.sh b2
date
date
'''
'''
sh
'''
cd ${WKC}/tests
./test-all.sh full unit
date'''
}
}
}
}
...
@@ -154,6 +152,10 @@ pipeline {
...
@@ -154,6 +152,10 @@ pipeline {
'''
'''
}
}
sh
'''
sh
'''
cd ${WKC}/tests
./test-all.sh full jdbc
date'''
sh
'''
cd ${WKC}/tests/pytest
cd ${WKC}/tests/pytest
./valgrind-test.sh 2>&1 > mem-error-out.log
./valgrind-test.sh 2>&1 > mem-error-out.log
./handle_val_log.sh
./handle_val_log.sh
...
...
tests/test-all.sh
浏览文件 @
1f08d25d
...
@@ -29,7 +29,25 @@ function dohavecore(){
...
@@ -29,7 +29,25 @@ function dohavecore(){
proc
=
`
echo
$corefile
|cut
-d
"_"
-f3
`
proc
=
`
echo
$corefile
|cut
-d
"_"
-f3
`
if
[
-n
"
$corefile
"
]
;
then
if
[
-n
"
$corefile
"
]
;
then
echo
'taosd or taos has generated core'
echo
'taosd or taos has generated core'
tar
-zcPf
$corepath
'taos_'
`
date
"+%Y_%m_%d_%H_%M_%S"
`
.tar.gz /usr/local/taos/
if
[[
"
$tests_dir
"
==
*
"
$IN_TDINTERNAL
"
*
]]
&&
[[
$1
==
1
]]
;
then
cd
../../../
tar
-zcPf
$corepath
'taos_'
`
date
"+%Y_%m_%d_%H_%M_%S"
`
.tar.gz debug/build/bin/taosd debug/build/bin/tsim debug/build/lib/libtaos
*
so
*
if
[[
$2
==
1
]]
;
then
cp
-r
sim ~/sim_
`
date
"+%Y_%m_%d_%H:%M:%S"
`
rm
-rf
sim/case.log
else
cd
community
cp
-r
sim ~/sim_
`
date
"+%Y_%m_%d_%H:%M:%S"
`
rm
-rf
sim/case.log
fi
else
cd
../../
if
[[
$1
==
1
]]
;
then
tar
-zcPf
$corepath
'taos_'
`
date
"+%Y_%m_%d_%H_%M_%S"
`
.tar.gz debug/build/bin/taosd debug/build/bin/tsim debug/build/lib/libtaos
*
so
*
cp
-r
sim ~/sim_
`
date
"+%Y_%m_%d_%H:%M:%S"
`
rm
-rf
sim/case.log
fi
fi
if
[[
$1
==
1
]]
;
then
if
[[
$1
==
1
]]
;
then
echo
'\n'
|gdb /usr/local/taos/bin/
$proc
$core_file
-ex
"bt 10"
-ex
quit
echo
'\n'
|gdb /usr/local/taos/bin/
$proc
$core_file
-ex
"bt 10"
-ex
quit
exit
8
exit
8
...
@@ -100,14 +118,14 @@ function runSimCaseOneByOnefq {
...
@@ -100,14 +118,14 @@ function runSimCaseOneByOnefq {
cp
-r
../../sim ~/sim_
`
date
"+%Y_%m_%d_%H:%M:%S"
`
cp
-r
../../sim ~/sim_
`
date
"+%Y_%m_%d_%H:%M:%S"
`
rm
-rf
../../sim/case.log
rm
-rf
../../sim/case.log
fi
fi
dohavecore
$2
dohavecore
$2
1
if
[[
$2
==
1
]]
;
then
if
[[
$2
==
1
]]
;
then
exit
8
exit
8
fi
fi
fi
fi
end_time
=
`
date
+%s
`
end_time
=
`
date
+%s
`
echo
execution
time
of
$case
was
`
expr
$end_time
-
$start_time
`
s. |
tee
-a
out.log
echo
execution
time
of
$case
was
`
expr
$end_time
-
$start_time
`
s. |
tee
-a
out.log
dohavecore
$2
dohavecore
$2
1
fi
fi
done
done
rm
-rf
../../../sim/case.log
rm
-rf
../../../sim/case.log
...
@@ -175,7 +193,7 @@ function runPyCaseOneByOnefq() {
...
@@ -175,7 +193,7 @@ function runPyCaseOneByOnefq() {
echo
'=====================log===================== '
echo
'=====================log===================== '
cat
../../sim/case.log
cat
../../sim/case.log
rm
-rf
../../sim/case.log
rm
-rf
../../sim/case.log
dohavecore
$2
dohavecore
$2
2
if
[[
$2
==
1
]]
;
then
if
[[
$2
==
1
]]
;
then
exit
8
exit
8
fi
fi
...
@@ -184,7 +202,7 @@ function runPyCaseOneByOnefq() {
...
@@ -184,7 +202,7 @@ function runPyCaseOneByOnefq() {
else
else
$line
>
/dev/null 2>&1
$line
>
/dev/null 2>&1
fi
fi
dohavecore
$2
dohavecore
$2
2
fi
fi
done
done
rm
-rf
../../sim/case.log
rm
-rf
../../sim/case.log
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录