This is an automated email from the ASF dual-hosted git repository.
linghengqian pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere-elasticjob.git
The following commit(s) were added to refs/heads/master by this push:
new ca353c3ef Fix Issue 2429 (#2432)
ca353c3ef is described below
commit ca353c3ef5ce76de8e42cab1f397bf93f98a7f75
Author: 凌小宇 <[email protected]>
AuthorDate: Sun Aug 25 21:07:29 2024 +0800
Fix Issue 2429 (#2432)
* issue-2429 failover node exist also remove running node,prevent execute
dead loop
* issue-2429 remove not useing code
---
.../elasticjob/kernel/internal/failover/FailoverListenerManager.java | 1 +
.../elasticjob/kernel/internal/failover/FailoverListenerManagerTest.java | 1 +
2 files changed, 2 insertions(+)
diff --git
a/kernel/src/main/java/org/apache/shardingsphere/elasticjob/kernel/internal/failover/FailoverListenerManager.java
b/kernel/src/main/java/org/apache/shardingsphere/elasticjob/kernel/internal/failover/FailoverListenerManager.java
index f64279ccb..54ad75f57 100644
---
a/kernel/src/main/java/org/apache/shardingsphere/elasticjob/kernel/internal/failover/FailoverListenerManager.java
+++
b/kernel/src/main/java/org/apache/shardingsphere/elasticjob/kernel/internal/failover/FailoverListenerManager.java
@@ -97,6 +97,7 @@ public final class FailoverListenerManager extends
AbstractListenerManager {
if (!failoverItems.isEmpty()) {
for (int each : failoverItems) {
failoverService.setCrashedFailoverFlagDirectly(each);
+
executionService.clearRunningInfo(Collections.singletonList(each));
failoverService.failoverIfNecessary();
}
} else {
diff --git
a/kernel/src/test/java/org/apache/shardingsphere/elasticjob/kernel/internal/failover/FailoverListenerManagerTest.java
b/kernel/src/test/java/org/apache/shardingsphere/elasticjob/kernel/internal/failover/FailoverListenerManagerTest.java
index a5dfafa4c..5bfe27dee 100644
---
a/kernel/src/test/java/org/apache/shardingsphere/elasticjob/kernel/internal/failover/FailoverListenerManagerTest.java
+++
b/kernel/src/test/java/org/apache/shardingsphere/elasticjob/kernel/internal/failover/FailoverListenerManagerTest.java
@@ -157,6 +157,7 @@ class FailoverListenerManagerTest {
when(instanceNode.getInstanceFullPath()).thenReturn("/test_job/instances");
failoverListenerManager.new JobCrashedJobListener().onChange(new
DataChangedEvent(Type.DELETED, "/test_job/instances/127.0.0.1@-@1", ""));
verify(failoverService).setCrashedFailoverFlagDirectly(1);
+
verify(executionService).clearRunningInfo(Collections.singletonList(1));
verify(failoverService).failoverIfNecessary();
JobRegistry.getInstance().shutdown("test_job");
}