Merge remote-tracking branch 'origin/develop' into hotfix/crash
This commit is contained in:
commit
90de932ddb
86
.travis.yml
86
.travis.yml
|
@ -135,92 +135,6 @@ matrix:
|
|||
# https://scan.coverity.com/faq#frequency
|
||||
branch_pattern: coverity_scan
|
||||
|
||||
- os: linux
|
||||
dist: bionic
|
||||
language: c
|
||||
compiler: gcc
|
||||
env: ENV_COVER=true
|
||||
|
||||
git:
|
||||
- depth: 1
|
||||
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- build-essential
|
||||
- cmake
|
||||
- net-tools
|
||||
- python-pip
|
||||
- python-setuptools
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- lcov
|
||||
- psmisc
|
||||
|
||||
before_script:
|
||||
- cd ${TRAVIS_BUILD_DIR}
|
||||
- mkdir debug
|
||||
- cd debug
|
||||
|
||||
script:
|
||||
- cmake -DCOVER=true .. > /dev/null
|
||||
- make > /dev/null
|
||||
|
||||
after_success:
|
||||
- |-
|
||||
case $TRAVIS_OS_NAME in
|
||||
linux)
|
||||
cd ${TRAVIS_BUILD_DIR}/debug
|
||||
make install > /dev/null || travis_terminate $?
|
||||
|
||||
pip install numpy
|
||||
pip install --user ${TRAVIS_BUILD_DIR}/src/connector/python/linux/python2/
|
||||
pip3 install numpy
|
||||
pip3 install --user ${TRAVIS_BUILD_DIR}/src/connector/python/linux/python3/
|
||||
|
||||
cd ${TRAVIS_BUILD_DIR}/tests
|
||||
|
||||
./test-all.sh smoke COVER
|
||||
|
||||
TEST_RESULT=$?
|
||||
|
||||
pkill taosd
|
||||
sleep 1
|
||||
|
||||
cd ${TRAVIS_BUILD_DIR}
|
||||
lcov -d . --capture --rc lcov_branch_coverage=1 -o coverage.info
|
||||
lcov --remove coverage.info '*/tests/*' '*/test/*' '*/deps/*' '*/plugins/*' -o coverage.info
|
||||
lcov -l --rc lcov_branch_coverage=1 coverage.info || travis_terminate $?
|
||||
|
||||
gem install coveralls-lcov
|
||||
|
||||
# Color setting
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[1;32m'
|
||||
GREEN_DARK='\033[0;32m'
|
||||
GREEN_UNDERLINE='\033[4;32m'
|
||||
NC='\033[0m'
|
||||
|
||||
coveralls-lcov coverage.info
|
||||
if [ "$?" -eq "0" ]; then
|
||||
echo -e "${GREEN} ## Uploaded to Coveralls.io! ## ${NC}"
|
||||
else
|
||||
echo -e "${RED} ## Coveralls.io not collect coverage report! ## ${NC} "
|
||||
fi
|
||||
|
||||
bash <(curl -s https://codecov.io/bash) -y .codecov.yml -f coverage.info
|
||||
if [ "$?" -eq "0" ]; then
|
||||
echo -e "${GREEN} ## Uploaded to Codecov! ## ${NC} "
|
||||
else
|
||||
echo -e "${RED} ## Codecov did not collect coverage report! ## ${NC} "
|
||||
fi
|
||||
|
||||
if [ "$TEST_RESULT" -ne "0" ]; then
|
||||
travis_terminate $?
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
- os: linux
|
||||
dist: trusty
|
||||
language: c
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
[](https://travis-ci.org/taosdata/TDengine)
|
||||
[](https://ci.appveyor.com/project/sangshuduo/tdengine-2n8ge/branch/master)
|
||||
[](https://coveralls.io/github/taosdata/TDengine?branch=develop)
|
||||
|
||||
[](https://www.taosdata.com)
|
||||
|
||||
|
|
|
@ -46,18 +46,20 @@ static int32_t tscToInteger(SSQLToken *pToken, int64_t *value, char **endPtr) {
|
|||
return TK_ILLEGAL;
|
||||
}
|
||||
|
||||
int32_t radix = 10;
|
||||
|
||||
int32_t radixList[3] = {16, 8, 2}; // the integer number with different radix: hex, oct, bin
|
||||
if (pToken->type == TK_HEX || pToken->type == TK_OCT || pToken->type == TK_BIN) {
|
||||
radix = radixList[pToken->type - TK_HEX];
|
||||
}
|
||||
|
||||
errno = 0;
|
||||
*value = strtoll(pToken->z, endPtr, radix);
|
||||
*value = strtoll(pToken->z, endPtr, 0);
|
||||
if (**endPtr == 'e' || **endPtr == 'E' || **endPtr == '.') {
|
||||
errno = 0;
|
||||
double v = round(strtod(pToken->z, endPtr));
|
||||
if (v > INT64_MAX || v <= INT64_MIN) {
|
||||
errno = ERANGE;
|
||||
} else {
|
||||
*value = v;
|
||||
}
|
||||
}
|
||||
|
||||
// not a valid integer number, return error
|
||||
if ((pToken->type == TK_STRING || pToken->type == TK_ID) && ((*endPtr - pToken->z) != pToken->n)) {
|
||||
if (*endPtr - pToken->z != pToken->n) {
|
||||
return TK_ILLEGAL;
|
||||
}
|
||||
|
||||
|
@ -73,11 +75,11 @@ static int32_t tscToDouble(SSQLToken *pToken, double *value, char **endPtr) {
|
|||
*value = strtod(pToken->z, endPtr);
|
||||
|
||||
// not a valid integer number, return error
|
||||
if ((pToken->type == TK_STRING || pToken->type == TK_ID) && ((*endPtr - pToken->z) != pToken->n)) {
|
||||
if ((*endPtr - pToken->z) != pToken->n) {
|
||||
return TK_ILLEGAL;
|
||||
} else {
|
||||
return pToken->type;
|
||||
}
|
||||
|
||||
return pToken->type;
|
||||
}
|
||||
|
||||
int tsParseTime(SSQLToken *pToken, int64_t *time, char **next, char *error, int16_t timePrec) {
|
||||
|
|
|
@ -56,70 +56,8 @@ void taosMsleep(int mseconds) {
|
|||
|
||||
bool taosCheckPthreadValid(pthread_t thread) { return thread != 0; }
|
||||
|
||||
void taosResetPthread(pthread_t *thread) { *thread = 0; }
|
||||
|
||||
int64_t taosGetPthreadId() { return (int64_t)pthread_self(); }
|
||||
|
||||
/*
|
||||
* Function to get the private ip address of current machine. If get IP
|
||||
* successfully, return 0, else, return -1. The return values is ip.
|
||||
*
|
||||
* Use:
|
||||
* if (taosGetPrivateIp(ip) != 0) {
|
||||
* perror("Fail to get private IP address\n");
|
||||
* exit(EXIT_FAILURE);
|
||||
* }
|
||||
*/
|
||||
int taosGetPrivateIp(char *const ip) {
|
||||
bool hasLoCard = false;
|
||||
|
||||
struct ifaddrs *ifaddr, *ifa;
|
||||
int family, s;
|
||||
char host[NI_MAXHOST];
|
||||
|
||||
if (getifaddrs(&ifaddr) == -1) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Walk through linked list, maintaining head pointer so we can free list later */
|
||||
int flag = 0;
|
||||
for (ifa = ifaddr; ifa != NULL; ifa = ifa->ifa_next) {
|
||||
if (ifa->ifa_addr == NULL) continue;
|
||||
|
||||
family = ifa->ifa_addr->sa_family;
|
||||
if (strcmp("lo", ifa->ifa_name) == 0) {
|
||||
hasLoCard = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (family == AF_INET) {
|
||||
/* printf("%-8s", ifa->ifa_name); */
|
||||
s = getnameinfo(ifa->ifa_addr, (family == AF_INET) ? sizeof(struct sockaddr_in) : sizeof(struct sockaddr_in6),
|
||||
host, NI_MAXHOST, NULL, 0, NI_NUMERICHOST);
|
||||
if (s != 0) {
|
||||
freeifaddrs(ifaddr);
|
||||
return -1;
|
||||
}
|
||||
|
||||
strcpy(ip, host);
|
||||
flag = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
freeifaddrs(ifaddr);
|
||||
if (flag) {
|
||||
return 0;
|
||||
} else {
|
||||
if (hasLoCard) {
|
||||
uPrint("no net card was found, use lo:127.0.0.1 as default");
|
||||
strcpy(ip, "127.0.0.1");
|
||||
return 0;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
int taosSetNonblocking(int sock, int on) {
|
||||
int flags = 0;
|
||||
if ((flags = fcntl(sock, F_GETFL, 0)) < 0) {
|
||||
|
@ -294,21 +232,6 @@ ssize_t twrite(int fd, void *buf, size_t n) {
|
|||
return n;
|
||||
}
|
||||
|
||||
bool taosSkipSocketCheck() {
|
||||
struct utsname buf;
|
||||
if (uname(&buf)) {
|
||||
uPrint("can't fetch os info");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (strstr(buf.release, "Microsoft") != 0) {
|
||||
uPrint("using WSLv1");
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void taosBlockSIGPIPE() {
|
||||
sigset_t signal_mask;
|
||||
sigemptyset(&signal_mask);
|
||||
|
|
|
@ -213,10 +213,10 @@ uint32_t tsdbGetFileInfo(TSDB_REPO_T *repo, char *name, uint32_t *index, uint32_
|
|||
SFileGroup *pFGroup =
|
||||
taosbsearch(&fid, pFileH->pFGroup, pFileH->nFGroups, sizeof(SFileGroup), keyFGroupCompFunc, TD_GE);
|
||||
if (pFGroup->fileId == fid) {
|
||||
strcpy(fname, pFGroup->files[(*index) % 3].fname);
|
||||
fname = strdup(pFGroup->files[(*index) % 3].fname);
|
||||
} else {
|
||||
if (pFGroup->fileId * 3 + 2 < eindex) {
|
||||
strcpy(fname, pFGroup->files[0].fname);
|
||||
fname = strdup(pFGroup->files[0].fname);
|
||||
*index = pFGroup->fileId * 3;
|
||||
} else {
|
||||
tfree(sdup);
|
||||
|
|
|
@ -99,6 +99,7 @@ int tsdbInsertRowToMem(STsdbRepo *pRepo, SDataRow row, STable *pTable) {
|
|||
if (tSkipListPut(pTableData->pData, pNode) == NULL) {
|
||||
tsdbFreeBytes(pRepo, (void *)pNode, bytes);
|
||||
} else {
|
||||
if (TABLE_LASTKEY(pTable) < key) TABLE_LASTKEY(pTable) = key;
|
||||
if (pMemTable->keyFirst > key) pMemTable->keyFirst = key;
|
||||
if (pMemTable->keyLast < key) pMemTable->keyLast = key;
|
||||
pMemTable->numOfRows++;
|
||||
|
@ -586,6 +587,7 @@ static int tsdbCommitToFile(STsdbRepo *pRepo, int fid, SCommitIter *iters, SRWHe
|
|||
goto _err;
|
||||
}
|
||||
|
||||
tfree(dataDir);
|
||||
tsdbCloseHelperFile(pHelper, 0);
|
||||
|
||||
pthread_rwlock_wrlock(&(pFileH->fhlock));
|
||||
|
|
Loading…
Reference in New Issue