From ded4a1bf6f41dd247caf8d33351b14f0673408f5 Mon Sep 17 00:00:00 2001 From: liu0x54 Date: Sat, 11 Jan 2020 15:47:08 +0800 Subject: [PATCH 1/7] [TBASE-952] add dockerfile and dockerbuild scripts --- packaging/Dockerfile | 18 ++++++++++++++++++ packaging/dockerbuild.sh | 12 ++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 packaging/Dockerfile create mode 100755 packaging/dockerbuild.sh diff --git a/packaging/Dockerfile b/packaging/Dockerfile new file mode 100644 index 0000000000..b01f375db0 --- /dev/null +++ b/packaging/Dockerfile @@ -0,0 +1,18 @@ +FROM centos:7 + +WORKDIR /root + +COPY tdengine.tar.gz /root/ +RUN tar -zxf tdengine.tar.gz +WORKDIR /root/tdengine/ +RUN sh install.sh + + +ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib" +ENV LANG=en_US.UTF-8 +ENV LANGUAGE=en_US:en +ENV LC_ALL=en_US.UTF-8 +EXPOSE 6020 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 +EXPOSE 6043 6044 6045 6046 6047 6048 6049 6050 +CMD ["taosd"] +VOLUME [ "/var/lib/taos", "/var/log/taos","/etc/taos/" ] diff --git a/packaging/dockerbuild.sh b/packaging/dockerbuild.sh new file mode 100755 index 0000000000..280c27d7aa --- /dev/null +++ b/packaging/dockerbuild.sh @@ -0,0 +1,12 @@ +#!/bin/bash +set -x +$1 +tar -zxf $1 +DIR=`echo $1|awk -F . '{print($1"."$2"."$3"."$4)}'` +mv $DIR tdengine +tar -czf tdengine.tar.gz tdengine +TMP=`echo $1|awk -F . '{print($2"."$3"."$4)}'` +TAG="1."$TMP +docker build --rm -f "Dockerfile" -t tdengine/tdengine:$TAG "." +docker login -u tdengine -p ******** #replace the docker registry username and password +docker push tdengine/tdengine:$TAG \ No newline at end of file From f1cfc460d944e024547ab186c950620db5f71b16 Mon Sep 17 00:00:00 2001 From: Tao Liu <56432938+liu0x54@users.noreply.github.com> Date: Sat, 11 Jan 2020 15:51:05 +0800 Subject: [PATCH 2/7] Delete Dockerfile --- packaging/Dockerfile | 18 ------------------ 1 file changed, 18 deletions(-) delete mode 100644 packaging/Dockerfile diff --git a/packaging/Dockerfile b/packaging/Dockerfile deleted file mode 100644 index b01f375db0..0000000000 --- a/packaging/Dockerfile +++ /dev/null @@ -1,18 +0,0 @@ -FROM centos:7 - -WORKDIR /root - -COPY tdengine.tar.gz /root/ -RUN tar -zxf tdengine.tar.gz -WORKDIR /root/tdengine/ -RUN sh install.sh - - -ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib" -ENV LANG=en_US.UTF-8 -ENV LANGUAGE=en_US:en -ENV LC_ALL=en_US.UTF-8 -EXPOSE 6020 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 -EXPOSE 6043 6044 6045 6046 6047 6048 6049 6050 -CMD ["taosd"] -VOLUME [ "/var/lib/taos", "/var/log/taos","/etc/taos/" ] From 7d5ca4d66f601a487bb73af08de3061cc3b09ea9 Mon Sep 17 00:00:00 2001 From: Tao Liu <56432938+liu0x54@users.noreply.github.com> Date: Sat, 11 Jan 2020 15:51:18 +0800 Subject: [PATCH 3/7] Delete dockerbuild.sh --- packaging/dockerbuild.sh | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100755 packaging/dockerbuild.sh diff --git a/packaging/dockerbuild.sh b/packaging/dockerbuild.sh deleted file mode 100755 index 280c27d7aa..0000000000 --- a/packaging/dockerbuild.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash -set -x -$1 -tar -zxf $1 -DIR=`echo $1|awk -F . '{print($1"."$2"."$3"."$4)}'` -mv $DIR tdengine -tar -czf tdengine.tar.gz tdengine -TMP=`echo $1|awk -F . '{print($2"."$3"."$4)}'` -TAG="1."$TMP -docker build --rm -f "Dockerfile" -t tdengine/tdengine:$TAG "." -docker login -u tdengine -p ******** #replace the docker registry username and password -docker push tdengine/tdengine:$TAG \ No newline at end of file From fc1ee73f7374f56527eb95afe2e9cb307b037f9d Mon Sep 17 00:00:00 2001 From: liu0x54 Date: Sat, 11 Jan 2020 16:00:52 +0800 Subject: [PATCH 4/7] [TBASE-952] add dockerfile and dockerbuild scripts --- packaging/docker/Dockerfile | 18 ++++++++++++++++++ packaging/docker/dockerbuild.sh | 12 ++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 packaging/docker/Dockerfile create mode 100755 packaging/docker/dockerbuild.sh diff --git a/packaging/docker/Dockerfile b/packaging/docker/Dockerfile new file mode 100644 index 0000000000..b01f375db0 --- /dev/null +++ b/packaging/docker/Dockerfile @@ -0,0 +1,18 @@ +FROM centos:7 + +WORKDIR /root + +COPY tdengine.tar.gz /root/ +RUN tar -zxf tdengine.tar.gz +WORKDIR /root/tdengine/ +RUN sh install.sh + + +ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib" +ENV LANG=en_US.UTF-8 +ENV LANGUAGE=en_US:en +ENV LC_ALL=en_US.UTF-8 +EXPOSE 6020 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 +EXPOSE 6043 6044 6045 6046 6047 6048 6049 6050 +CMD ["taosd"] +VOLUME [ "/var/lib/taos", "/var/log/taos","/etc/taos/" ] diff --git a/packaging/docker/dockerbuild.sh b/packaging/docker/dockerbuild.sh new file mode 100755 index 0000000000..280c27d7aa --- /dev/null +++ b/packaging/docker/dockerbuild.sh @@ -0,0 +1,12 @@ +#!/bin/bash +set -x +$1 +tar -zxf $1 +DIR=`echo $1|awk -F . '{print($1"."$2"."$3"."$4)}'` +mv $DIR tdengine +tar -czf tdengine.tar.gz tdengine +TMP=`echo $1|awk -F . '{print($2"."$3"."$4)}'` +TAG="1."$TMP +docker build --rm -f "Dockerfile" -t tdengine/tdengine:$TAG "." +docker login -u tdengine -p ******** #replace the docker registry username and password +docker push tdengine/tdengine:$TAG \ No newline at end of file From 2c1dccd40faa501b463a4e6e6e309db88897b947 Mon Sep 17 00:00:00 2001 From: haojun Liao Date: Mon, 13 Jan 2020 11:57:16 +0800 Subject: [PATCH 5/7] Update tscServer.c fix bug #1124 [TBASE-1483] --- src/client/src/tscServer.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/client/src/tscServer.c b/src/client/src/tscServer.c index 6981c16e9e..1a05ce374a 100644 --- a/src/client/src/tscServer.c +++ b/src/client/src/tscServer.c @@ -1090,7 +1090,9 @@ static void tscHandleSubRetrievalError(SRetrieveSupport *trsupport, SSqlObj *pSq } } - if (atomic_add_fetch_32(&trsupport->pState->numOfCompleted, 1) < trsupport->pState->numOfTotal) { + int32_t numOfTotal = pState->numOfTotal; + int32_t finished = atomic_add_fetch_32(&pState->numOfCompleted, 1); + if (finished < numOfTotal) { // pState may be released by otherthreads, so keep the value in a local variable. return tscFreeSubSqlObj(trsupport, pSql); } @@ -1215,7 +1217,14 @@ void tscRetrieveFromVnodeCallBack(void *param, TAOS_RES *tres, int numOfRows) { return tscAbortFurtherRetryRetrieval(trsupport, tres, TSDB_CODE_CLI_NO_DISKSPACE); } - if (atomic_add_fetch_32(&trsupport->pState->numOfCompleted, 1) < trsupport->pState->numOfTotal) { + // keep this value local variable, since the pState variable may be released by other threads, if atomic_add opertion + // increases the finished value up to pState->numOfTotal value, which means all subqueries are completed. + // In this case, the comparsion between finished value and released pState->numOfTotal is not safe. + int32_t numOfTotal = pState->numOfTotal; + + int32_t finished = atomic_add_fetch_32(&pState->numOfCompleted, 1); + if (finished < numOfTotal) { + tscTrace("%p sub:%p orderOfSub:%d freed, finished subqueries:%d", pPObj, pSql, trsupport->subqueryIndex, finished); return tscFreeSubSqlObj(trsupport, pSql); } @@ -1223,7 +1232,7 @@ void tscRetrieveFromVnodeCallBack(void *param, TAOS_RES *tres, int numOfRows) { pDesc->pSchema->maxCapacity = trsupport->pExtMemBuffer[idx]->numOfElemsPerPage; tscTrace("%p retrieve from %d vnodes completed.final NumOfRows:%d,start to build loser tree", pPObj, - trsupport->pState->numOfTotal, trsupport->pState->numOfCompleted); + trsupport->pState->numOfTotal, trsupport->pState->numOfRetrievedRows); tscClearInterpInfo(&pPObj->cmd); tscCreateLocalReducer(trsupport->pExtMemBuffer, trsupport->pState->numOfTotal, pDesc, trsupport->pFinalColModel, From 2cdc335d775d874820ccc426a6ffdfc703f4ab31 Mon Sep 17 00:00:00 2001 From: haojun Liao Date: Mon, 13 Jan 2020 13:46:30 +0800 Subject: [PATCH 6/7] Update tscServer.c --- src/client/src/tscServer.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/client/src/tscServer.c b/src/client/src/tscServer.c index 1a05ce374a..6bf0d74b6f 100644 --- a/src/client/src/tscServer.c +++ b/src/client/src/tscServer.c @@ -1090,8 +1090,8 @@ static void tscHandleSubRetrievalError(SRetrieveSupport *trsupport, SSqlObj *pSq } } - int32_t numOfTotal = pState->numOfTotal; - int32_t finished = atomic_add_fetch_32(&pState->numOfCompleted, 1); + int32_t numOfTotal = trsupport->pState->numOfTotal; + int32_t finished = atomic_add_fetch_32(&trsupport->pState->numOfCompleted, 1); if (finished < numOfTotal) { // pState may be released by otherthreads, so keep the value in a local variable. return tscFreeSubSqlObj(trsupport, pSql); } @@ -1220,9 +1220,9 @@ void tscRetrieveFromVnodeCallBack(void *param, TAOS_RES *tres, int numOfRows) { // keep this value local variable, since the pState variable may be released by other threads, if atomic_add opertion // increases the finished value up to pState->numOfTotal value, which means all subqueries are completed. // In this case, the comparsion between finished value and released pState->numOfTotal is not safe. - int32_t numOfTotal = pState->numOfTotal; + int32_t numOfTotal = trsupport->pState->numOfTotal; - int32_t finished = atomic_add_fetch_32(&pState->numOfCompleted, 1); + int32_t finished = atomic_add_fetch_32(&trsupport->pState->numOfCompleted, 1); if (finished < numOfTotal) { tscTrace("%p sub:%p orderOfSub:%d freed, finished subqueries:%d", pPObj, pSql, trsupport->subqueryIndex, finished); return tscFreeSubSqlObj(trsupport, pSql); From 31ed41fc01c65019856a71fddb6213a8fedb9116 Mon Sep 17 00:00:00 2001 From: haojun Liao Date: Mon, 13 Jan 2020 13:52:06 +0800 Subject: [PATCH 7/7] Update tscServer.c --- src/client/src/tscServer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/src/tscServer.c b/src/client/src/tscServer.c index 6bf0d74b6f..9151159042 100644 --- a/src/client/src/tscServer.c +++ b/src/client/src/tscServer.c @@ -1224,7 +1224,7 @@ void tscRetrieveFromVnodeCallBack(void *param, TAOS_RES *tres, int numOfRows) { int32_t finished = atomic_add_fetch_32(&trsupport->pState->numOfCompleted, 1); if (finished < numOfTotal) { - tscTrace("%p sub:%p orderOfSub:%d freed, finished subqueries:%d", pPObj, pSql, trsupport->subqueryIndex, finished); + tscTrace("%p sub:%p orderOfSub:%d freed, finished subqueries:%d", pPObj, pSql, trsupport->vnodeIdx, finished); return tscFreeSubSqlObj(trsupport, pSql); }