From 02252224e286dd3849467567ecbf0238a54e77a0 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Fri, 6 Jun 2014 11:03:25 -0500 Subject: [PATCH] dispatcher: bump overall timeout to 10 minutes (rh #982734) (rh #1048345) Since NM now handles long-running dispatcher scripts better, allow them to run for really long times. --- callouts/nm-dispatcher.c | 4 +++- src/nm-dispatcher.c | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/callouts/nm-dispatcher.c b/callouts/nm-dispatcher.c index 7d2b7365c..d66a0d8f9 100644 --- a/callouts/nm-dispatcher.c +++ b/callouts/nm-dispatcher.c @@ -383,6 +383,8 @@ child_setup (gpointer user_data G_GNUC_UNUSED) setpgid (pid, pid); } +#define SCRIPT_TIMEOUT 600 /* 10 minutes */ + static void dispatch_one_script (Request *request) { @@ -400,7 +402,7 @@ dispatch_one_script (Request *request) if (g_spawn_async ("/", argv, request->envp, G_SPAWN_DO_NOT_REAP_CHILD, child_setup, request, &script->pid, &error)) { request->script_watch_id = g_child_watch_add (script->pid, (GChildWatchFunc) script_watch_cb, script); - request->script_timeout_id = g_timeout_add_seconds (20, script_timeout_cb, script); + request->script_timeout_id = g_timeout_add_seconds (SCRIPT_TIMEOUT, script_timeout_cb, script); } else { g_warning ("Failed to execute script '%s': (%d) %s", script->script, error->code, error->message); diff --git a/src/nm-dispatcher.c b/src/nm-dispatcher.c index 5d3a56cfa..7a0c8de17 100644 --- a/src/nm-dispatcher.c +++ b/src/nm-dispatcher.c @@ -31,6 +31,8 @@ #include "nm-dbus-glib-types.h" #include "nm-glib-compat.h" +#define CALL_TIMEOUT (1000 * 60 * 10) /* 10 mintues for all scripts */ + static gboolean do_dispatch = TRUE; static GHashTable *requests = NULL; @@ -428,7 +430,7 @@ _dispatcher_call (DispatcherAction action, GPtrArray *results = NULL; success = dbus_g_proxy_call_with_timeout (proxy, "Action", - 30000, + CALL_TIMEOUT, &error, G_TYPE_STRING, action_to_string (action), DBUS_TYPE_G_MAP_OF_MAP_OF_VARIANT, connection_hash, @@ -461,7 +463,7 @@ _dispatcher_call (DispatcherAction action, dispatcher_done_cb, info, (GDestroyNotify) dispatcher_info_cleanup, - 30000, + CALL_TIMEOUT, G_TYPE_STRING, action_to_string (action), DBUS_TYPE_G_MAP_OF_MAP_OF_VARIANT, connection_hash, DBUS_TYPE_G_MAP_OF_VARIANT, connection_props,