Merge branch '3.0' of github.com:taosdata/TDengine into szhou/fixbugs
This commit is contained in:
commit
08680be5b6
|
@ -1,38 +1,8 @@
|
|||
IF (EXISTS /var/lib/taos/dnode/dnodeCfg.json)
|
||||
INSTALL(CODE "MESSAGE(\"The default data directory /var/lib/taos contains old data of tdengine 2.x, please clear it before installing!\")")
|
||||
ELSEIF (EXISTS C:/TDengine/data/dnode/dnodeCfg.json)
|
||||
INSTALL(CODE "MESSAGE(\"The default data directory C:/TDengine/data contains old data of tdengine 2.x, please clear it before installing!\")")
|
||||
ELSEIF (TD_LINUX)
|
||||
IF (TD_LINUX)
|
||||
SET(TD_MAKE_INSTALL_SH "${TD_SOURCE_DIR}/packaging/tools/make_install.sh")
|
||||
INSTALL(CODE "MESSAGE(\"make install script: ${TD_MAKE_INSTALL_SH}\")")
|
||||
INSTALL(CODE "execute_process(COMMAND bash ${TD_MAKE_INSTALL_SH} ${TD_SOURCE_DIR} ${PROJECT_BINARY_DIR} Linux ${TD_VER_NUMBER})")
|
||||
ELSEIF (TD_WINDOWS)
|
||||
SET(CMAKE_INSTALL_PREFIX C:/TDengine)
|
||||
|
||||
# INSTALL(DIRECTORY ${TD_SOURCE_DIR}/src/connector/go DESTINATION connector)
|
||||
# INSTALL(DIRECTORY ${TD_SOURCE_DIR}/src/connector/nodejs DESTINATION connector)
|
||||
# INSTALL(DIRECTORY ${TD_SOURCE_DIR}/src/connector/python DESTINATION connector)
|
||||
# INSTALL(DIRECTORY ${TD_SOURCE_DIR}/src/connector/C\# DESTINATION connector)
|
||||
# INSTALL(DIRECTORY ${TD_SOURCE_DIR}/examples DESTINATION .)
|
||||
INSTALL(CODE "IF (NOT EXISTS ${CMAKE_INSTALL_PREFIX}/cfg/taos.cfg)
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy ${TD_SOURCE_DIR}/packaging/cfg/taos.cfg ${CMAKE_INSTALL_PREFIX}/cfg/taos.cfg)
|
||||
ENDIF ()")
|
||||
INSTALL(FILES ${TD_SOURCE_DIR}/include/client/taos.h DESTINATION include)
|
||||
INSTALL(FILES ${TD_SOURCE_DIR}/include/util/taoserror.h DESTINATION include)
|
||||
INSTALL(FILES ${TD_SOURCE_DIR}/include/libs/function/taosudf.h DESTINATION include)
|
||||
INSTALL(FILES ${LIBRARY_OUTPUT_PATH}/taos.lib DESTINATION driver)
|
||||
INSTALL(FILES ${LIBRARY_OUTPUT_PATH}/taos_static.lib DESTINATION driver)
|
||||
INSTALL(FILES ${LIBRARY_OUTPUT_PATH}/taos.dll DESTINATION driver)
|
||||
INSTALL(FILES ${EXECUTABLE_OUTPUT_PATH}/taos.exe DESTINATION .)
|
||||
INSTALL(FILES ${EXECUTABLE_OUTPUT_PATH}/taosd.exe DESTINATION .)
|
||||
INSTALL(FILES ${EXECUTABLE_OUTPUT_PATH}/udfd.exe DESTINATION .)
|
||||
IF (BUILD_TOOLS)
|
||||
INSTALL(FILES ${EXECUTABLE_OUTPUT_PATH}/taosBenchmark.exe DESTINATION .)
|
||||
ENDIF ()
|
||||
|
||||
IF (TD_MVN_INSTALLED)
|
||||
INSTALL(FILES ${LIBRARY_OUTPUT_PATH}/taos-jdbcdriver-2.0.38-dist.jar DESTINATION connector/jdbc)
|
||||
ENDIF ()
|
||||
SET(TD_MAKE_INSTALL_SH "${TD_SOURCE_DIR}/packaging/tools/make_install.bat")
|
||||
INSTALL(CODE "MESSAGE(\"make install script: ${TD_MAKE_INSTALL_SH}\")")
|
||||
INSTALL(CODE "execute_process(COMMAND ${TD_MAKE_INSTALL_SH} :needAdmin ${TD_SOURCE_DIR} ${PROJECT_BINARY_DIR} Windows ${TD_VER_NUMBER})")
|
||||
|
|
|
@ -136,24 +136,6 @@ execute_process(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
|
|||
execute_process(COMMAND "${CMAKE_COMMAND}" --build .
|
||||
WORKING_DIRECTORY "${TD_CONTRIB_DIR}/deps-download")
|
||||
|
||||
# clear submodule
|
||||
execute_process(COMMAND git submodule deinit -f tools/taos-tools
|
||||
WORKING_DIRECTORY "${TD_SOURCE_DIR}")
|
||||
execute_process(COMMAND git rm --cached tools/taos-tools
|
||||
WORKING_DIRECTORY "${TD_SOURCE_DIR}")
|
||||
execute_process(COMMAND git submodule deinit -f tools/taosadapter
|
||||
WORKING_DIRECTORY "${TD_SOURCE_DIR}")
|
||||
execute_process(COMMAND git rm --cached tools/taosadapter
|
||||
WORKING_DIRECTORY "${TD_SOURCE_DIR}")
|
||||
execute_process(COMMAND git submodule deinit -f tools/taosws-rs
|
||||
WORKING_DIRECTORY "${TD_SOURCE_DIR}")
|
||||
execute_process(COMMAND git rm --cached tools/taosws-rs
|
||||
WORKING_DIRECTORY "${TD_SOURCE_DIR}")
|
||||
execute_process(COMMAND git submodule deinit -f examples/rust
|
||||
WORKING_DIRECTORY "${TD_SOURCE_DIR}")
|
||||
execute_process(COMMAND git rm --cached examples/rust
|
||||
WORKING_DIRECTORY "${TD_SOURCE_DIR}")
|
||||
|
||||
# ================================================================================================
|
||||
# Build
|
||||
# ================================================================================================
|
||||
|
|
|
@ -1,7 +1,47 @@
|
|||
@echo off
|
||||
goto %1
|
||||
:needAdmin
|
||||
|
||||
if exist C:\\TDengine\\data\\dnode\\dnodeCfg.json (
|
||||
echo The default data directory C:/TDengine/data contains old data of tdengine 2.x, please clear it before installing!
|
||||
)
|
||||
set source_dir=%2
|
||||
set source_dir=%source_dir:/=\\%
|
||||
set binary_dir=%3
|
||||
set binary_dir=%binary_dir:/=\\%
|
||||
set osType=%4
|
||||
set verNumber=%5
|
||||
set tagert_dir=C:\\TDengine
|
||||
|
||||
if not exist %tagert_dir% (
|
||||
mkdir %tagert_dir%
|
||||
)
|
||||
if not exist %tagert_dir%\\cfg (
|
||||
mkdir %tagert_dir%\\cfg
|
||||
)
|
||||
if not exist %tagert_dir%\\include (
|
||||
mkdir %tagert_dir%\\include
|
||||
)
|
||||
if not exist %tagert_dir%\\driver (
|
||||
mkdir %tagert_dir%\\driver
|
||||
)
|
||||
if not exist C:\\TDengine\\cfg\\taos.cfg (
|
||||
copy %source_dir%\\packaging\\cfg\\taos.cfg %tagert_dir%\\cfg\\taos.cfg > nul
|
||||
)
|
||||
copy %source_dir%\\include\\client\\taos.h %tagert_dir%\\include > nul
|
||||
copy %source_dir%\\include\\util\\taoserror.h %tagert_dir%\\include > nul
|
||||
copy %source_dir%\\include\\libs\\function\\taosudf.h %tagert_dir%\\include > nul
|
||||
copy %binary_dir%\\build\\lib\\taos.lib %tagert_dir%\\driver > nul
|
||||
copy %binary_dir%\\build\\lib\\taos_static.lib %tagert_dir%\\driver > nul
|
||||
copy %binary_dir%\\build\\lib\\taos.dll %tagert_dir%\\driver > nul
|
||||
copy %binary_dir%\\build\\bin\\taos.exe %tagert_dir% > nul
|
||||
copy %binary_dir%\\build\\bin\\taosd.exe %tagert_dir% > nul
|
||||
copy %binary_dir%\\build\\bin\\udfd.exe %tagert_dir% > nul
|
||||
if exist %binary_dir%\\build\\bin\\taosBenchmark.exe (
|
||||
copy %binary_dir%\\build\\bin\\taosBenchmark.exe %tagert_dir% > nul
|
||||
)
|
||||
|
||||
mshta vbscript:createobject("shell.application").shellexecute("%~s0",":hasAdmin","","runas",1)(window.close)&& echo To start/stop TDengine with administrator privileges: sc start/stop taosd &goto :eof
|
||||
:hasAdmin
|
||||
cp -f C:\\TDengine\\driver\\taos.dll C:\\Windows\\System32
|
||||
copy /y C:\\TDengine\\driver\\taos.dll C:\\Windows\\System32 > nul
|
||||
sc query "taosd" >nul || sc create "taosd" binPath= "C:\\TDengine\\taosd.exe --win_service" start= DEMAND
|
||||
|
|
|
@ -664,7 +664,9 @@ function install_TDengine() {
|
|||
## ==============================Main program starts from here============================
|
||||
echo source directory: $1
|
||||
echo binary directory: $2
|
||||
if [ "$osType" != "Darwin" ]; then
|
||||
if [ -x ${data_dir}/dnode/dnodeCfg.json ]; then
|
||||
echo -e "\033[44;31;5mThe default data directory ${data_dir} contains old data of tdengine 2.x, please clear it before installing!\033[0m"
|
||||
elif [ "$osType" != "Darwin" ]; then
|
||||
if [ -x ${bin_dir}/${clientName} ]; then
|
||||
update_TDengine
|
||||
else
|
||||
|
|
|
@ -260,7 +260,7 @@ void tsdbUntakeReadSnap(STsdb *pTsdb, STsdbReadSnap *pSnap);
|
|||
|
||||
// tsdbCache
|
||||
int32_t tsdbOpenCache(STsdb *pTsdb);
|
||||
void tsdbCloseCache(SLRUCache *pCache);
|
||||
void tsdbCloseCache(STsdb *pTsdb);
|
||||
int32_t tsdbCacheInsertLast(SLRUCache *pCache, tb_uid_t uid, STSRow *row, STsdb *pTsdb);
|
||||
int32_t tsdbCacheInsertLastrow(SLRUCache *pCache, STsdb *pTsdb, tb_uid_t uid, STSRow *row, bool dup);
|
||||
int32_t tsdbCacheGetLastH(SLRUCache *pCache, tb_uid_t uid, STsdb *pTsdb, LRUHandle **h);
|
||||
|
@ -298,6 +298,7 @@ struct STsdb {
|
|||
SMemTable *imem;
|
||||
STsdbFS fs;
|
||||
SLRUCache *lruCache;
|
||||
TdThreadMutex lruMutex;
|
||||
};
|
||||
|
||||
struct TSDBKEY {
|
||||
|
|
|
@ -33,16 +33,21 @@ int32_t tsdbOpenCache(STsdb *pTsdb) {
|
|||
|
||||
taosLRUCacheSetStrictCapacity(pCache, true);
|
||||
|
||||
taosThreadMutexInit(&pTsdb->lruMutex, NULL);
|
||||
|
||||
_err:
|
||||
pTsdb->lruCache = pCache;
|
||||
return code;
|
||||
}
|
||||
|
||||
void tsdbCloseCache(SLRUCache *pCache) {
|
||||
void tsdbCloseCache(STsdb *pTsdb) {
|
||||
SLRUCache *pCache = pTsdb->lruCache;
|
||||
if (pCache) {
|
||||
taosLRUCacheEraseUnrefEntries(pCache);
|
||||
|
||||
taosLRUCacheCleanup(pCache);
|
||||
|
||||
taosThreadMutexDestroy(&pTsdb->lruMutex);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1100,8 +1105,11 @@ int32_t tsdbCacheGetLastrowH(SLRUCache *pCache, tb_uid_t uid, STsdb *pTsdb, LRUH
|
|||
// getTableCacheKeyS(uid, "lr", key, &keyLen);
|
||||
getTableCacheKey(uid, 0, key, &keyLen);
|
||||
LRUHandle *h = taosLRUCacheLookup(pCache, key, keyLen);
|
||||
if (h) {
|
||||
} else {
|
||||
if (!h) {
|
||||
taosThreadMutexLock(&pTsdb->lruMutex);
|
||||
|
||||
h = taosLRUCacheLookup(pCache, key, keyLen);
|
||||
if (!h) {
|
||||
STSRow *pRow = NULL;
|
||||
bool dup = false; // which is always false for now
|
||||
code = mergeLastRow(uid, pTsdb, &dup, &pRow);
|
||||
|
@ -1111,7 +1119,10 @@ int32_t tsdbCacheGetLastrowH(SLRUCache *pCache, tb_uid_t uid, STsdb *pTsdb, LRUH
|
|||
taosMemoryFree(pRow);
|
||||
}
|
||||
|
||||
taosThreadMutexUnlock(&pTsdb->lruMutex);
|
||||
|
||||
*handle = NULL;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1122,7 +1133,12 @@ int32_t tsdbCacheGetLastrowH(SLRUCache *pCache, tb_uid_t uid, STsdb *pTsdb, LRUH
|
|||
code = -1;
|
||||
}
|
||||
|
||||
taosThreadMutexUnlock(&pTsdb->lruMutex);
|
||||
|
||||
h = taosLRUCacheLookup(pCache, key, keyLen);
|
||||
} else {
|
||||
taosThreadMutexUnlock(&pTsdb->lruMutex);
|
||||
}
|
||||
}
|
||||
|
||||
*handle = h;
|
||||
|
|
|
@ -86,7 +86,7 @@ int tsdbClose(STsdb **pTsdb) {
|
|||
if (*pTsdb) {
|
||||
taosThreadRwlockDestroy(&(*pTsdb)->rwLock);
|
||||
tsdbFSClose(*pTsdb);
|
||||
tsdbCloseCache((*pTsdb)->lruCache);
|
||||
tsdbCloseCache(*pTsdb);
|
||||
taosMemoryFreeClear(*pTsdb);
|
||||
}
|
||||
return 0;
|
||||
|
|
|
@ -104,6 +104,12 @@ typedef void* queue[2];
|
|||
|
||||
#define TRANS_NOVALID_PACKET(src) ((src) != TRANS_MAGIC_NUM ? 1 : 0)
|
||||
|
||||
#define TRANS_PACKET_LIMIT 1024 * 1024 * 512
|
||||
|
||||
#define TRANS_MAGIC_NUM 0x5f375a86
|
||||
|
||||
#define TRANS_NOVALID_PACKET(src) ((src) != TRANS_MAGIC_NUM ? 1 : 0)
|
||||
|
||||
typedef SRpcMsg STransMsg;
|
||||
typedef SRpcCtx STransCtx;
|
||||
typedef SRpcCtxVal STransCtxVal;
|
||||
|
|
|
@ -318,10 +318,17 @@ void cliHandleResp(SCliConn* conn) {
|
|||
}
|
||||
|
||||
STransMsgHead* pHead = NULL;
|
||||
transDumpFromBuffer(&conn->readBuf, (char**)&pHead);
|
||||
if (transDumpFromBuffer(&conn->readBuf, (char**)&pHead) <= 0) {
|
||||
tDebug("%s conn %p recv invalid packet ", CONN_GET_INST_LABEL(conn), conn);
|
||||
return;
|
||||
}
|
||||
pHead->code = htonl(pHead->code);
|
||||
pHead->msgLen = htonl(pHead->msgLen);
|
||||
|
||||
if (cliRecvReleaseReq(conn, pHead)) {
|
||||
return;
|
||||
}
|
||||
|
||||
STransMsg transMsg = {0};
|
||||
transMsg.contLen = transContLenFromMsg(pHead->msgLen);
|
||||
transMsg.pCont = transContFromHead((char*)pHead);
|
||||
|
@ -333,10 +340,6 @@ void cliHandleResp(SCliConn* conn) {
|
|||
|
||||
SCliMsg* pMsg = NULL;
|
||||
STransConnCtx* pCtx = NULL;
|
||||
if (cliRecvReleaseReq(conn, pHead)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (CONN_NO_PERSIST_BY_APP(conn)) {
|
||||
pMsg = transQueuePop(&conn->cliMsgs);
|
||||
|
||||
|
@ -598,8 +601,13 @@ static void cliRecvCb(uv_stream_t* handle, ssize_t nread, const uv_buf_t* buf) {
|
|||
pBuf->len += nread;
|
||||
while (transReadComplete(pBuf)) {
|
||||
tTrace("%s conn %p read complete", CONN_GET_INST_LABEL(conn), conn);
|
||||
if (pBuf->invalid) {
|
||||
cliHandleExcept(conn);
|
||||
break;
|
||||
} else {
|
||||
cliHandleResp(conn);
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -188,7 +188,6 @@ bool transReadComplete(SConnBuffer* connBuf) {
|
|||
p->left = 0;
|
||||
}
|
||||
}
|
||||
|
||||
return (p->left == 0 || p->invalid) ? true : false;
|
||||
}
|
||||
|
||||
|
|
|
@ -198,15 +198,16 @@ static bool uvHandleReq(SSvrConn* pConn) {
|
|||
pHead->msgLen = htonl(pHead->msgLen);
|
||||
memcpy(pConn->user, pHead->user, strlen(pHead->user));
|
||||
|
||||
if (uvRecvReleaseReq(pConn, pHead)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// TODO(dengyihao): time-consuming task throwed into BG Thread
|
||||
// uv_work_t* wreq = taosMemoryMalloc(sizeof(uv_work_t));
|
||||
// wreq->data = pConn;
|
||||
// uv_read_stop((uv_stream_t*)pConn->pTcp);
|
||||
// transRefSrvHandle(pConn);
|
||||
// uv_queue_work(((SWorkThrd*)pConn->hostThrd)->loop, wreq, uvWorkDoTask, uvWorkAfterTask);
|
||||
if (uvRecvReleaseReq(pConn, pHead)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
STransMsg transMsg;
|
||||
memset(&transMsg, 0, sizeof(transMsg));
|
||||
|
@ -274,14 +275,16 @@ void uvOnRecvCb(uv_stream_t* cli, ssize_t nread, const uv_buf_t* buf) {
|
|||
if (pBuf->len <= TRANS_PACKET_LIMIT) {
|
||||
while (transReadComplete(pBuf)) {
|
||||
tTrace("%s conn %p alread read complete packet", transLabel(pTransInst), conn);
|
||||
if (uvHandleReq(conn) == false) {
|
||||
if (pBuf->invalid) {
|
||||
tTrace("%s conn %p alread read invalid packet", transLabel(pTransInst), conn);
|
||||
destroyConn(conn, true);
|
||||
return;
|
||||
} else {
|
||||
if (false == uvHandleReq(conn)) break;
|
||||
}
|
||||
}
|
||||
return;
|
||||
} else {
|
||||
tError("%s conn %p read unexpected packet, exceed limit", transLabel(pTransInst), conn);
|
||||
destroyConn(conn, true);
|
||||
return;
|
||||
}
|
||||
|
@ -872,6 +875,7 @@ static int reallocConnRef(SSvrConn* conn) {
|
|||
}
|
||||
static void uvDestroyConn(uv_handle_t* handle) {
|
||||
SSvrConn* conn = handle->data;
|
||||
|
||||
if (conn == NULL) {
|
||||
return;
|
||||
}
|
||||
|
@ -887,9 +891,8 @@ static void uvDestroyConn(uv_handle_t* handle) {
|
|||
SSvrMsg* msg = transQueueGet(&conn->srvMsgs, i);
|
||||
destroySmsg(msg);
|
||||
}
|
||||
|
||||
transReqQueueClear(&conn->wreqQueue);
|
||||
transQueueDestroy(&conn->srvMsgs);
|
||||
transReqQueueClear(&conn->wreqQueue);
|
||||
|
||||
QUEUE_REMOVE(&conn->queue);
|
||||
taosMemoryFree(conn->pTcp);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
system sh/stop_dnodes.sh
|
||||
system sh/deploy.sh -n dnode1 -i 1
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
sleep 50
|
||||
system sh/cfg.sh -n dnode1 -c debugflag -v 131
|
||||
system sh/exec.sh -n dnode1 -s start -v
|
||||
sql connect
|
||||
|
||||
print =============== create database
|
||||
|
@ -137,4 +137,17 @@ if $data13 != 789 then
|
|||
return -1
|
||||
endi
|
||||
|
||||
_OVER:
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||
print =============== check
|
||||
$null=
|
||||
|
||||
system_content sh/checkValgrind.sh -n dnode1
|
||||
print cmd return result ----> [ $system_content ]
|
||||
if $system_content > 0 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $system_content == $null then
|
||||
return -1
|
||||
endi
|
||||
|
|
Loading…
Reference in New Issue