The Samba-Bugzilla – Attachment 11330 Details for
Bug 11431
CTDB's eventscript error handling is broken
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Patches for 4.3
v4-3-test-BZ11431.patch (text/plain), 3.02 KB, created by
Martin Schwenke
on 2015-08-13 05:34:23 UTC
(
hide
)
Description:
Patches for 4.3
Filename:
MIME Type:
Creator:
Martin Schwenke
Created:
2015-08-13 05:34:23 UTC
Size:
3.02 KB
patch
obsolete
>From 9f32d1677c79ae2a93716e14fe454f174a6d3ae4 Mon Sep 17 00:00:00 2001 >From: Amitay Isaacs <amitay@gmail.com> >Date: Mon, 20 Jul 2015 16:37:58 +1000 >Subject: [PATCH 1/2] ctdb-tool: Correctly print timed out event scripts output > >The timed out error is ignored for certain events (start_recovery, >recoverd, takeip, releaseip). If these events time out, then the debug >hung script outputs the following: > > 3 scripts were executed last releaseip cycle > 00.ctdb Status:OK Duration:4.381 Thu Jul 16 23:45:24 2015 > 01.reclock Status:OK Duration:13.422 Thu Jul 16 23:45:28 2015 > 10.external Status:DISABLED > 10.interface Status:OK Duration:-1437083142.208 Thu Jul 16 23:45:42 2015 > >The endtime for timed out scripts is not set. Since the status is not >returned as -ETIME for some events, ctdb scriptstatus prints -ve duration. > >BUG: https://bugzilla.samba.org/show_bug.cgi?id=11431 > >Signed-off-by: Amitay Isaacs <amitay@gmail.com> >Reviewed-by: Martin Schwenke <martin@meltin.net> >(cherry picked from commit 71b89b2b7a9768de437347e6678370b2682da892) >--- > ctdb/tools/ctdb.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > >diff --git a/ctdb/tools/ctdb.c b/ctdb/tools/ctdb.c >index 4734b26..c6da621 100644 >--- a/ctdb/tools/ctdb.c >+++ b/ctdb/tools/ctdb.c >@@ -1424,6 +1424,14 @@ static int control_one_scriptstatus(struct ctdb_context *ctdb, > for (i=0; i<script_status->num_scripts; i++) { > const char *status = NULL; > >+ /* The ETIME status is ignored for certain events. >+ * In that case the status is 0, but endtime is not set. >+ */ >+ if (script_status->scripts[i].status == 0 && >+ timeval_is_zero(&script_status->scripts[i].finished)) { >+ script_status->scripts[i].status = -ETIME; >+ } >+ > switch (script_status->scripts[i].status) { > case -ETIME: > status = "TIMEDOUT"; >-- >2.5.0 > > >From 14e7af127b91adcef048f04c332193348aabeb37 Mon Sep 17 00:00:00 2001 >From: Amitay Isaacs <amitay@gmail.com> >Date: Tue, 21 Jul 2015 16:37:04 +1000 >Subject: [PATCH 2/2] ctdb-daemon: Correctly process the exit code from failed > eventscripts > >BUG: https://bugzilla.samba.org/show_bug.cgi?id=11431 > >Signed-off-by: Amitay Isaacs <amitay@gmail.com> >Reviewed-by: Martin Schwenke <martin@meltin.net> > >Autobuild-User(master): Martin Schwenke <martins@samba.org> >Autobuild-Date(master): Wed Jul 22 15:03:53 CEST 2015 on sn-devel-104 > >(cherry picked from commit 00ec3c477eba50206801b451ae4eb64c12aba5db) >--- > ctdb/server/ctdb_event_helper.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > >diff --git a/ctdb/server/ctdb_event_helper.c b/ctdb/server/ctdb_event_helper.c >index f14e336..a1b5318 100644 >--- a/ctdb/server/ctdb_event_helper.c >+++ b/ctdb/server/ctdb_event_helper.c >@@ -128,7 +128,11 @@ int main(int argc, char *argv[]) > exit(1); > } > if (WIFEXITED(status)) { >- output = -WEXITSTATUS(status); >+ output = WEXITSTATUS(status); >+ /* Only errors should be returned as -ve values */ >+ if (output == ENOENT || output == ENOEXEC) { >+ output = -output; >+ } > sys_write(write_fd, &output, sizeof(output)); > exit(0); > } >-- >2.5.0 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Flags:
martins
:
review?
(
amitay
)
metze
:
review+
Actions:
View
Attachments on
bug 11431
:
11307
|
11308
|
11329
| 11330