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

justinchen pushed a commit to branch restart-check-pw
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/restart-check-pw by this push:
     new f06d79689fa fix
f06d79689fa is described below

commit f06d79689fa166a31f7dbe6de93d3531fa0b3b0b
Author: Caideyipi <[email protected]>
AuthorDate: Mon Feb 9 19:08:24 2026 +0800

    fix
---
 .../manual/AbstractPipeDualTreeModelManualIT.java  | 53 +++++++++++++++------
 .../manual/IoTDBPipeMetaHistoricalIT.java          | 28 ++++++-----
 .../manual/IoTDBPipeMetaLeaderChangeIT.java        | 23 ++++-----
 .../treemodel/manual/IoTDBPipePermissionIT.java    | 24 ++++++----
 .../treemodel/manual/IoTDBPipeReqAutoSliceIT.java  | 17 +++++--
 .../IoTDBPipeTsFileDecompositionWithModsIT.java    | 11 ++---
 .../iotdb/pipe/it/single/AbstractPipeSingleIT.java | 32 ++++++++++---
 .../iotdb/pipe/it/single/IoTDBPipeOPCUAIT.java     | 14 +++---
 .../pipe/it/single/IoTDBPipePermissionIT.java      | 14 +++---
 .../pipe/it/triple/AbstractPipeTripleManualIT.java | 55 ++++++++++++++--------
 10 files changed, 176 insertions(+), 95 deletions(-)

diff --git 
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/manual/AbstractPipeDualTreeModelManualIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/manual/AbstractPipeDualTreeModelManualIT.java
index 11f70d944b6..721d54e344d 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/manual/AbstractPipeDualTreeModelManualIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/manual/AbstractPipeDualTreeModelManualIT.java
@@ -28,29 +28,35 @@ import org.apache.iotdb.itbase.env.BaseEnv;
 
 import org.awaitility.Awaitility;
 import org.junit.After;
+import org.junit.AfterClass;
 import org.junit.Before;
+import org.junit.BeforeClass;
 
 import java.io.File;
