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

mhubail pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git


The following commit(s) were added to refs/heads/master by this push:
     new 8f28683d3c [ASTERIXDB-3554][CONF]: Increasing timeout for aborting 
tasks
8f28683d3c is described below

commit 8f28683d3cb46487f871cfe06acc341f0f31a509
Author: Ritik Raj <[email protected]>
AuthorDate: Fri Jan 24 01:51:51 2025 +0530

    [ASTERIXDB-3554][CONF]: Increasing timeout for aborting tasks
    
    - user model changes: yes
    - storage format changes: no
    - interface changes: no
    
    Details:
    Increasing timeout for aborting tasks from 2mins to 10mins.
    
    Ext-ref: MB-64974
    Change-Id: I1e597eb280e996370f6be604bef28691fc9acd2c
    Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19357
    Integration-Tests: Jenkins <[email protected]>
    Tested-by: Jenkins <[email protected]>
    Reviewed-by: Ritik Raj <[email protected]>
    Reviewed-by: Murtadha Hubail <[email protected]>
---
 .../org/apache/hyracks/control/common/controllers/NCConfig.java   | 8 ++++++++
 .../apache/hyracks/control/nc/work/EnsureAllCcTasksCompleted.java | 6 +++---
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git 
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/NCConfig.java
 
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/NCConfig.java
index bb40e2b728..44b2fdc39b 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/NCConfig.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/NCConfig.java
@@ -30,6 +30,7 @@ import static 
org.apache.hyracks.control.common.config.OptionTypes.STRING_ARRAY;
 import java.net.InetAddress;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.concurrent.TimeUnit;
 import java.util.function.Function;
 
 import org.apache.hyracks.api.config.IApplicationConfig;
@@ -72,6 +73,7 @@ public class NCConfig extends ControllerConfig {
         REPLICATION_PUBLIC_ADDRESS(STRING, PUBLIC_ADDRESS),
         REPLICATION_PUBLIC_PORT(NONNEGATIVE_INTEGER, REPLICATION_LISTEN_PORT),
         CLUSTER_CONNECT_RETRIES(NONNEGATIVE_INTEGER, 5),
+        ABORT_TASKS_TIMEOUT(POSITIVE_INTEGER, (int) 
TimeUnit.MINUTES.toMillis(10)),
         IODEVICES(
                 STRING_ARRAY,
                 appConfig -> new String[] {
@@ -253,6 +255,8 @@ public class NCConfig extends ControllerConfig {
                     return "Path to systemd socket for fenced Python UDFs. 
Requires JDK17+, *nix operating system, and ";
                 case CREDENTIAL_FILE:
                     return "Path to HTTP basic credentials";
+                case ABORT_TASKS_TIMEOUT:
+                    return "The maximum time to wait for the tasks to be 
aborted";
                 default:
                     throw new IllegalStateException("Not yet implemented: " + 
this);
             }
@@ -628,4 +632,8 @@ public class NCConfig extends ControllerConfig {
         return getAppConfig().getString(Option.CREDENTIAL_FILE);
     }
 
+    public int getAbortedTasksTimeout() {
+        return appConfig.getInt(Option.ABORT_TASKS_TIMEOUT);
+    }
+
 }
diff --git 
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/work/EnsureAllCcTasksCompleted.java
 
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/work/EnsureAllCcTasksCompleted.java
index 9e090f2641..fcc2aa2965 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/work/EnsureAllCcTasksCompleted.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/work/EnsureAllCcTasksCompleted.java
@@ -35,7 +35,6 @@ import org.apache.logging.log4j.Logger;
 public class EnsureAllCcTasksCompleted implements Runnable {
 
     private static final Logger LOGGER = LogManager.getLogger();
-    private static final long TIMEOUT = TimeUnit.MINUTES.toMillis(2);
     private final NodeControllerService ncs;
     private final CcId ccId;
     private final Deque<Task> runningTasks;
@@ -58,7 +57,8 @@ public class EnsureAllCcTasksCompleted implements Runnable {
     }
 
     private void waitForTaskCompletion() throws InterruptedException {
-        final Span maxWaitTime = Span.start(TIMEOUT, TimeUnit.MILLISECONDS);
+        long taskTimeout = ncs.getConfiguration().getAbortedTasksTimeout();
+        final Span maxWaitTime = Span.start(taskTimeout, 
TimeUnit.MILLISECONDS);
         while (!maxWaitTime.elapsed()) {
             removeCompleted();
             if (runningTasks.isEmpty()) {
@@ -81,7 +81,7 @@ public class EnsureAllCcTasksCompleted implements Runnable {
             }
         } else {
             LOGGER.error("{} tasks associated with CC {} failed to complete 
after {}ms. Giving up", runningTasks.size(),
-                    ccId, TIMEOUT);
+                    ccId, taskTimeout);
             logPendingTasks();
             ExitUtil.halt(ExitUtil.EC_NC_FAILED_TO_ABORT_ALL_PREVIOUS_TASKS);
         }

Reply via email to