From 1782eca1fcfa3082fee0971a519ca76b9d65c2c8 Mon Sep 17 00:00:00 2001 From: Ludovic DEHON Date: Wed, 31 Aug 2022 21:52:08 +0200 Subject: [PATCH] fix(core): deleting an execution will still blocked the scheduler close #715 --- .../io/kestra/jdbc/runner/JdbcScheduler.java | 16 +++++++++++----- .../kafka/executors/ExecutorTriggerCleaner.java | 2 +- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/jdbc/src/main/java/io/kestra/jdbc/runner/JdbcScheduler.java b/jdbc/src/main/java/io/kestra/jdbc/runner/JdbcScheduler.java index 02768deb3c..bff42f0cc5 100644 --- a/jdbc/src/main/java/io/kestra/jdbc/runner/JdbcScheduler.java +++ b/jdbc/src/main/java/io/kestra/jdbc/runner/JdbcScheduler.java @@ -45,12 +45,18 @@ public void run() { executionQueue.receive( Scheduler.class, execution -> { - if (execution.getState().getCurrent().isTerninated() && execution.getTrigger() != null) { - triggerRepository - .findByExecution(execution) - .ifPresent(trigger -> triggerRepository.save(trigger.resetExecution())); + if ( + execution.getTrigger() != null && ( + execution.isDeleted() || + execution.getState().getCurrent().isTerninated() + ) + ) { + triggerRepository + .findByExecution(execution) + .ifPresent(trigger -> triggerRepository.save(trigger.resetExecution())); + } } - }); + ); super.run(); } diff --git a/runner-kafka/src/main/java/io/kestra/runner/kafka/executors/ExecutorTriggerCleaner.java b/runner-kafka/src/main/java/io/kestra/runner/kafka/executors/ExecutorTriggerCleaner.java index ba0d1048ed..b8e50faf62 100644 --- a/runner-kafka/src/main/java/io/kestra/runner/kafka/executors/ExecutorTriggerCleaner.java +++ b/runner-kafka/src/main/java/io/kestra/runner/kafka/executors/ExecutorTriggerCleaner.java @@ -50,7 +50,7 @@ public StreamsBuilder topology() { Named.as("TriggerCleaner.hasTriggerFilter") ) .filter( - (key, value) -> conditionService.isTerminatedWithListeners(value.getFlow(), value.getExecution()), + (key, value) -> value.getExecution().isDeleted() || conditionService.isTerminatedWithListeners(value.getFlow(), value.getExecution()), Named.as("TriggerCleaner.terminatedFilter") ) .join(