+import java.util.Arrays;
 import java.util.Objects;
 import java.util.concurrent.TimeUnit;
 
 public abstract class AbstractPipeDualTreeModelManualIT {
 
+  protected static ThreadLocal<BaseEnv> senderEnvContainer;
+  protected static ThreadLocal<BaseEnv> receiverEnvContainer;
   protected BaseEnv senderEnv;
   protected BaseEnv receiverEnv;
 
-  @Before
-  public void setUp() {
+  @BeforeClass
+  public static void setUp() {
     MultiEnvFactory.createEnv(2);
-    senderEnv = MultiEnvFactory.getEnv(0);
-    receiverEnv = MultiEnvFactory.getEnv(1);
+    senderEnvContainer.set(MultiEnvFactory.getEnv(0));
+    receiverEnvContainer.set(MultiEnvFactory.getEnv(1));
     setupConfig();
-    senderEnv.initClusterEnvironment();
-    receiverEnv.initClusterEnvironment();
+    senderEnvContainer.get().initClusterEnvironment();
+    receiverEnvContainer.get().initClusterEnvironment();
   }
 
-  protected void setupConfig() {
-    senderEnv
+  static void setupConfig() {
+    senderEnvContainer
+        .get()
         .getConfig()
         .getCommonConfig()
         .setAutoCreateSchemaEnabled(false)
@@ -59,9 +65,14 @@ public abstract class AbstractPipeDualTreeModelManualIT {
         .setPipeMemoryManagementEnabled(false)
         .setIsPipeEnableMemoryCheck(false)
         .setPipeAutoSplitFullEnabled(false);
-    
senderEnv.getConfig().getDataNodeConfig().setDataNodeMemoryProportion("3:3:1:1:3:1");
+    senderEnvContainer
+        .get()
+        .getConfig()
+        .getDataNodeConfig()
+        .setDataNodeMemoryProportion("3:3:1:1:3:1");
 
-    receiverEnv
+    receiverEnvContainer
+        .get()
         .getConfig()
         .getCommonConfig()
         .setAutoCreateSchemaEnabled(false)
@@ -72,14 +83,26 @@ public abstract class AbstractPipeDualTreeModelManualIT {
         .setPipeAutoSplitFullEnabled(false);
 
     // 10 min, assert that the operations will not time out
-    senderEnv.getConfig().getCommonConfig().setDnConnectionTimeoutMs(600000);
-    receiverEnv.getConfig().getCommonConfig().setDnConnectionTimeoutMs(600000);
+    
senderEnvContainer.get().getConfig().getCommonConfig().setDnConnectionTimeoutMs(600000);
+    
receiverEnvContainer.get().getConfig().getCommonConfig().setDnConnectionTimeoutMs(600000);
+  }
+
+  @AfterClass
+  public static void tearDown() {
+    senderEnvContainer.get().cleanClusterEnvironment();
+    receiverEnvContainer.get().cleanClusterEnvironment();
+  }
+
+  @Before
+  public void setEnv() {
+    senderEnv = senderEnvContainer.get();
+    receiverEnv = receiverEnvContainer.get();
   }
 
   @After
-  public final void tearDown() {
-    senderEnv.cleanClusterEnvironment();
-    receiverEnv.cleanClusterEnvironment();
+  public final void cleanEnvironment() {
+    TestUtils.executeNonQueries(senderEnv, Arrays.asList("drop database 
root.**"), null);
+    TestUtils.executeNonQueries(receiverEnv, Arrays.asList("drop database 
root.**"), null);
   }
 
   protected static void awaitUntilFlush(BaseEnv env) {
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/manual/IoTDBPipeMetaHistoricalIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/manual/IoTDBPipeMetaHistoricalIT.java
index 5f936cda516..981812b0bf5 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/manual/IoTDBPipeMetaHistoricalIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/manual/IoTDBPipeMetaHistoricalIT.java
@@ -32,7 +32,7 @@ import 
org.apache.iotdb.itbase.category.MultiClusterIT2DualTreeManual;
 import org.apache.iotdb.rpc.TSStatusCode;
 
 import org.junit.Assert;
-import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 import org.junit.runner.RunWith;
@@ -46,14 +46,15 @@ import java.util.Map;
 @RunWith(IoTDBTestRunner.class)
 @Category({MultiClusterIT2DualTreeManual.class})
 public class IoTDBPipeMetaHistoricalIT extends 
AbstractPipeDualTreeModelManualIT {
-  @Override
-  @Before
-  public void setUp() {
+
+  @BeforeClass
+  public static void setUp() {
     MultiEnvFactory.createEnv(2);
-    senderEnv = MultiEnvFactory.getEnv(0);
-    receiverEnv = MultiEnvFactory.getEnv(1);
+    senderEnvContainer.set(MultiEnvFactory.getEnv(0));
+    receiverEnvContainer.set(MultiEnvFactory.getEnv(1));
 
-    senderEnv
+    senderEnvContainer
+        .get()
         .getConfig()
         .getCommonConfig()
         .setAutoCreateSchemaEnabled(false)
@@ -64,8 +65,13 @@ public class IoTDBPipeMetaHistoricalIT extends 
AbstractPipeDualTreeModelManualIT
         .setDnConnectionTimeoutMs(600000)
         .setPipeMemoryManagementEnabled(false)
         .setIsPipeEnableMemoryCheck(false);
-    
senderEnv.getConfig().getDataNodeConfig().setDataNodeMemoryProportion("3:3:1:1:3:1");
-    receiverEnv
+    senderEnvContainer
+        .get()
+        .getConfig()
+        .getDataNodeConfig()
+        .setDataNodeMemoryProportion("3:3:1:1:3:1");
+    receiverEnvContainer
+        .get()
         .getConfig()
         .getCommonConfig()
         .setAutoCreateSchemaEnabled(false)
@@ -79,8 +85,8 @@ public class IoTDBPipeMetaHistoricalIT extends 
AbstractPipeDualTreeModelManualIT
         .setPipeMemoryManagementEnabled(false)
         .setIsPipeEnableMemoryCheck(false);
 
-    senderEnv.initClusterEnvironment();
-    receiverEnv.initClusterEnvironment(3, 3);
+    senderEnvContainer.get().initClusterEnvironment();
+    receiverEnvContainer.get().initClusterEnvironment(3, 3);
   }
 
   @Test
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/manual/IoTDBPipeMetaLeaderChangeIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/manual/IoTDBPipeMetaLeaderChangeIT.java
index 119f7ed59c2..ffca6041794 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/manual/IoTDBPipeMetaLeaderChangeIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/manual/IoTDBPipeMetaLeaderChangeIT.java
@@ -31,7 +31,7 @@ import 
org.apache.iotdb.itbase.category.MultiClusterIT2DualTreeManual;
 import org.apache.iotdb.rpc.TSStatusCode;
 
 import org.junit.Assert;
-import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 import org.junit.runner.RunWith;
@@ -43,14 +43,15 @@ import java.util.Map;
 @RunWith(IoTDBTestRunner.class)
 @Category({MultiClusterIT2DualTreeManual.class})
 public class IoTDBPipeMetaLeaderChangeIT extends 
AbstractPipeDualTreeModelManualIT {
-  @Override
-  @Before
-  public void setUp() {
+
+  @BeforeClass
+  public static void setUp() {
     MultiEnvFactory.createEnv(2);
-    senderEnv = MultiEnvFactory.getEnv(0);
-    receiverEnv = MultiEnvFactory.getEnv(1);
+    senderEnvContainer.set(MultiEnvFactory.getEnv(0));
+    receiverEnvContainer.set(MultiEnvFactory.getEnv(1));
 
-    senderEnv
+    senderEnvContainer
+        .get()
         .getConfig()
         .getCommonConfig()
         .setConfigNodeConsensusProtocolClass(ConsensusFactory.RATIS_CONSENSUS)
@@ -59,11 +60,11 @@ public class IoTDBPipeMetaLeaderChangeIT extends 
AbstractPipeDualTreeModelManual
         .setSchemaReplicationFactor(3);
 
     // 10 min, assert that the operations will not time out
-    senderEnv.getConfig().getCommonConfig().setDnConnectionTimeoutMs(600000);
-    receiverEnv.getConfig().getCommonConfig().setDnConnectionTimeoutMs(600000);
+    
senderEnvContainer.get().getConfig().getCommonConfig().setDnConnectionTimeoutMs(600000);
+    
receiverEnvContainer.get().getConfig().getCommonConfig().setDnConnectionTimeoutMs(600000);
 
-    senderEnv.initClusterEnvironment(3, 3, 180);
-    receiverEnv.initClusterEnvironment();
+    senderEnvContainer.get().initClusterEnvironment(3, 3, 180);
+    receiverEnvContainer.get().initClusterEnvironment();
   }
 
   @Test
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/manual/IoTDBPipePermissionIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/manual/IoTDBPipePermissionIT.java
index 35403c4dc6d..2fc7d68eee7 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/manual/IoTDBPipePermissionIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/manual/IoTDBPipePermissionIT.java
@@ -52,14 +52,15 @@ import static org.junit.Assert.fail;
 @RunWith(IoTDBTestRunner.class)
 @Category({MultiClusterIT2DualTreeManual.class})
 public class IoTDBPipePermissionIT extends AbstractPipeDualTreeModelManualIT {
-  @Override
+
   @Before
-  public void setUp() {
+  public static void setUp() {
     MultiEnvFactory.createEnv(2);
-    senderEnv = MultiEnvFactory.getEnv(0);
-    receiverEnv = MultiEnvFactory.getEnv(1);
+    senderEnvContainer.set(MultiEnvFactory.getEnv(0));
+    receiverEnvContainer.set(MultiEnvFactory.getEnv(1));
 
-    senderEnv
+    senderEnvContainer
+        .get()
         .getConfig()
         .getCommonConfig()
         .setAutoCreateSchemaEnabled(false)
@@ -71,8 +72,13 @@ public class IoTDBPipePermissionIT extends 
AbstractPipeDualTreeModelManualIT {
         .setPipeMemoryManagementEnabled(false)
         .setIsPipeEnableMemoryCheck(false)
         .setPipeAutoSplitFullEnabled(false);
-    
senderEnv.getConfig().getDataNodeConfig().setDataNodeMemoryProportion("3:3:1:1:3:1");
-    receiverEnv
+    senderEnvContainer
+        .get()
+        .getConfig()
+        .getDataNodeConfig()
+        .setDataNodeMemoryProportion("3:3:1:1:3:1");
+    receiverEnvContainer
+        .get()
         .getConfig()
         .getCommonConfig()
         .setAutoCreateSchemaEnabled(false)
@@ -87,8 +93,8 @@ public class IoTDBPipePermissionIT extends 
AbstractPipeDualTreeModelManualIT {
         .setIsPipeEnableMemoryCheck(false)
         .setPipeAutoSplitFullEnabled(false);
 
-    senderEnv.initClusterEnvironment();
-    receiverEnv.initClusterEnvironment(3, 3);
+    senderEnvContainer.get().initClusterEnvironment();
+    receiverEnvContainer.get().initClusterEnvironment(3, 3);
   }
 
   @Test
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/manual/IoTDBPipeReqAutoSliceIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/manual/IoTDBPipeReqAutoSliceIT.java
index 03d119de587..6f123c0da56 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/manual/IoTDBPipeReqAutoSliceIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/manual/IoTDBPipeReqAutoSliceIT.java
@@ -50,11 +50,18 @@ import java.util.Random;
 public class IoTDBPipeReqAutoSliceIT extends AbstractPipeDualTreeModelManualIT 
{
   private static final int generateDataSize = 10;
 
-  @Override
-  protected void setupConfig() {
-    super.setupConfig();
-    
senderEnv.getConfig().getCommonConfig().setPipeConnectorRequestSliceThresholdBytes(4);
-    
receiverEnv.getConfig().getCommonConfig().setPipeConnectorRequestSliceThresholdBytes(4);
+  protected static void setupConfig() {
+    AbstractPipeDualTreeModelManualIT.setupConfig();
+    senderEnvContainer
+        .get()
+        .getConfig()
+        .getCommonConfig()
+        .setPipeConnectorRequestSliceThresholdBytes(4);
+    receiverEnvContainer
+        .get()
+        .getConfig()
+        .getCommonConfig()
+        .setPipeConnectorRequestSliceThresholdBytes(4);
   }
 
   @Test
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/manual/IoTDBPipeTsFileDecompositionWithModsIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/manual/IoTDBPipeTsFileDecompositionWithModsIT.java
index 87571e1eb71..7a448e8a8a7 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/manual/IoTDBPipeTsFileDecompositionWithModsIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/manual/IoTDBPipeTsFileDecompositionWithModsIT.java
@@ -36,12 +36,11 @@ import static 
org.apache.iotdb.db.it.utils.TestUtils.executeNonQueryWithRetry;
 @Category({MultiClusterIT2DualTreeManual.class})
 public class IoTDBPipeTsFileDecompositionWithModsIT extends 
AbstractPipeDualTreeModelManualIT {
 
-  @Override
-  protected void setupConfig() {
-    super.setupConfig();
-    
senderEnv.getConfig().getConfigNodeConfig().setLeaderDistributionPolicy("HASH");
-    senderEnv.getConfig().getCommonConfig().setAutoCreateSchemaEnabled(true);
-    receiverEnv.getConfig().getCommonConfig().setAutoCreateSchemaEnabled(true);
+  protected static void setupConfig() {
+    AbstractPipeDualTreeModelManualIT.setupConfig();
+    
senderEnvContainer.get().getConfig().getConfigNodeConfig().setLeaderDistributionPolicy("HASH");
+    
senderEnvContainer.get().getConfig().getCommonConfig().setAutoCreateSchemaEnabled(true);
+    
receiverEnvContainer.get().getConfig().getCommonConfig().setAutoCreateSchemaEnabled(true);
   }
 
   /**
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/single/AbstractPipeSingleIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/single/AbstractPipeSingleIT.java
index 3ade13c7209..5c7b7c1177e 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/single/AbstractPipeSingleIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/single/AbstractPipeSingleIT.java
@@ -19,31 +19,49 @@
 
 package org.apache.iotdb.pipe.it.single;
 
+import org.apache.iotdb.db.it.utils.TestUtils;
 import org.apache.iotdb.it.env.MultiEnvFactory;
 import org.apache.iotdb.itbase.env.BaseEnv;
 
 import org.junit.After;
+import org.junit.AfterClass;
 import org.junit.Before;
+import org.junit.BeforeClass;
+
+import java.util.Arrays;
 
 abstract class AbstractPipeSingleIT {
 
+  protected static ThreadLocal<BaseEnv> envContainer;
   protected BaseEnv env;
 
-  @Before
-  public void setUp() {
+  @BeforeClass
+  public static void setUp() {
     MultiEnvFactory.createEnv(1);
-    env = MultiEnvFactory.getEnv(0);
-    env.getConfig()
+    envContainer.set(MultiEnvFactory.getEnv(0));
+    envContainer
+        .get()
+        .getConfig()
         .getCommonConfig()
         .setAutoCreateSchemaEnabled(true)
         .setPipeMemoryManagementEnabled(false)
         .setIsPipeEnableMemoryCheck(false)
         .setPipeAutoSplitFullEnabled(false);
-    env.initClusterEnvironment();
+    envContainer.get().initClusterEnvironment();
+  }
+
+  @AfterClass
+  public static void tearDown() {
+    envContainer.get().cleanClusterEnvironment();
+  }
+
+  @Before
+  public void setEnv() {
+    env = envContainer.get();
   }
 
   @After
-  public final void tearDown() {
-    env.cleanClusterEnvironment();
+  public final void cleanEnvironment() {
+    TestUtils.executeNonQueries(env, Arrays.asList("drop database root.**"), 
null);
   }
 }
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/single/IoTDBPipeOPCUAIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/single/IoTDBPipeOPCUAIT.java
index d0c8186b561..2fedcb19b9a 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/single/IoTDBPipeOPCUAIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/single/IoTDBPipeOPCUAIT.java
@@ -46,7 +46,7 @@ import 
org.eclipse.milo.opcua.stack.core.types.builtin.StatusCode;
 import org.eclipse.milo.opcua.stack.core.types.builtin.Variant;
 import org.eclipse.milo.opcua.stack.core.types.enumerated.TimestampsToReturn;
 import org.junit.Assert;
-import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 import org.junit.runner.RunWith;
@@ -67,11 +67,13 @@ import static 
org.apache.iotdb.db.pipe.sink.protocol.opcua.server.OpcUaNameSpace
 @Category({MultiClusterIT1.class})
 public class IoTDBPipeOPCUAIT extends AbstractPipeSingleIT {
 
-  @Before
-  public void setUp() {
+  @BeforeClass
+  public static void setUp() {
     MultiEnvFactory.createEnv(1);
-    env = MultiEnvFactory.getEnv(0);
-    env.getConfig()
+    envContainer.set(MultiEnvFactory.getEnv(0));
+    envContainer
+        .get()
+        .getConfig()
         .getCommonConfig()
         .setAutoCreateSchemaEnabled(true)
         .setPipeMemoryManagementEnabled(false)
@@ -79,7 +81,7 @@ public class IoTDBPipeOPCUAIT extends AbstractPipeSingleIT {
         .setSchemaReplicationFactor(1)
         .setIsPipeEnableMemoryCheck(false)
         .setPipeAutoSplitFullEnabled(false);
-    env.initClusterEnvironment(1, 1);
+    envContainer.get().initClusterEnvironment(1, 1);
   }
 
   @Test
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/single/IoTDBPipePermissionIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/single/IoTDBPipePermissionIT.java
index c7fa9d12c4e..6a9a1ebc9f0 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/single/IoTDBPipePermissionIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/single/IoTDBPipePermissionIT.java
@@ -27,7 +27,7 @@ import org.apache.iotdb.itbase.env.BaseEnv;
 import org.apache.iotdb.pipe.it.dual.tablemodel.TableModelUtils;
 
 import org.junit.Assert;
-import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 import org.junit.runner.RunWith;
@@ -44,11 +44,13 @@ import static org.junit.Assert.fail;
 @Category({MultiClusterIT1.class})
 public class IoTDBPipePermissionIT extends AbstractPipeSingleIT {
 
-  @Before
-  public void setUp() {
+  @BeforeClass
+  public static void setUp() {
     MultiEnvFactory.createEnv(1);
-    env = MultiEnvFactory.getEnv(0);
-    env.getConfig()
+    envContainer.set(MultiEnvFactory.getEnv(0));
+    envContainer
+        .get()
+        .getConfig()
         .getCommonConfig()
         .setAutoCreateSchemaEnabled(true)
         .setPipeMemoryManagementEnabled(false)
@@ -57,7 +59,7 @@ public class IoTDBPipePermissionIT extends 
AbstractPipeSingleIT {
         .setIsPipeEnableMemoryCheck(false)
         .setPipeAutoSplitFullEnabled(false);
     // 1C1D to directly show the remaining count
-    env.initClusterEnvironment(1, 1);
+    envContainer.get().initClusterEnvironment(1, 1);
   }
 
   @Test
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/triple/AbstractPipeTripleManualIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/triple/AbstractPipeTripleManualIT.java
index 917242979b7..cbeac7402ee 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/triple/AbstractPipeTripleManualIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/triple/AbstractPipeTripleManualIT.java
@@ -33,24 +33,30 @@ import java.util.Arrays;
 
 abstract class AbstractPipeTripleManualIT {
 
-  protected static BaseEnv env1;
-  protected static BaseEnv env2;
-  protected static BaseEnv env3;
+  protected static ThreadLocal<BaseEnv> env1Container;
+  protected static ThreadLocal<BaseEnv> env2Container;
+  protected static ThreadLocal<BaseEnv> env3Container;
+
+  protected BaseEnv env1;
+  protected BaseEnv env2;
+  protected BaseEnv env3;
 
   @BeforeClass
   public static void setUp() {
     MultiEnvFactory.createEnv(3);
-    env1 = MultiEnvFactory.getEnv(0);
-    env2 = MultiEnvFactory.getEnv(1);
-    env3 = MultiEnvFactory.getEnv(2);
+    env1Container.set(MultiEnvFactory.getEnv(0));
+    env2Container.set(MultiEnvFactory.getEnv(1));
+    env3Container.set(MultiEnvFactory.getEnv(2));
     setupConfig();
-    env1.initClusterEnvironment(1, 1);
-    env2.initClusterEnvironment(1, 1);
-    env3.initClusterEnvironment(1, 1);
+    env1Container.get().initClusterEnvironment(1, 1);
+    env2Container.get().initClusterEnvironment(1, 1);
+    env3Container.get().initClusterEnvironment(1, 1);
   }
 
   protected static void setupConfig() {
-    env1.getConfig()
+    env1Container
+        .get()
+        .getConfig()
         .getCommonConfig()
         .setAutoCreateSchemaEnabled(false)
         .setConfigNodeConsensusProtocolClass(ConsensusFactory.RATIS_CONSENSUS)
@@ -58,9 +64,11 @@ abstract class AbstractPipeTripleManualIT {
         .setPipeMemoryManagementEnabled(false)
         .setIsPipeEnableMemoryCheck(false)
         .setPipeAutoSplitFullEnabled(false);
-    
env1.getConfig().getDataNodeConfig().setDataNodeMemoryProportion("3:3:1:1:3:1");
+    
env1Container.get().getConfig().getDataNodeConfig().setDataNodeMemoryProportion("3:3:1:1:3:1");
 
-    env2.getConfig()
+    env2Container
+        .get()
+        .getConfig()
         .getCommonConfig()
         .setAutoCreateSchemaEnabled(false)
         .setConfigNodeConsensusProtocolClass(ConsensusFactory.RATIS_CONSENSUS)
@@ -69,7 +77,9 @@ abstract class AbstractPipeTripleManualIT {
         .setIsPipeEnableMemoryCheck(false)
         .setPipeAutoSplitFullEnabled(false);
 
-    env3.getConfig()
+    env3Container
+        .get()
+        .getConfig()
         .getCommonConfig()
         .setAutoCreateSchemaEnabled(false)
         .setConfigNodeConsensusProtocolClass(ConsensusFactory.RATIS_CONSENSUS)
@@ -79,16 +89,23 @@ abstract class AbstractPipeTripleManualIT {
         .setPipeAutoSplitFullEnabled(false);
 
     // 10 min, assert that the operations will not time out
-    env1.getConfig().getCommonConfig().setDnConnectionTimeoutMs(600000);
-    env2.getConfig().getCommonConfig().setDnConnectionTimeoutMs(600000);
-    env3.getConfig().getCommonConfig().setDnConnectionTimeoutMs(600000);
+    
env1Container.get().getConfig().getCommonConfig().setDnConnectionTimeoutMs(600000);
+    
env2Container.get().getConfig().getCommonConfig().setDnConnectionTimeoutMs(600000);
+    
env3Container.get().getConfig().getCommonConfig().setDnConnectionTimeoutMs(600000);
   }
 
   @AfterClass
   public static void tearDown() {
-    env1.cleanClusterEnvironment();
-    env2.cleanClusterEnvironment();
-    env3.cleanClusterEnvironment();
+    env1Container.get().cleanClusterEnvironment();
+    env2Container.get().cleanClusterEnvironment();
+    env3Container.get().cleanClusterEnvironment();
+  }
+
+  @Before
+  public void setEnv() {
+    env1 = env1Container.get();
+    env2 = env2Container.get();
+    env3 = env3Container.get();
   }
 
   @After

Reply via email to