diff --git a/README.md b/README.md index 41629d6df392ec069d6a0660f82ac9d0cb815170..2d84389f78365025bbb579497ba87956bf24313e 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ [![Build Status](https://travis-ci.org/taosdata/TDengine.svg?branch=master)](https://travis-ci.org/taosdata/TDengine) [![Build status](https://ci.appveyor.com/api/projects/status/kf3pwh2or5afsgl9/branch/master?svg=true)](https://ci.appveyor.com/project/sangshuduo/tdengine-2n8ge/branch/master) [![Coverage Status](https://coveralls.io/repos/github/taosdata/TDengine/badge.svg?branch=develop)](https://coveralls.io/github/taosdata/TDengine?branch=develop) +[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/4201/badge)](https://bestpractices.coreinfrastructure.org/projects/4201) [![TDengine](TDenginelogo.png)](https://www.taosdata.com) diff --git a/packaging/release.sh b/packaging/release.sh index 7a585431a2cc5e85d8670b8824b782d9f6b6eb91..2302b4587587ca43d9ebfb0d63364f4ae86cff0e 100755 --- a/packaging/release.sh +++ b/packaging/release.sh @@ -10,6 +10,7 @@ set -e # -o [Linux | Kylin | Alpine | Raspberrypi | Darwin | Windows | ...] # -V [stable | beta] # -l [full | lite] +# -n [2.0.0.3] # set parameters by default value verMode=edge # [cluster, edge] @@ -17,8 +18,9 @@ verType=stable # [stable, beta] cpuType=x64 # [aarch32 | aarch64 | x64 | x86 | mips64 ...] osType=Linux # [Linux | Kylin | Alpine | Raspberrypi | Darwin | Windows | ...] pagMode=full # [full | lite] +verNumber="" -while getopts "hv:V:c:o:l:" arg +while getopts "hv:V:c:o:l:n:" arg do case $arg in v) @@ -37,12 +39,21 @@ do #echo "pagMode=$OPTARG" pagMode=$(echo $OPTARG) ;; + n) + #echo "verNumber=$OPTARG" + verNumber=$(echo $OPTARG) + ;; o) #echo "osType=$OPTARG" osType=$(echo $OPTARG) ;; h) - echo "Usage: `basename $0` -v [cluster | edge] -c [aarch32 | aarch64 | x64 | x86 | mips64 ...] -o [Linux | Kylin | Alpine | Raspberrypi | Darwin | Windows | ...] -V [stable | beta] -l [full | lite]" + echo "Usage: `basename $0` -v [cluster | edge] " + echo " -c [aarch32 | aarch64 | x64 | x86 | mips64 ...] " + echo " -o [Linux | Kylin | Alpine | Raspberrypi | Darwin | Windows | ...] " + echo " -V [stable | beta] " + echo " -l [full | lite] " + echo " -n [version number] " exit 0 ;; ?) #unknow option @@ -52,7 +63,7 @@ do esac done -echo "verMode=${verMode} verType=${verType} cpuType=${cpuType} osType=${osType} pagMode=${pagMode}" +echo "verMode=${verMode} verType=${verType} cpuType=${cpuType} osType=${osType} pagMode=${pagMode} verNumber=${verNumber}" curr_dir=$(pwd) @@ -80,7 +91,6 @@ function is_valid_version() { if [[ $1 =~ $rx ]]; then return 0 fi - return 1 } @@ -89,26 +99,25 @@ function vercomp () { echo 0 exit 0 fi + local IFS=. local i ver1=($1) ver2=($2) + # fill empty fields in ver1 with zeros for ((i=${#ver1[@]}; i<${#ver2[@]}; i++)); do ver1[i]=0 done for ((i=0; i<${#ver1[@]}; i++)); do - if [[ -z ${ver2[i]} ]] - then + if [[ -z ${ver2[i]} ]]; then # fill empty fields in ver2 with zeros ver2[i]=0 fi - if ((10#${ver1[i]} > 10#${ver2[i]})) - then + if ((10#${ver1[i]} > 10#${ver2[i]})); then echo 1 exit 0 fi - if ((10#${ver1[i]} < 10#${ver2[i]})) - then + if ((10#${ver1[i]} < 10#${ver2[i]})); then echo 2 exit 0 fi @@ -120,10 +129,11 @@ function vercomp () { version=$(cat ${versioninfo} | grep " version" | cut -d '"' -f2) compatible_version=$(cat ${versioninfo} | grep " compatible_version" | cut -d '"' -f2) -while true; do - read -p "Do you want to release a new version? [y/N]: " is_version_change +if [ -z ${verNumber} ]; then + while true; do + read -p "Do you want to release a new version? [y/N]: " is_version_change - if [[ ( "${is_version_change}" == "y") || ( "${is_version_change}" == "Y") ]]; then + if [[ ( "${is_version_change}" == "y") || ( "${is_version_change}" == "Y") ]]; then read -p "Please enter the new version: " tversion while true; do if (! is_valid_version $tversion) || [ "$(vercomp $tversion $version)" = '2' ]; then @@ -152,13 +162,24 @@ while true; do done break - elif [[ ( "${is_version_change}" == "n") || ( "${is_version_change}" == "N") ]]; then + elif [[ ( "${is_version_change}" == "n") || ( "${is_version_change}" == "N") ]]; then echo "Use old version: ${version} compatible version: ${compatible_version}." break - else + else continue - fi -done + fi + done +else + echo "old version: $version, new version: $verNumber" + #if ( ! is_valid_version $verNumber ) || [[ "$(vercomp $version $verNumber)" == '2' ]]; then + # echo "please enter correct version" + # exit 0 + #else + version=${verNumber} + #fi +fi + +echo "=======================new version number: ${version}======================================" # output the version info to the buildinfo file. build_time=$(date +"%F %R") diff --git a/packaging/tools/install.sh b/packaging/tools/install.sh index 0700ed46828674ac0eda71643c65f4b4b462f2cb..f27595a3566dee7fc3df53a0925f68cc9ab9721d 100644 --- a/packaging/tools/install.sh +++ b/packaging/tools/install.sh @@ -168,6 +168,7 @@ function install_bin() { ${csudo} rm -f ${bin_link_dir}/taosdemo || : ${csudo} rm -f ${bin_link_dir}/rmtaos || : ${csudo} rm -f ${bin_link_dir}/tarbitrator || : + ${csudo} rm -f ${bin_link_dir}/set_core || : ${csudo} cp -r ${script_dir}/bin/* ${install_main_dir}/bin && ${csudo} chmod 0555 ${install_main_dir}/bin/* @@ -176,6 +177,7 @@ function install_bin() { [ -x ${install_main_dir}/bin/taosd ] && ${csudo} ln -s ${install_main_dir}/bin/taosd ${bin_link_dir}/taosd || : [ -x ${install_main_dir}/bin/taosdemo ] && ${csudo} ln -s ${install_main_dir}/bin/taosdemo ${bin_link_dir}/taosdemo || : [ -x ${install_main_dir}/bin/remove.sh ] && ${csudo} ln -s ${install_main_dir}/bin/remove.sh ${bin_link_dir}/rmtaos || : + [ -x ${install_main_dir}/bin/set_core.sh ] && ${csudo} ln -s ${install_main_dir}/bin/set_core.sh ${bin_link_dir}/set_core || : [ -x ${install_main_dir}/bin/tarbitrator ] && ${csudo} ln -s ${install_main_dir}/bin/tarbitrator ${bin_link_dir}/tarbitrator || : if [ "$verMode" == "cluster" ]; then @@ -196,8 +198,10 @@ function install_lib() { ${csudo} ln -s ${install_main_dir}/driver/libtaos.* ${lib_link_dir}/libtaos.so.1 ${csudo} ln -s ${lib_link_dir}/libtaos.so.1 ${lib_link_dir}/libtaos.so - ${csudo} ln -s ${install_main_dir}/driver/libtaos.* ${lib64_link_dir}/libtaos.so.1 || : - ${csudo} ln -s ${lib64_link_dir}/libtaos.so.1 ${lib64_link_dir}/libtaos.so || : + if [ -d ${lib64_link_dir} ]; then + ${csudo} ln -s ${install_main_dir}/driver/libtaos.* ${lib64_link_dir}/libtaos.so.1 || : + ${csudo} ln -s ${lib64_link_dir}/libtaos.so.1 ${lib64_link_dir}/libtaos.so || : + fi #if [ "$verMode" == "cluster" ]; then # # Compatible with version 1.5 @@ -205,6 +209,8 @@ function install_lib() { # ${csudo} ln -s ${install_main_dir}/connector/taos-jdbcdriver-1.0.2-dist.jar ${v15_java_app_dir}/JDBCDriver-1.0.2-dist.jar # ${csudo} chmod 777 ${v15_java_app_dir} || : #fi + + ${csudo} ldconfig } function install_header() { diff --git a/packaging/tools/install_client.sh b/packaging/tools/install_client.sh index 0ec8dbd0cce46cd6861ef4f93b4b180df949a65f..6a1b7be191b626f59ab61510a6c2b701b85bca9e 100755 --- a/packaging/tools/install_client.sh +++ b/packaging/tools/install_client.sh @@ -88,6 +88,7 @@ function install_bin() { ${csudo} rm -f ${bin_link_dir}/taosdump || : fi ${csudo} rm -f ${bin_link_dir}/rmtaos || : + ${csudo} rm -f ${bin_link_dir}/set_core || : ${csudo} cp -r ${script_dir}/bin/* ${install_main_dir}/bin && ${csudo} chmod 0555 ${install_main_dir}/bin/* @@ -97,6 +98,7 @@ function install_bin() { [ -x ${install_main_dir}/bin/taosdump ] && ${csudo} ln -s ${install_main_dir}/bin/taosdump ${bin_link_dir}/taosdump || : fi [ -x ${install_main_dir}/bin/remove_client.sh ] && ${csudo} ln -s ${install_main_dir}/bin/remove_client.sh ${bin_link_dir}/rmtaos || : + [ -x ${install_main_dir}/bin/set_core.sh ] && ${csudo} ln -s ${install_main_dir}/bin/set_core.sh ${bin_link_dir}/set_core || : } function clean_lib() { @@ -115,12 +117,17 @@ function install_lib() { if [ "$osType" != "Darwin" ]; then ${csudo} ln -s ${install_main_dir}/driver/libtaos.* ${lib_link_dir}/libtaos.so.1 ${csudo} ln -s ${lib_link_dir}/libtaos.so.1 ${lib_link_dir}/libtaos.so - ${csudo} ln -s ${install_main_dir}/driver/libtaos.* ${lib64_link_dir}/libtaos.so.1 || : - ${csudo} ln -s ${lib64_link_dir}/libtaos.so.1 ${lib64_link_dir}/libtaos.so || : + + if [ -d "${lib64_link_dir}" ]; then + ${csudo} ln -s ${install_main_dir}/driver/libtaos.* ${lib64_link_dir}/libtaos.so.1 || : + ${csudo} ln -s ${lib64_link_dir}/libtaos.so.1 ${lib64_link_dir}/libtaos.so || : + fi else ${csudo} ln -s ${install_main_dir}/driver/libtaos.* ${lib_link_dir}/libtaos.1.dylib ${csudo} ln -s ${lib_link_dir}/libtaos.1.dylib ${lib_link_dir}/libtaos.dylib fi + + ${csudo} ldconfig } function install_header() { diff --git a/packaging/tools/make_install.sh b/packaging/tools/make_install.sh index 2200c7f13d20ecd19b75c8fe39185a3c69558f22..1a5c4d75b5f1ff9d98b62923d96eb3f45c619468 100755 --- a/packaging/tools/make_install.sh +++ b/packaging/tools/make_install.sh @@ -34,6 +34,7 @@ cfg_install_dir="/etc/taos" if [ "$osType" != "Darwin" ]; then bin_link_dir="/usr/bin" lib_link_dir="/usr/lib" + lib64_link_dir="/usr/lib64" inc_link_dir="/usr/include" else bin_link_dir="/usr/local/bin" @@ -141,6 +142,7 @@ function install_bin() { ${csudo} rm -f ${bin_link_dir}/taosd || : ${csudo} rm -f ${bin_link_dir}/taosdemo || : ${csudo} rm -f ${bin_link_dir}/taosdump || : + ${csudo} rm -f ${bin_link_dir}/set_core || : fi ${csudo} rm -f ${bin_link_dir}/rmtaos || : @@ -149,6 +151,7 @@ function install_bin() { if [ "$osType" != "Darwin" ]; then ${csudo} cp -r ${script_dir}/remove.sh ${install_main_dir}/bin + ${csudo} cp -r ${script_dir}/set_core.sh ${install_main_dir}/bin else ${csudo} cp -r ${script_dir}/remove_client.sh ${install_main_dir}/bin fi @@ -161,6 +164,7 @@ function install_bin() { [ -x ${install_main_dir}/bin/taosd ] && ${csudo} ln -s ${install_main_dir}/bin/taosd ${bin_link_dir}/taosd || : [ -x ${install_main_dir}/bin/taosdump ] && ${csudo} ln -s ${install_main_dir}/bin/taosdump ${bin_link_dir}/taosdump || : [ -x ${install_main_dir}/bin/taosdemo ] && ${csudo} ln -s ${install_main_dir}/bin/taosdemo ${bin_link_dir}/taosdemo || : + [ -x ${install_main_dir}/set_core.sh ] && ${csudo} ln -s ${install_main_dir}/bin/set_core.sh ${bin_link_dir}/set_core || : fi if [ "$osType" != "Darwin" ]; then @@ -173,17 +177,25 @@ function install_bin() { function install_lib() { # Remove links ${csudo} rm -f ${lib_link_dir}/libtaos.* || : + ${csudo} rm -f ${lib64_link_dir}/libtaos.* || : versioninfo=$(${script_dir}/get_version.sh ${source_dir}/src/util/src/version.c) if [ "$osType" != "Darwin" ]; then ${csudo} cp ${binary_dir}/build/lib/libtaos.so.${versioninfo} ${install_main_dir}/driver && ${csudo} chmod 777 ${install_main_dir}/driver/* ${csudo} ln -sf ${install_main_dir}/driver/libtaos.so.${versioninfo} ${lib_link_dir}/libtaos.so.1 ${csudo} ln -sf ${lib_link_dir}/libtaos.so.1 ${lib_link_dir}/libtaos.so + + if [ -d "${lib64_link_dir}" ]; then + ${csudo} ln -sf ${install_main_dir}/driver/libtaos.so.${versioninfo} ${lib64_link_dir}/libtaos.so.1 + ${csudo} ln -sf ${lib64_link_dir}/libtaos.so.1 ${lib64_link_dir}/libtaos.so + fi else ${csudo} cp ${binary_dir}/build/lib/libtaos.${versioninfo}.dylib ${install_main_dir}/driver && ${csudo} chmod 777 ${install_main_dir}/driver/* ${csudo} ln -sf ${install_main_dir}/driver/libtaos.${versioninfo}.dylib ${lib_link_dir}/libtaos.1.dylib ${csudo} ln -sf ${lib_link_dir}/libtaos.1.dylib ${lib_link_dir}/libtaos.dylib fi + + ${csudo} ldconfig } function install_header() { diff --git a/packaging/tools/makeclient.sh b/packaging/tools/makeclient.sh index 6120f9fcc2bb676b716be5172967bd7dfe2f0090..855d0b9c27cce54d5fd15d99179a451b5a966096 100755 --- a/packaging/tools/makeclient.sh +++ b/packaging/tools/makeclient.sh @@ -45,7 +45,7 @@ if [ "$osType" != "Darwin" ]; then strip ${build_dir}/bin/taos bin_files="${build_dir}/bin/taos ${script_dir}/remove_client.sh" else - bin_files="${build_dir}/bin/taos ${build_dir}/bin/taosdump ${script_dir}/remove_client.sh" + bin_files="${build_dir}/bin/taos ${build_dir}/bin/taosdump ${script_dir}/remove_client.sh ${script_dir}/set_core.sh" fi lib_files="${build_dir}/lib/libtaos.so.${version}" else diff --git a/packaging/tools/makepkg.sh b/packaging/tools/makepkg.sh index 1d65dd8069d1faf960d4b73100a162558b2ea7b8..16e0354dcfd086486b167c71cd21c57ae43f7365 100755 --- a/packaging/tools/makepkg.sh +++ b/packaging/tools/makepkg.sh @@ -36,7 +36,7 @@ if [ "$pagMode" == "lite" ]; then strip ${build_dir}/bin/taos bin_files="${build_dir}/bin/taosd ${build_dir}/bin/taos ${script_dir}/remove.sh" else - bin_files="${build_dir}/bin/taosd ${build_dir}/bin/taos ${build_dir}/bin/taosdemo ${build_dir}/bin/tarbitrator ${script_dir}/remove.sh" + bin_files="${build_dir}/bin/taosd ${build_dir}/bin/taos ${build_dir}/bin/taosdemo ${build_dir}/bin/tarbitrator ${script_dir}/remove.sh ${script_dir}/set_core.sh" fi lib_files="${build_dir}/lib/libtaos.so.${version}" diff --git a/packaging/tools/post.sh b/packaging/tools/post.sh index e9a742e63219e87dce4d8e82904f3c538403eb0d..0feb64c795159b67920c8a39b53b0125dfb565bf 100755 --- a/packaging/tools/post.sh +++ b/packaging/tools/post.sh @@ -90,6 +90,7 @@ function install_bin() { ${csudo} rm -f ${bin_link_dir}/taosd || : ${csudo} rm -f ${bin_link_dir}/taosdemo || : ${csudo} rm -f ${bin_link_dir}/rmtaos || : + ${csudo} rm -f ${bin_link_dir}/set_core || : ${csudo} chmod 0555 ${bin_dir}/* @@ -97,7 +98,7 @@ function install_bin() { [ -x ${bin_dir}/taos ] && ${csudo} ln -s ${bin_dir}/taos ${bin_link_dir}/taos || : [ -x ${bin_dir}/taosd ] && ${csudo} ln -s ${bin_dir}/taosd ${bin_link_dir}/taosd || : [ -x ${bin_dir}/taosdemo ] && ${csudo} ln -s ${bin_dir}/taosdemo ${bin_link_dir}/taosdemo || : -# [ -x ${bin_dir}/remove.sh ] && ${csudo} ln -s ${bin_dir}/remove.sh ${bin_link_dir}/rmtaos || : + [ -x ${bin_dir}/set_core.sh ] && ${csudo} ln -s ${bin_dir}/set_core.sh ${bin_link_dir}/set_core || : } function install_config() { diff --git a/packaging/tools/preun.sh b/packaging/tools/preun.sh index 0533410802c09e0aee2e60766d5c621dd53c4272..07b43c0e49d56fd136747399c3c71fdb1885bea3 100755 --- a/packaging/tools/preun.sh +++ b/packaging/tools/preun.sh @@ -8,6 +8,7 @@ NC='\033[0m' bin_link_dir="/usr/bin" lib_link_dir="/usr/lib" +lib64_link_dir="/usr/lib64" inc_link_dir="/usr/include" data_link_dir="/usr/local/taos/data" @@ -104,10 +105,12 @@ ${csudo} rm -f ${bin_link_dir}/taos || : ${csudo} rm -f ${bin_link_dir}/taosd || : ${csudo} rm -f ${bin_link_dir}/taosdemo || : ${csudo} rm -f ${bin_link_dir}/taosdump || : +${csudo} rm -f ${bin_link_dir}/set_core || : ${csudo} rm -f ${cfg_link_dir}/* || : ${csudo} rm -f ${inc_link_dir}/taos.h || : -${csudo} rm -f ${inc_link_dir}/taoserror.h || : -${csudo} rm -f ${lib_link_dir}/libtaos.* || : +${csudo} rm -f ${inc_link_dir}/taoserror.h || : +${csudo} rm -f ${lib_link_dir}/libtaos.* || : +${csudo} rm -f ${lib64_link_dir}/libtaos.* || : ${csudo} rm -f ${log_link_dir} || : ${csudo} rm -f ${data_link_dir} || : diff --git a/packaging/tools/set_core.sh b/packaging/tools/set_core.sh new file mode 100755 index 0000000000000000000000000000000000000000..083b0516dbb03daafe8c19548b7fac494af7d24a --- /dev/null +++ b/packaging/tools/set_core.sh @@ -0,0 +1,20 @@ +#!/bin/bash +# +# This file is used to set config for core when taosd crash + +set -e +# set -x + +csudo="" +if command -v sudo > /dev/null; then + csudo="sudo" +fi + +#ulimit -c unlimited +${csudo} sed -i '/ulimit -c unlimited/d' /etc/profile ||: +${csudo} sed -i '$a\ulimit -c unlimited' /etc/profile ||: +source /etc/profile + +${csudo} mkdir -p /coredump ||: +${csudo} sysctl -w kernel.core_pattern='/coredump/core-%e-%p' ||: +${csudo} echo '/coredump/core-%e-%p' | ${csudo} tee /proc/sys/kernel/core_pattern ||: diff --git a/src/common/src/tglobal.c b/src/common/src/tglobal.c index 3747264123c7825abe95ec3fbd8ef603c0643c87..391e5f5935069e285dab3bf1475b007d2bcd5ef7 100644 --- a/src/common/src/tglobal.c +++ b/src/common/src/tglobal.c @@ -54,7 +54,7 @@ int8_t tsDaylight = 0; char tsTimezone[TSDB_TIMEZONE_LEN] = {0}; char tsLocale[TSDB_LOCALE_LEN] = {0}; char tsCharset[TSDB_LOCALE_LEN] = {0}; // default encode string -int32_t tsEnableCoreFile = 0; +int32_t tsEnableCoreFile = 1; int32_t tsMaxBinaryDisplayWidth = 30; /*