summaryrefslogtreecommitdiffstats
path: root/ctdb/server/ctdb_monitor.c
diff options
context:
space:
mode:
authorRonnie Sahlberg <ronniesahlberg@gmail.com>2011-11-17 13:34:29 +1100
committerRonnie Sahlberg <ronniesahlberg@gmail.com>2011-11-18 12:22:22 +1100
commit0581fd85e6f8ac84d0249920acbb295d9d111bf6 (patch)
treee6d0a7595237154d5b5ed63dbff4a5cf89c6ade2 /ctdb/server/ctdb_monitor.c
parent44de394796b8b4f1b046ccf226372cd8ba9ad768 (diff)
downloadsamba-0581fd85e6f8ac84d0249920acbb295d9d111bf6.tar.gz
samba-0581fd85e6f8ac84d0249920acbb295d9d111bf6.tar.xz
samba-0581fd85e6f8ac84d0249920acbb295d9d111bf6.zip
Eventscripts: Add special -ECANCELED status for monitor events that are cancelled
When a monitor event is canceled by a higher priority script, make sure we return status -ECANCELED to the callback in ctdB_monitor.c Also treat -ECANCELED as a simple "try monitor event again" and skip modifying any HEALTHY/UNHEALTHY flags when this happens (This used to be ctdb commit a15ec57c26d1bc82af85f74eebae0bd8abde3233)
Diffstat (limited to 'ctdb/server/ctdb_monitor.c')
-rw-r--r--ctdb/server/ctdb_monitor.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/ctdb/server/ctdb_monitor.c b/ctdb/server/ctdb_monitor.c
index f0879d0a77..7258d3957a 100644
--- a/ctdb/server/ctdb_monitor.c
+++ b/ctdb/server/ctdb_monitor.c
@@ -125,6 +125,11 @@ static void ctdb_health_callback(struct ctdb_context *ctdb, int status, void *p)
rddata.dptr = (uint8_t *)&rd;
rddata.dsize = sizeof(rd);
+ if (status == -ECANCELED) {
+ DEBUG(DEBUG_ERR,("Monitoring event was cancelled\n"));
+ goto after_change_status;
+ }
+
if (status == -ETIME) {
ctdb->event_script_timeouts++;