This is an automated email from the ASF dual-hosted git repository.
zihaoxiang pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git
The following commit(s) were added to refs/heads/dev by this push:
new 06e7935db8 [Chore] Bump testcontainer to `1.21.4` to fix could not
find a valid Docker environment at CI (#17978)
06e7935db8 is described below
commit 06e7935db8563a1716d4a8d9ada9a8ec8153996e
Author: Wenjun Ruan <[email protected]>
AuthorDate: Sat Feb 21 21:34:19 2026 +0800
[Chore] Bump testcontainer to `1.21.4` to fix could not find a valid Docker
environment at CI (#17978)
---
dolphinscheduler-api-test/pom.xml | 2 +-
dolphinscheduler-bom/pom.xml | 2 +-
.../common/utils/DateUtilsTest.java | 9 ++---
.../common/utils/JSONUtilsTest.java | 9 +++++
dolphinscheduler-e2e/pom.xml | 2 +-
.../LogicTaskExecutorContainerProvider.java | 9 +++--
.../task/dispatcher/WorkerGroupDispatcher.java | 10 ++++-
.../WorkerGroupDispatcherCoordinator.java | 18 ++++++---
.../task/dispatcher/WorkerGroupDispatcherTest.java | 11 ++++--
.../server/master/integration/MasterContainer.java | 44 ++++++++++++++++++----
.../cases/WorkflowSchedulingTestCase.java | 3 ++
.../src/test/resources/logback.xml | 3 +-
.../container/ITaskExecutorContainerProvider.java | 4 +-
.../PhysicalTaskExecutorContainerProvider.java | 9 +++--
pom.xml | 1 +
15 files changed, 98 insertions(+), 38 deletions(-)
diff --git a/dolphinscheduler-api-test/pom.xml
b/dolphinscheduler-api-test/pom.xml
index 04e60644ff..dda0840123 100644
--- a/dolphinscheduler-api-test/pom.xml
+++ b/dolphinscheduler-api-test/pom.xml
@@ -37,7 +37,7 @@
<junit.version>5.7.2</junit.version>
<selenium.version>4.21.0</selenium.version>
- <testcontainers.version>1.19.8</testcontainers.version>
+ <testcontainers.version>1.21.4</testcontainers.version>
<lombok.version>1.18.24</lombok.version>
<assertj-core.version>3.23.1</assertj-core.version>
<awaitility.version>4.1.0</awaitility.version>
diff --git a/dolphinscheduler-bom/pom.xml b/dolphinscheduler-bom/pom.xml
index 3c863e120a..baaa2b73a5 100644
--- a/dolphinscheduler-bom/pom.xml
+++ b/dolphinscheduler-bom/pom.xml
@@ -119,7 +119,7 @@
<qcloud-cos.version>5.6.231</qcloud-cos.version>
<system-lambda.version>1.2.1</system-lambda.version>
<zeppelin-client.version>0.10.1</zeppelin-client.version>
- <testcontainer.version>1.19.3</testcontainer.version>
+ <testcontainer.version>1.21.4</testcontainer.version>
<checker-qual.version>3.19.0</checker-qual.version>
<zeppelin-client.version>0.10.1</zeppelin-client.version>
<aliyun-voice.version>2.1.4</aliyun-voice.version>
diff --git
a/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/DateUtilsTest.java
b/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/DateUtilsTest.java
index e05e350098..35d3265402 100644
---
a/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/DateUtilsTest.java
+++
b/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/DateUtilsTest.java
@@ -30,18 +30,15 @@ import javax.management.timer.Timer;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
public class DateUtilsTest {
- @BeforeEach
- public void before() {
- ThreadLocalContext.removeTimezone();
- }
+ private final TimeZone defaultTimeZone = TimeZone.getDefault();
@AfterEach
- public void after() {
+ public void rollbackTimeZone() {
+ TimeZone.setDefault(defaultTimeZone);
ThreadLocalContext.removeTimezone();
}
diff --git
a/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/JSONUtilsTest.java
b/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/JSONUtilsTest.java
index d9c1024ba8..f70ca9d284 100644
---
a/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/JSONUtilsTest.java
+++
b/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/JSONUtilsTest.java
@@ -29,6 +29,7 @@ import java.util.List;
import java.util.Map;
import java.util.TimeZone;
+import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
@@ -41,6 +42,14 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
public class JSONUtilsTest {
+ private final TimeZone defaultTimeZone = TimeZone.getDefault();
+
+ @AfterEach
+ public void rollbackTimeZone() {
+ TimeZone.setDefault(defaultTimeZone);
+ JSONUtils.setTimeZone(defaultTimeZone);
+ }
+
@Test
public void createObjectNodeTest() {
String jsonStr = "{\"a\":\"b\",\"b\":\"d\"}";
diff --git a/dolphinscheduler-e2e/pom.xml b/dolphinscheduler-e2e/pom.xml
index 6f63da0ea0..bce6e6d2f5 100644
--- a/dolphinscheduler-e2e/pom.xml
+++ b/dolphinscheduler-e2e/pom.xml
@@ -44,7 +44,7 @@
<log4j-slf4j-impl.version>2.17.2</log4j-slf4j-impl.version>
<guava.version>31.0.1-jre</guava.version>
<maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version>
- <testcontainers.version>1.19.8</testcontainers.version>
+ <testcontainers.version>1.21.4</testcontainers.version>
<junit-pioneer.version>2.2.0</junit-pioneer.version>
</properties>
diff --git
a/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/engine/executor/LogicTaskExecutorContainerProvider.java
b/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/engine/executor/LogicTaskExecutorContainerProvider.java
index 709f9d61df..612c3ad68e 100644
---
a/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/engine/executor/LogicTaskExecutorContainerProvider.java
+++
b/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/engine/executor/LogicTaskExecutorContainerProvider.java
@@ -18,7 +18,6 @@
package org.apache.dolphinscheduler.server.master.engine.executor;
import org.apache.dolphinscheduler.server.master.config.MasterConfig;
-import
org.apache.dolphinscheduler.task.executor.container.ITaskExecutorContainer;
import
org.apache.dolphinscheduler.task.executor.container.ITaskExecutorContainerProvider;
import
org.apache.dolphinscheduler.task.executor.container.SharedThreadTaskExecutorContainer;
import
org.apache.dolphinscheduler.task.executor.container.TaskExecutorContainerConfig;
@@ -26,9 +25,11 @@ import
org.apache.dolphinscheduler.task.executor.container.TaskExecutorContainer
import org.springframework.stereotype.Component;
@Component
-public class LogicTaskExecutorContainerProvider implements
ITaskExecutorContainerProvider {
+public class LogicTaskExecutorContainerProvider
+ implements
+ ITaskExecutorContainerProvider<SharedThreadTaskExecutorContainer> {
- private final ITaskExecutorContainer taskExecutorContainer;
+ private final SharedThreadTaskExecutorContainer taskExecutorContainer;
public LogicTaskExecutorContainerProvider(final MasterConfig masterConfig)
{
final TaskExecutorContainerConfig containerConfig =
TaskExecutorContainerConfig.builder()
@@ -39,7 +40,7 @@ public class LogicTaskExecutorContainerProvider implements
ITaskExecutorContaine
}
@Override
- public ITaskExecutorContainer getExecutorContainer() {
+ public SharedThreadTaskExecutorContainer getExecutorContainer() {
return taskExecutorContainer;
}
}
diff --git
a/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/engine/task/dispatcher/WorkerGroupDispatcher.java
b/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/engine/task/dispatcher/WorkerGroupDispatcher.java
index 38f5533ba7..51ccd2f9cf 100644
---
a/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/engine/task/dispatcher/WorkerGroupDispatcher.java
+++
b/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/engine/task/dispatcher/WorkerGroupDispatcher.java
@@ -34,6 +34,8 @@ import java.util.concurrent.atomic.AtomicBoolean;
import lombok.extern.slf4j.Slf4j;
+import com.google.common.annotations.VisibleForTesting;
+
/**
* WorkerGroupTaskDispatcher is responsible for dispatching tasks from the
task queue.
* The main responsibilities include:
@@ -179,7 +181,13 @@ public class WorkerGroupDispatcher extends
BaseDaemonThread {
}
}
- int queueSize() {
+ @VisibleForTesting
+ public int dispatchEventCount() {
return this.workerGroupEventBus.size();
}
+
+ @VisibleForTesting
+ public int waitingDispatchTaskCount() {
+ return this.waitingDispatchTaskIds.size();
+ }
}
diff --git
a/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/engine/task/dispatcher/WorkerGroupDispatcherCoordinator.java
b/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/engine/task/dispatcher/WorkerGroupDispatcherCoordinator.java
index 086fc5359e..d0606da74f 100644
---
a/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/engine/task/dispatcher/WorkerGroupDispatcherCoordinator.java
+++
b/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/engine/task/dispatcher/WorkerGroupDispatcherCoordinator.java
@@ -21,6 +21,7 @@ import
org.apache.dolphinscheduler.server.master.config.MasterConfig;
import
org.apache.dolphinscheduler.server.master.engine.task.client.ITaskExecutorClient;
import
org.apache.dolphinscheduler.server.master.engine.task.runnable.ITaskExecutionRunnable;
+import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import lombok.extern.slf4j.Slf4j;
@@ -28,6 +29,8 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
+import com.google.common.annotations.VisibleForTesting;
+
/**
* WorkerGroupTaskDispatcherManager is responsible for managing the task
dispatching for worker groups.
* It maintains a mapping of worker groups to their task dispatchers and
priority delay queues,
@@ -40,12 +43,12 @@ public class WorkerGroupDispatcherCoordinator implements
AutoCloseable {
@Autowired
private ITaskExecutorClient taskExecutorClient;
- private final ConcurrentHashMap<String, WorkerGroupDispatcher>
workerGroupDispatcherMap;
+ private final Map<String, WorkerGroupDispatcher> workerGroupDispatchers;
private final MasterConfig masterConfig;
public WorkerGroupDispatcherCoordinator(final MasterConfig masterConfig) {
- workerGroupDispatcherMap = new ConcurrentHashMap<>();
+ workerGroupDispatchers = new ConcurrentHashMap<>();
this.masterConfig = masterConfig;
}
@@ -82,7 +85,12 @@ public class WorkerGroupDispatcherCoordinator implements
AutoCloseable {
}
public boolean existWorkerGroup(String workerGroup) {
- return workerGroupDispatcherMap.containsKey(workerGroup);
+ return workerGroupDispatchers.containsKey(workerGroup);
+ }
+
+ @VisibleForTesting
+ public Map<String, WorkerGroupDispatcher> workerGroupDispatchers() {
+ return workerGroupDispatchers;
}
/**
@@ -91,7 +99,7 @@ public class WorkerGroupDispatcherCoordinator implements
AutoCloseable {
@Override
public void close() throws Exception {
log.info("WorkerGroupDispatcherCoordinator closing");
- for (WorkerGroupDispatcher workerGroupDispatcher :
workerGroupDispatcherMap.values()) {
+ for (WorkerGroupDispatcher workerGroupDispatcher :
workerGroupDispatchers.values()) {
try {
workerGroupDispatcher.close();
} catch (Exception e) {
@@ -102,7 +110,7 @@ public class WorkerGroupDispatcherCoordinator implements
AutoCloseable {
}
private WorkerGroupDispatcher getOrCreateWorkerGroupDispatcher(String
workerGroup) {
- return workerGroupDispatcherMap.computeIfAbsent(workerGroup, wg -> {
+ return workerGroupDispatchers.computeIfAbsent(workerGroup, wg -> {
WorkerGroupDispatcher workerGroupDispatcher =
new WorkerGroupDispatcher(wg, taskExecutorClient,
masterConfig.getTaskDispatchPolicy());
workerGroupDispatcher.start();
diff --git
a/dolphinscheduler-master/src/test/java/org/apache/dolphinscheduler/server/master/engine/task/dispatcher/WorkerGroupDispatcherTest.java
b/dolphinscheduler-master/src/test/java/org/apache/dolphinscheduler/server/master/engine/task/dispatcher/WorkerGroupDispatcherTest.java
index 210f7c21c9..e423d8e5ec 100644
---
a/dolphinscheduler-master/src/test/java/org/apache/dolphinscheduler/server/master/engine/task/dispatcher/WorkerGroupDispatcherTest.java
+++
b/dolphinscheduler-master/src/test/java/org/apache/dolphinscheduler/server/master/engine/task/dispatcher/WorkerGroupDispatcherTest.java
@@ -34,7 +34,6 @@ import static org.mockito.Mockito.when;
import org.apache.dolphinscheduler.dao.entity.TaskInstance;
import org.apache.dolphinscheduler.dao.entity.WorkflowInstance;
import org.apache.dolphinscheduler.plugin.task.api.TaskExecutionContext;
-import org.apache.dolphinscheduler.server.master.config.MasterConfig;
import org.apache.dolphinscheduler.server.master.config.TaskDispatchPolicy;
import org.apache.dolphinscheduler.server.master.engine.WorkflowEventBus;
import
org.apache.dolphinscheduler.server.master.engine.task.client.ITaskExecutorClient;
@@ -49,6 +48,7 @@ import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ThreadLocalRandom;
import java.util.concurrent.TimeUnit;
+import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.InOrder;
@@ -61,9 +61,14 @@ class WorkerGroupDispatcherTest {
@BeforeEach
void setUp() {
taskExecutorClient = mock(ITaskExecutorClient.class);
- final MasterConfig masterConfig = new MasterConfig();
dispatcher =
- new WorkerGroupDispatcher("TestGroup", taskExecutorClient,
masterConfig.getTaskDispatchPolicy());
+ new WorkerGroupDispatcher("TestGroup", taskExecutorClient, new
TaskDispatchPolicy());
+ }
+
+ @AfterEach
+ void tearDown() {
+ dispatcher.close();
+ dispatcher.interrupt();
}
@Test
diff --git
a/dolphinscheduler-master/src/test/java/org/apache/dolphinscheduler/server/master/integration/MasterContainer.java
b/dolphinscheduler-master/src/test/java/org/apache/dolphinscheduler/server/master/integration/MasterContainer.java
index bbe3af3f12..cd5c9ee8bd 100644
---
a/dolphinscheduler-master/src/test/java/org/apache/dolphinscheduler/server/master/integration/MasterContainer.java
+++
b/dolphinscheduler-master/src/test/java/org/apache/dolphinscheduler/server/master/integration/MasterContainer.java
@@ -27,9 +27,9 @@ import
org.apache.dolphinscheduler.server.master.engine.executor.LogicTaskExecut
import
org.apache.dolphinscheduler.server.master.engine.executor.LogicTaskExecutorLifecycleEventReporter;
import
org.apache.dolphinscheduler.server.master.engine.executor.LogicTaskExecutorRepository;
import org.apache.dolphinscheduler.server.master.engine.system.SystemEventBus;
-import
org.apache.dolphinscheduler.task.executor.container.AbstractTaskExecutorContainer;
+import
org.apache.dolphinscheduler.server.master.engine.task.dispatcher.WorkerGroupDispatcherCoordinator;
+import
org.apache.dolphinscheduler.task.executor.container.SharedThreadTaskExecutorContainer;
import
org.apache.dolphinscheduler.task.executor.container.TaskExecutorAssignmentTable;
-import org.apache.dolphinscheduler.task.executor.worker.TaskExecutorWorkers;
import java.util.concurrent.TimeUnit;
@@ -57,6 +57,9 @@ public class MasterContainer {
@Autowired
private LogicTaskExecutorLifecycleEventReporter
logicTaskExecutorLifecycleEventReporter;
+ @Autowired
+ private WorkerGroupDispatcherCoordinator workerGroupDispatcherCoordinator;
+
public void assertAllResourceReleased() {
await()
.atMost(10, TimeUnit.SECONDS)
@@ -64,24 +67,49 @@ public class MasterContainer {
}
private void doAssertAllResourceReleased() {
+ assertWorkflowReleased();
+ assertWorkflowEventBusReleased();
+
+ assertSystemEventBusReleased();
+
+ assertLogicTaskEngineReleased();
+
+ assertWorkerGroupDispatcherReleased();
+ }
+
+ private void assertWorkflowReleased() {
assertThat(workflowRepository.getAll()).isEmpty();
+ assertThat(workflowEventBusFireWorkers.getWorkers())
+ .allMatch(worker ->
worker.getRegisteredWorkflowExecuteRunnableSize() == 0);
+ }
+ private void assertWorkflowEventBusReleased() {
assertThat(workflowEventBusFireWorkers.getWorkers())
- .allMatch(workflowEventBusFireWorker ->
workflowEventBusFireWorker
- .getRegisteredWorkflowExecuteRunnableSize() == 0);
+ .allMatch(worker ->
worker.getRegisteredWorkflowExecuteRunnableSize() == 0);
+ }
+
+ private void assertSystemEventBusReleased() {
assertThat(systemEventBus).matches(AbstractDelayEventBus::isEmpty);
+ }
+ private void assertLogicTaskEngineReleased() {
assertThat(logicTaskExecutorRepository.getAll()).isEmpty();
- final AbstractTaskExecutorContainer executorContainer =
- (AbstractTaskExecutorContainer)
logicTaskExecutorContainerProvider.getExecutorContainer();
+ final SharedThreadTaskExecutorContainer executorContainer =
+ logicTaskExecutorContainerProvider.getExecutorContainer();
assertThat(executorContainer.getTaskExecutorAssignmentTable()).matches(TaskExecutorAssignmentTable::isEmpty);
- final TaskExecutorWorkers taskExecutorWorkers =
executorContainer.getTaskExecutorWorkers();
- assertThat(taskExecutorWorkers.getWorkers())
+ assertThat(executorContainer.getTaskExecutorWorkers().getWorkers())
.allMatch(taskExecutorWorker ->
taskExecutorWorker.getRegisteredTaskExecutorSize() == 0)
.allMatch(taskExecutorWorker ->
taskExecutorWorker.getFiredTaskExecutorSize() == 0);
assertThat(logicTaskExecutorLifecycleEventReporter.getEventChannels()).isEmpty();
}
+
+ private void assertWorkerGroupDispatcherReleased() {
+
assertThat(workerGroupDispatcherCoordinator.workerGroupDispatchers().values())
+ .allMatch(dispatcher -> dispatcher.dispatchEventCount() == 0)
+ .allMatch(dispatcher -> dispatcher.waitingDispatchTaskCount()
== 0);
+ }
+
}
diff --git
a/dolphinscheduler-master/src/test/java/org/apache/dolphinscheduler/server/master/integration/cases/WorkflowSchedulingTestCase.java
b/dolphinscheduler-master/src/test/java/org/apache/dolphinscheduler/server/master/integration/cases/WorkflowSchedulingTestCase.java
index 4283b8a647..c55d812ebb 100644
---
a/dolphinscheduler-master/src/test/java/org/apache/dolphinscheduler/server/master/integration/cases/WorkflowSchedulingTestCase.java
+++
b/dolphinscheduler-master/src/test/java/org/apache/dolphinscheduler/server/master/integration/cases/WorkflowSchedulingTestCase.java
@@ -39,6 +39,8 @@ import org.apache.commons.lang3.time.DateUtils;
import java.time.Duration;
import java.util.Date;
+import lombok.extern.slf4j.Slf4j;
+
import org.assertj.core.api.Condition;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
@@ -47,6 +49,7 @@ import org.springframework.beans.factory.annotation.Autowired;
/**
* The integration test for scheduling a workflow from workflow definition.
*/
+@Slf4j
public class WorkflowSchedulingTestCase extends
AbstractMasterIntegrationTestCase {
@Autowired
diff --git a/dolphinscheduler-master/src/test/resources/logback.xml
b/dolphinscheduler-master/src/test/resources/logback.xml
index 799791fd20..1490f5b556 100644
--- a/dolphinscheduler-master/src/test/resources/logback.xml
+++ b/dolphinscheduler-master/src/test/resources/logback.xml
@@ -68,8 +68,7 @@
</encoder>
</appender>
- <!-- We use OFF here to avoid too many exception log in CI -->
- <root level="OFF">
+ <root level="WARN">
<appender-ref ref="STDOUT"/>
<appender-ref ref="TASKLOGFILE"/>
<appender-ref ref="MASTERLOGFILE"/>
diff --git
a/dolphinscheduler-task-executor/src/main/java/org/apache/dolphinscheduler/task/executor/container/ITaskExecutorContainerProvider.java
b/dolphinscheduler-task-executor/src/main/java/org/apache/dolphinscheduler/task/executor/container/ITaskExecutorContainerProvider.java
index aa5233d6d7..7d83d336bd 100644
---
a/dolphinscheduler-task-executor/src/main/java/org/apache/dolphinscheduler/task/executor/container/ITaskExecutorContainerProvider.java
+++
b/dolphinscheduler-task-executor/src/main/java/org/apache/dolphinscheduler/task/executor/container/ITaskExecutorContainerProvider.java
@@ -17,8 +17,8 @@
package org.apache.dolphinscheduler.task.executor.container;
-public interface ITaskExecutorContainerProvider {
+public interface ITaskExecutorContainerProvider<T extends
ITaskExecutorContainer> {
- ITaskExecutorContainer getExecutorContainer();
+ T getExecutorContainer();
}
diff --git
a/dolphinscheduler-worker/src/main/java/org/apache/dolphinscheduler/server/worker/executor/PhysicalTaskExecutorContainerProvider.java
b/dolphinscheduler-worker/src/main/java/org/apache/dolphinscheduler/server/worker/executor/PhysicalTaskExecutorContainerProvider.java
index 80a4e5c9f2..6d669d82dc 100644
---
a/dolphinscheduler-worker/src/main/java/org/apache/dolphinscheduler/server/worker/executor/PhysicalTaskExecutorContainerProvider.java
+++
b/dolphinscheduler-worker/src/main/java/org/apache/dolphinscheduler/server/worker/executor/PhysicalTaskExecutorContainerProvider.java
@@ -19,16 +19,17 @@ package org.apache.dolphinscheduler.server.worker.executor;
import org.apache.dolphinscheduler.server.worker.config.WorkerConfig;
import
org.apache.dolphinscheduler.task.executor.container.ExclusiveThreadTaskExecutorContainer;
-import
org.apache.dolphinscheduler.task.executor.container.ITaskExecutorContainer;
import
org.apache.dolphinscheduler.task.executor.container.ITaskExecutorContainerProvider;
import
org.apache.dolphinscheduler.task.executor.container.TaskExecutorContainerConfig;
import org.springframework.stereotype.Component;
@Component
-public class PhysicalTaskExecutorContainerProvider implements
ITaskExecutorContainerProvider {
+public class PhysicalTaskExecutorContainerProvider
+ implements
+
ITaskExecutorContainerProvider<ExclusiveThreadTaskExecutorContainer> {
- private final ITaskExecutorContainer taskExecutorContainer;
+ private final ExclusiveThreadTaskExecutorContainer taskExecutorContainer;
public PhysicalTaskExecutorContainerProvider(final WorkerConfig
workerConfig) {
final TaskExecutorContainerConfig containerConfig =
TaskExecutorContainerConfig.builder()
@@ -39,7 +40,7 @@ public class PhysicalTaskExecutorContainerProvider implements
ITaskExecutorConta
}
@Override
- public ITaskExecutorContainer getExecutorContainer() {
+ public ExclusiveThreadTaskExecutorContainer getExecutorContainer() {
return taskExecutorContainer;
}
}
diff --git a/pom.xml b/pom.xml
index 83ff608d79..452a45bcff 100755
--- a/pom.xml
+++ b/pom.xml
@@ -607,6 +607,7 @@
<version>${maven-surefire-plugin.version}</version>
<configuration>
<skip>${skipUT}</skip>
+ <skipAfterFailureCount>1</skipAfterFailureCount>
<systemPropertyVariables>
<jacoco-agent.destfile>${project.build.directory}/jacoco.exec</jacoco-agent.destfile>
</systemPropertyVariables>