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

jiangtian pushed a commit to branch dev/1.3
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/dev/1.3 by this push:
     new 762ca728672 [To dev/1.3] Pipe: Use async launch to avoid blocking 
datanode start (#17316)
762ca728672 is described below

commit 762ca7286728b2b2c1f7870f10cdf1d050c2e413
Author: Caideyipi <[email protected]>
AuthorDate: Thu Mar 19 12:17:29 2026 +0800

    [To dev/1.3] Pipe: Use async launch to avoid blocking datanode start 
(#17316)
    
    * logger
    
    * async
---
 .../org/apache/iotdb/db/pipe/agent/runtime/PipeAgentLauncher.java     | 2 +-
 .../apache/iotdb/db/pipe/agent/runtime/PipeDataNodeRuntimeAgent.java  | 3 +--
 .../commons/pipe/agent/runtime/AbstractPipePeriodicalJobExecutor.java | 4 ++++
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/runtime/PipeAgentLauncher.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/runtime/PipeAgentLauncher.java
index 77f2b143966..1e1d3388f75 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/runtime/PipeAgentLauncher.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/runtime/PipeAgentLauncher.java
@@ -161,7 +161,7 @@ class PipeAgentLauncher {
         
ConfigNodeClientManager.getInstance().borrowClient(ConfigNodeInfo.CONFIG_REGION_ID))
 {
       final TGetAllPipeInfoResp getAllPipeInfoResp = 
configNodeClient.getAllPipeInfo();
       if (getAllPipeInfoResp.getStatus().getCode() != 
TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
-        throw new StartupException("Failed to get pipe task meta from config 
node.");
+        LOGGER.warn("Failed to get pipe metas, will be synced by configNode 
later...");
       }
 
       PipeDataNodeAgent.task()
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/runtime/PipeDataNodeRuntimeAgent.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/runtime/PipeDataNodeRuntimeAgent.java
index 9da6c154adc..437c15bdc1c 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/runtime/PipeDataNodeRuntimeAgent.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/runtime/PipeDataNodeRuntimeAgent.java
@@ -91,9 +91,8 @@ public class PipeDataNodeRuntimeAgent implements IService {
   @Override
   public synchronized void start() throws StartupException {
     PipeConfig.getInstance().printAllConfigs();
-    PipeAgentLauncher.launchPipeTaskAgent();
-
     pipePeriodicalJobExecutor.start();
+    
pipePeriodicalJobExecutor.runDirectly(PipeAgentLauncher::launchPipeTaskAgent);
 
     if (PipeConfig.getInstance().getPipeEventReferenceTrackingEnabled()) {
       pipePeriodicalPhantomReferenceCleaner.start();
diff --git 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/agent/runtime/AbstractPipePeriodicalJobExecutor.java
 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/agent/runtime/AbstractPipePeriodicalJobExecutor.java
index c6e24b5f475..08b65d103ee 100644
--- 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/agent/runtime/AbstractPipePeriodicalJobExecutor.java
+++ 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/agent/runtime/AbstractPipePeriodicalJobExecutor.java
@@ -110,6 +110,10 @@ public abstract class AbstractPipePeriodicalJobExecutor {
     }
   }
 
+  public void runDirectly(final Runnable command) {
+    executorService.execute(command);
+  }
+
   @TestOnly
   public void clear() {
     periodicalJobs.clear();

Reply via email to