You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2022/11/07 02:44:55 UTC

[iotdb] branch master updated: Fixed the bugs of shell (#7910)

This is an automated email from the ASF dual-hosted git repository.

qiaojialin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/master by this push:
     new 523e82a437 Fixed the bugs of shell (#7910)
523e82a437 is described below

commit 523e82a437df19b9c8cfd20d1032c3a7178b977d
Author: Caideyipi <87...@users.noreply.github.com>
AuthorDate: Mon Nov 7 10:44:47 2022 +0800

    Fixed the bugs of shell (#7910)
    
    * Changed the handling logic of removed datanode register
    * Fixed bugs of shells
    1、Fixed the bug that configuration of confignode-env doesn't work
    2、Removed some useless codes
---
 .../src/assembly/resources/conf/confignode-env.bat | 22 +-------------------
 .../assembly/resources/sbin/start-confignode.bat   | 24 ++++++----------------
 .../assembly/resources/sbin/start-confignode.sh    |  9 ++++----
 .../iotdb/confignode/manager/node/NodeManager.java |  3 +++
 .../procedure/env/DataNodeRemoveHandler.java       |  3 ++-
 .../impl/statemachine/RegionMigrateProcedure.java  |  2 +-
 .../src/assembly/resources/conf/datanode-env.bat   | 20 ------------------
 .../src/assembly/resources/sbin/start-datanode.bat | 16 ---------------
 .../java/org/apache/iotdb/rpc/TSStatusCode.java    |  1 +
 9 files changed, 19 insertions(+), 81 deletions(-)

diff --git a/confignode/src/assembly/resources/conf/confignode-env.bat b/confignode/src/assembly/resources/conf/confignode-env.bat
index 5d85f351c3..17365c7bc1 100644
--- a/confignode/src/assembly/resources/conf/confignode-env.bat
+++ b/confignode/src/assembly/resources/conf/confignode-env.bat
@@ -87,25 +87,6 @@ if %desired_yg_in_mb% GTR 16384 (
 @REM Minimum heap size
 @REM set HEAP_NEWSIZE="2G"
 
-IF ["%CONFIGNODE_HEAP_OPTS%"] EQU [""] (
-	rem detect Java 8 or 11
-	IF "%JAVA_VERSION%" == "8" (
-		java -d64 -version >nul 2>&1
-		set CONFIGNODE_HEAP_OPTS=-Xmx%MAX_HEAP_SIZE% -Xms%HEAP_NEWSIZE% -Xloggc:"%CONFIGNODE_HOME%\gc.log" -XX:+PrintGCDateStamps -XX:+PrintGCDetails
-		goto end_config_setting
-	) ELSE (
-		goto detect_jdk11_bit_version
-	)
-)
-
-:detect_jdk11_bit_version
-for /f "tokens=1-3" %%j in ('java -version 2^>^&1') do (
-	@rem echo %%j
-	@rem echo %%k
-	@rem echo %%l
-	set BIT_VERSION=%%l
-)
-
 @REM maximum direct memory size
 set MAX_DIRECT_MEMORY_SIZE=%MAX_HEAP_SIZE%
 @REM threads number that may use direct memory, including query threads(8) + merge threads(4) + space left for system(4)
@@ -116,14 +97,13 @@ set temp_buffer_pool_size=1024
 @REM which equals DIRECT_MEMORY_SIZE / threads_number / temp_buffer_pool_size
 set MAX_CACHED_BUFFER_SIZE=%max_heap_size_in_mb%*1024*1024/%threads_number%/%temp_buffer_pool_size%
 
-set CONFIGNODE_HEAP_OPTS=-Xmx%MAX_HEAP_SIZE% -Xms%HEAP_NEWSIZE% -Xlog:gc:"%CONFIGNODE_HOME%\gc.log"
+set CONFIGNODE_HEAP_OPTS=-Xmx%MAX_HEAP_SIZE% -Xms%HEAP_NEWSIZE%
 set CONFIGNODE_HEAP_OPTS=%CONFIGNODE_HEAP_OPTS% -XX:MaxDirectMemorySize=%MAX_DIRECT_MEMORY_SIZE%
 set CONFIGNODE_HEAP_OPTS=%CONFIGNODE_HEAP_OPTS% -Djdk.nio.maxCachedBufferSize=%MAX_CACHED_BUFFER_SIZE%
 
 @REM You can put your env variable here
 @REM set JAVA_HOME=%JAVA_HOME%
 
-:end_config_setting
 @REM set gc log.
 IF "%1" equ "printgc" (
 	IF "%JAVA_VERSION%" == "8" (
diff --git a/confignode/src/assembly/resources/sbin/start-confignode.bat b/confignode/src/assembly/resources/sbin/start-confignode.bat
index c42041e2db..ce1e0f70b5 100644
--- a/confignode/src/assembly/resources/sbin/start-confignode.bat
+++ b/confignode/src/assembly/resources/sbin/start-confignode.bat
@@ -19,6 +19,10 @@
 
 @echo off
 
+echo ```````````````````````````
+echo Starting IoTDB ConfigNode
+echo ```````````````````````````
+
 set PATH="%JAVA_HOME%\bin\";%PATH%
 set "FULL_VERSION="
 set "MAJOR_VERSION="
@@ -125,29 +129,13 @@ set COMMANSLINE=%%b
 goto STR_VISTOR
 )
 
-@REM SETLOCAL DISABLEDELAYEDEXPANSION
-
-echo ```````````````````````````
-echo Starting IoTDB ConfigNode
-echo ```````````````````````````
-
-@REM ----------------------------------------------------------------------------
-@REM SOURCE confignode-env.bat
-IF EXIST "%CONFIGNODE_CONF%\confignode-env.bat" (
-    CALL "%CONFIGNODE_CONF%\confignode-env.bat" %1
-    ) ELSE (
-    echo "can't find %CONFIGNODE_CONF%\confignode-env.bat"
-    )
-if NOT DEFINED MAIN_CLASS set MAIN_CLASS=org.apache.iotdb.confignode.service.ConfigNode
-if NOT DEFINED JAVA_HOME goto :err
-
 @REM ----------------------------------------------------------------------------
 @REM START
 :start
 if %foreground%==yes (
-	java %ILLEGAL_ACCESS_PARAMS% %JAVA_OPTS% %IOTDB_HEAP_OPTS% -cp %CLASSPATH% %IOTDB_JMX_OPTS% %MAIN_CLASS% %CONF_PARAMS%
+	java %ILLEGAL_ACCESS_PARAMS% %JAVA_OPTS% %CONFIGNODE_HEAP_OPTS% -cp %CLASSPATH% %CONFIGNODE_JMX_OPTS% %MAIN_CLASS% %CONF_PARAMS%
 	) ELSE (
-	start javaw %ILLEGAL_ACCESS_PARAMS% %JAVA_OPTS% %IOTDB_HEAP_OPTS% -cp %CLASSPATH% %IOTDB_JMX_OPTS% %MAIN_CLASS% %CONF_PARAMS%
+	start javaw %ILLEGAL_ACCESS_PARAMS% %JAVA_OPTS% %CONFIGNODE_HEAP_OPTS% -cp %CLASSPATH% %CONFIGNODE_JMX_OPTS% %MAIN_CLASS% %CONF_PARAMS%
 	)
 goto finally
 
diff --git a/confignode/src/assembly/resources/sbin/start-confignode.sh b/confignode/src/assembly/resources/sbin/start-confignode.sh
index b522f92c12..b2b36b29f2 100644
--- a/confignode/src/assembly/resources/sbin/start-confignode.sh
+++ b/confignode/src/assembly/resources/sbin/start-confignode.sh
@@ -139,19 +139,20 @@ launch_service() {
           iotdb_parms="$iotdb_parms -Diotdb-foreground=yes"
           if [ "x$JVM_ON_OUT_OF_MEMORY_ERROR_OPT" != "x" ]; then
             [ ! -z "$pidfile" ] && printf "%d" $! > "$pidfile"
-              exec $NUMACTL "$JAVA" $JVM_OPTS "$JVM_ON_OUT_OF_MEMORY_ERROR_OPT" $illegal_access_params $iotdb_parms $IOTDB_JMX_OPTS -cp "$CLASSPATH" $IOTDB_JVM_OPTS "$class" $PARAMS
+              # shellcheck disable=SC2154
+              exec $NUMACTL "$JAVA" $JVM_OPTS "$JVM_ON_OUT_OF_MEMORY_ERROR_OPT" $illegal_access_params $iotdb_parms $CONFIGNODE_JMX_OPTS -cp "$CLASSPATH" $IOTDB_JVM_OPTS "$class" $PARAMS
           else
               [ ! -z "$pidfile" ] && printf "%d" $! > "$pidfile"
-              exec $NUMACTL "$JAVA" $JVM_OPTS $illegal_access_params $iotdb_parms $IOTDB_JMX_OPTS -cp "$CLASSPATH" $IOTDB_JVM_OPTS "$class" $PARAMS
+              exec $NUMACTL "$JAVA" $JVM_OPTS $illegal_access_params $iotdb_parms $CONFIGNODE_JMX_OPTS -cp "$CLASSPATH" $IOTDB_JVM_OPTS "$class" $PARAMS
           fi
       # Startup IoTDB, background it, and write the pid.
       else
           if [ "x$JVM_ON_OUT_OF_MEMORY_ERROR_OPT" != "x" ]; then
-                exec $NUMACTL "$JAVA" $JVM_OPTS "$JVM_ON_OUT_OF_MEMORY_ERROR_OPT" $illegal_access_params $iotdb_parms $IOTDB_JMX_OPTS -cp "$CLASSPATH" $IOTDB_JVM_OPTS "$class" $PARAMS 2>&1 > /dev/null  <&- &
+                exec $NUMACTL "$JAVA" $JVM_OPTS "$JVM_ON_OUT_OF_MEMORY_ERROR_OPT" $illegal_access_params $iotdb_parms $CONFIGNODE_JMX_OPTS -cp "$CLASSPATH" $IOTDB_JVM_OPTS "$class" $PARAMS 2>&1 > /dev/null  <&- &
                 [ ! -z "$pidfile" ] && printf "%d" $! > "$pidfile"
                 true
           else
-                exec $NUMACTL "$JAVA" $JVM_OPTS $illegal_access_params $iotdb_parms $IOTDB_JMX_OPTS -cp "$CLASSPATH" $IOTDB_JVM_OPTS "$class" $PARAMS 2>&1 > /dev/null <&- &
+                exec $NUMACTL "$JAVA" $JVM_OPTS $illegal_access_params $iotdb_parms $CONFIGNODE_JMX_OPTS -cp "$CLASSPATH" $IOTDB_JVM_OPTS "$class" $PARAMS 2>&1 > /dev/null <&- &
                 [ ! -z "$pidfile" ] && printf "%d" $! > "$pidfile"
                 true
           fi
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/manager/node/NodeManager.java b/confignode/src/main/java/org/apache/iotdb/confignode/manager/node/NodeManager.java
index bbfbf5e6ef..505dde2076 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/node/NodeManager.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/manager/node/NodeManager.java
@@ -248,6 +248,9 @@ public class NodeManager {
 
       status.setCode(TSStatusCode.SUCCESS_STATUS.getStatusCode());
       status.setMessage("registerDataNode success.");
+    } else {
+      status.setCode(TSStatusCode.REJECT_REMOVED_DATANODE.getStatusCode());
+      status.setMessage("Cannot register datanode, maybe this datanode is already removed.");
     }
 
     dataSet.setStatus(status);
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/procedure/env/DataNodeRemoveHandler.java b/confignode/src/main/java/org/apache/iotdb/confignode/procedure/env/DataNodeRemoveHandler.java
index a5f1cc5b2e..b4d4394dba 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/procedure/env/DataNodeRemoveHandler.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/procedure/env/DataNodeRemoveHandler.java
@@ -142,7 +142,7 @@ public class DataNodeRemoveHandler {
     if (regionReplicaNodes.isEmpty()) {
       LOGGER.warn("Not find region replica nodes, region: {}", regionId);
       status = new TSStatus(TSStatusCode.MIGRATE_REGION_ERROR.getStatusCode());
-      status.setMessage("not find region replica nodes, region: " + regionId);
+      status.setMessage("Not find region replica nodes, region: " + regionId);
       return null;
     }
 
@@ -378,6 +378,7 @@ public class DataNodeRemoveHandler {
    * @return data node location
    */
   public List<TDataNodeLocation> findRegionReplicaNodes(TConsensusGroupId regionId) {
+    // Through consensus?
     List<TRegionReplicaSet> regionReplicaSets =
         configManager.getPartitionManager().getAllReplicaSets().stream()
             .filter(rg -> rg.regionId.equals(regionId))
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/statemachine/RegionMigrateProcedure.java b/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/statemachine/RegionMigrateProcedure.java
index 6a7706ed6e..5a33553988 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/statemachine/RegionMigrateProcedure.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/statemachine/RegionMigrateProcedure.java
@@ -121,7 +121,7 @@ public class RegionMigrateProcedure
           if (tsStatus.getCode() == SUCCESS_STATUS.getStatusCode()) {
             waitForOneMigrationStepFinished(consensusGroupId, state);
           }
-          // remove consensus group after a node stop, which will be failed, but we will
+          // Remove consensus group after a node stop, which will be failed, but we will
           // continuously execute.
           setNextState(RegionTransitionState.UPDATE_REGION_LOCATION_CACHE);
           break;
diff --git a/server/src/assembly/resources/conf/datanode-env.bat b/server/src/assembly/resources/conf/datanode-env.bat
index 25fac0736c..e1970d5b85 100644
--- a/server/src/assembly/resources/conf/datanode-env.bat
+++ b/server/src/assembly/resources/conf/datanode-env.bat
@@ -87,25 +87,6 @@ if %desired_yg_in_mb% GTR 16384 (
 @REM Minimum heap size
 @REM set HEAP_NEWSIZE="2G"
 
-IF ["%IOTDB_HEAP_OPTS%"] EQU [""] (
-	rem detect Java 8 or 11
-	IF "%JAVA_VERSION%" == "8" (
-		java -d64 -version >nul 2>&1
-		set IOTDB_HEAP_OPTS=-Xmx%MAX_HEAP_SIZE% -Xms%HEAP_NEWSIZE% -Xloggc:"%IOTDB_HOME%\gc.log" -XX:+PrintGCDateStamps -XX:+PrintGCDetails
-		goto end_config_setting
-	) ELSE (
-		goto detect_jdk11_bit_version
-	)
-)
-
-:detect_jdk11_bit_version
-for /f "tokens=1-3" %%j in ('java -version 2^>^&1') do (
-	@rem echo %%j
-	@rem echo %%k
-	@rem echo %%l
-	set BIT_VERSION=%%l
-)
-
 @REM maximum direct memory size
 set MAX_DIRECT_MEMORY_SIZE=%MAX_HEAP_SIZE%
 @REM threads number that may use direct memory, including query threads(8) + merge threads(4) + space left for system(4)
@@ -123,7 +104,6 @@ set IOTDB_HEAP_OPTS=%IOTDB_HEAP_OPTS% -Djdk.nio.maxCachedBufferSize=%MAX_CACHED_
 @REM You can put your env variable here
 @REM set JAVA_HOME=%JAVA_HOME%
 
-:end_config_setting
 @REM set gc log.
 IF "%1" equ "printgc" (
 	IF "%JAVA_VERSION%" == "8" (
diff --git a/server/src/assembly/resources/sbin/start-datanode.bat b/server/src/assembly/resources/sbin/start-datanode.bat
index 1597894d91..318e5e534a 100755
--- a/server/src/assembly/resources/sbin/start-datanode.bat
+++ b/server/src/assembly/resources/sbin/start-datanode.bat
@@ -147,22 +147,6 @@ set COMMANSLINE=%%b
 goto STR_VISTOR
 )
 
-@REM SETLOCAL DISABLEDELAYEDEXPANSION
-
-echo ````````````````````````
-echo Starting IoTDB
-echo ````````````````````````
-
-@REM ----------------------------------------------------------------------------
-@REM SOURCE iotdb-env.bat
-IF EXIST "%IOTDB_CONF%\iotdb-env.bat" (
-    CALL "%IOTDB_CONF%\iotdb-env.bat" %1
-    ) ELSE (
-    echo "can't find %IOTDB_CONF%\iotdb-env.bat"
-    )
-if NOT DEFINED MAIN_CLASS set MAIN_CLASS=org.apache.iotdb.db.service.IoTDB
-if NOT DEFINED JAVA_HOME goto :err
-
 @REM ----------------------------------------------------------------------------
 @REM START
 :start
diff --git a/service-rpc/src/main/java/org/apache/iotdb/rpc/TSStatusCode.java b/service-rpc/src/main/java/org/apache/iotdb/rpc/TSStatusCode.java
index 9d17fad481..134f3a7bce 100644
--- a/service-rpc/src/main/java/org/apache/iotdb/rpc/TSStatusCode.java
+++ b/service-rpc/src/main/java/org/apache/iotdb/rpc/TSStatusCode.java
@@ -178,6 +178,7 @@ public enum TSStatusCode {
   CREATE_TRIGGER_ERROR(922),
   DROP_TRIGGER_ERROR(923),
   UPDATE_DATANODE_FAILED(924),
+  REJECT_REMOVED_DATANODE(925),
 
   NO_SUCH_CQ(930),
   CQ_ALREADY_ACTIVE(931),