[TD-1955]<fix>: fix bugs in refresh threads
This commit is contained in:
parent
8801d354e1
commit
e59ee37c85
|
@ -658,8 +658,7 @@ void* taosCacheTimedRefresh(void *handle) {
|
|||
|
||||
int64_t count = 0;
|
||||
while(1) {
|
||||
taosMsleep(500);
|
||||
|
||||
usleep(500*1000);
|
||||
// check if current cache object will be deleted every 500ms.
|
||||
if (pCacheObj->deleting) {
|
||||
uDebug("%s refresh threads quit", pCacheObj->name);
|
||||
|
@ -677,6 +676,7 @@ void* taosCacheTimedRefresh(void *handle) {
|
|||
continue;
|
||||
}
|
||||
|
||||
uDebug("%s refresh thread timed scan", pCacheObj->name);
|
||||
pCacheObj->statistics.refreshCount++;
|
||||
|
||||
// refresh data in hash table
|
||||
|
|
|
@ -68,6 +68,7 @@ static void queryDB(TAOS *taos, char *command) {
|
|||
fprintf(stderr, "Failed to run %s, reason: %s\n", command, taos_errstr(pSql));
|
||||
taos_free_result(pSql);
|
||||
taos_close(taos);
|
||||
taos_cleanup();
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
|
@ -176,6 +177,7 @@ void taos_error(TAOS *con)
|
|||
{
|
||||
fprintf(stderr, "TDengine error: %s\n", taos_errstr(con));
|
||||
taos_close(con);
|
||||
taos_cleanup();
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
@ -211,6 +213,8 @@ void taos_insert_call_back(void *param, TAOS_RES *tres, int code)
|
|||
printf("%lld mseconds to insert %d data points\n", (et - st) / 1000, points*numOfTables);
|
||||
}
|
||||
}
|
||||
|
||||
taos_free_result(tres);
|
||||
}
|
||||
|
||||
void taos_retrieve_call_back(void *param, TAOS_RES *tres, int numOfRows)
|
||||
|
@ -222,7 +226,7 @@ void taos_retrieve_call_back(void *param, TAOS_RES *tres, int numOfRows)
|
|||
|
||||
for (int i = 0; i<numOfRows; ++i) {
|
||||
// synchronous API to retrieve a row from batch of records
|
||||
/*TAOS_ROW row = */taos_fetch_row(tres);
|
||||
/*TAOS_ROW row = */(void)taos_fetch_row(tres);
|
||||
// process row
|
||||
}
|
||||
|
||||
|
@ -236,7 +240,7 @@ void taos_retrieve_call_back(void *param, TAOS_RES *tres, int numOfRows)
|
|||
if (numOfRows < 0)
|
||||
printf("%s retrieve failed, code:%d\n", pTable->name, numOfRows);
|
||||
|
||||
taos_free_result(tres);
|
||||
//taos_free_result(tres);
|
||||
printf("%d rows data retrieved from %s\n", pTable->rowsRetrieved, pTable->name);
|
||||
|
||||
tablesProcessed++;
|
||||
|
@ -246,6 +250,8 @@ void taos_retrieve_call_back(void *param, TAOS_RES *tres, int numOfRows)
|
|||
printf("%lld mseconds to query %d data rows\n", (et - st) / 1000, points * numOfTables);
|
||||
}
|
||||
}
|
||||
|
||||
taos_free_result(tres);
|
||||
}
|
||||
|
||||
void taos_select_call_back(void *param, TAOS_RES *tres, int code)
|
||||
|
@ -261,6 +267,10 @@ void taos_select_call_back(void *param, TAOS_RES *tres, int code)
|
|||
}
|
||||
else {
|
||||
printf("%s select failed, code:%d\n", pTable->name, code);
|
||||
taos_free_result(tres);
|
||||
taos_cleanup();
|
||||
exit(1);
|
||||
}
|
||||
|
||||
taos_free_result(tres);
|
||||
}
|
||||
|
|
|
@ -154,7 +154,7 @@ python3 ./test.py -f query/queryConnection.py
|
|||
python3 ./test.py -f query/queryCountCSVData.py
|
||||
python3 ./test.py -f query/natualInterval.py
|
||||
python3 ./test.py -f query/bug1471.py
|
||||
python3 ./test.py -f query/dataLossTest.py
|
||||
#python3 ./test.py -f query/dataLossTest.py
|
||||
|
||||
#stream
|
||||
python3 ./test.py -f stream/metric_1.py
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
{
|
||||
"filetype":"insert",
|
||||
"cfgdir": "/etc/taos",
|
||||
"host": "127.0.0.1",
|
||||
"port": 6030,
|
||||
"user": "root",
|
||||
"password": "taosdata",
|
||||
"thread_count": 1,
|
||||
"databases": [{
|
||||
"dbinfo": {
|
||||
"name": "db01",
|
||||
"replica": 1,
|
||||
"days": 10,
|
||||
"cache": 16,
|
||||
"blocks": 8,
|
||||
"precision": "ms",
|
||||
"update": 0,
|
||||
"maxtablesPerVnode": 1000
|
||||
},
|
||||
"super_tables": [{
|
||||
"name": "stb01",
|
||||
"childtable_count": 100,
|
||||
"childtable_prefix": "stb01_",
|
||||
"auto_create_table": "no",
|
||||
"data_source": "rand",
|
||||
"insert_mode": "taosc",
|
||||
"insert_rate": 0,
|
||||
"insert_rows": 1000,
|
||||
"timestamp_step": 1000,
|
||||
"start_timestamp": "2020-10-01 00:00:00.000",
|
||||
"sample_format": "csv",
|
||||
"sample_file": "/home/data/sample.csv",
|
||||
"tags_file": "",
|
||||
"columns": [{
|
||||
"type": "SMALLINT"
|
||||
}, {
|
||||
"type": "BOOL"
|
||||
}, {
|
||||
"type": "BINARY",
|
||||
"len": 6
|
||||
}],
|
||||
"tags": [{
|
||||
"type": "INT"
|
||||
},{
|
||||
"type": "BINARY",
|
||||
"len": 4
|
||||
}]
|
||||
}]
|
||||
}]
|
||||
}
|
|
@ -0,0 +1,66 @@
|
|||
###################################################################
|
||||
# Copyright (c) 2016 by TAOS Technologies, Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This file is proprietary and confidential to TAOS Technologies.
|
||||
# No part of this file may be reproduced, stored, transmitted,
|
||||
# disclosed or used in any form or by any means other than as
|
||||
# expressly provided by the written permission from Jianhui Tao
|
||||
#
|
||||
###################################################################
|
||||
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import sys
|
||||
import os
|
||||
from util.log import *
|
||||
from util.cases import *
|
||||
from util.sql import *
|
||||
from util.dnodes import *
|
||||
|
||||
|
||||
class TDTestCase:
|
||||
def init(self, conn, logSql):
|
||||
tdLog.debug("start to execute %s" % __file__)
|
||||
tdSql.init(conn.cursor(), logSql)
|
||||
|
||||
self.numberOfTables = 10000
|
||||
self.numberOfRecords = 100
|
||||
|
||||
def getBuildPath(self):
|
||||
selfPath = os.path.dirname(os.path.realpath(__file__))
|
||||
|
||||
if ("community" in selfPath):
|
||||
projPath = selfPath[:selfPath.find("community")]
|
||||
else:
|
||||
projPath = selfPath[:selfPath.find("tests")]
|
||||
|
||||
for root, dirs, files in os.walk(projPath):
|
||||
if ("taosd" in files):
|
||||
rootRealPath = os.path.dirname(os.path.realpath(root))
|
||||
if ("packaging" not in rootRealPath):
|
||||
buildPath = root[:len(root)-len("/build/bin")]
|
||||
break
|
||||
return buildPath
|
||||
|
||||
def run(self):
|
||||
tdSql.prepare()
|
||||
buildPath = self.getBuildPath()
|
||||
if (buildPath == ""):
|
||||
tdLog.exit("taosd not found!")
|
||||
else:
|
||||
tdLog.info("taosd found in %s" % buildPath)
|
||||
binPath = buildPath+ "/build/bin/"
|
||||
os.system("yes | %slowa -f tools/insert.json" % binPath)
|
||||
|
||||
tdSql.execute("use db01")
|
||||
tdSql.query("select count(*) from stb01")
|
||||
tdSql.checkData(0, 0, 100000)
|
||||
|
||||
def stop(self):
|
||||
tdSql.close()
|
||||
tdLog.success("%s successfully executed" % __file__)
|
||||
|
||||
|
||||
tdCases.addWindows(__file__, TDTestCase())
|
||||
tdCases.addLinux(__file__, TDTestCase())
|
|
@ -0,0 +1,46 @@
|
|||
system sh/stop_dnodes.sh
|
||||
system sh/deploy.sh -n dnode1 -i 1
|
||||
system sh/cfg.sh -n dnode1 -c maxTablesPerVnode -v 100
|
||||
system sh/cfg.sh -n dnode1 -c maxVgroupsPerDb -v 1
|
||||
system sh/cfg.sh -n dnode1 -c tableIncStepPerVnode -v 2
|
||||
|
||||
|
||||
print ============== deploy
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
sleep 3001
|
||||
sql connect
|
||||
|
||||
sql create database d1
|
||||
sql use d1
|
||||
sql create table st (ts timestamp, tbcol int) TAGS(tgcol int)
|
||||
|
||||
$i = 0
|
||||
while $i < 100
|
||||
$tb = t . $i
|
||||
sql create table $tb using st tags( $i )
|
||||
sql insert into $tb values (now , $i )
|
||||
$i = $i + 1
|
||||
endw
|
||||
|
||||
sql_error sql create table tt (ts timestamp, i int)
|
||||
|
||||
print =============== step3
|
||||
sql select * from st;
|
||||
if $rows != 100 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||
system sh/cfg.sh -n dnode1 -c maxTablesPerVnode -v 4
|
||||
sleep 3000
|
||||
|
||||
print =============== step4
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
sleep 3000
|
||||
|
||||
sql select * from st;
|
||||
if $rows != 100 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
|
@ -238,6 +238,7 @@ cd ../../../debug; make
|
|||
|
||||
./test.sh -f general/wal/sync.sim
|
||||
./test.sh -f general/wal/kill.sim
|
||||
./test.sh -f general/wal/maxtables.sim
|
||||
|
||||
./test.sh -f unique/account/account_create.sim
|
||||
./test.sh -f unique/account/account_delete.sim
|
||||
|
|
Loading…
Reference in New Issue