diff -Nru pacemaker-1.1.10+git20130802/debian/changelog pacemaker-1.1.10+git20130802/debian/changelog --- pacemaker-1.1.10+git20130802/debian/changelog 2014-12-18 08:18:50.000000000 -0200 +++ pacemaker-1.1.10+git20130802/debian/changelog 2015-01-27 10:06:50.000000000 -0200 @@ -1,3 +1,13 @@ +pacemaker (1.1.10+git20130802-4ubuntu3.2) utopic; urgency=medium + + * Fix: stonith-ng: Reset mainloop source IDs after removing them (LP: #1412962) + * Fix: services: Fixes segfault associated with cancelling in-flight + recurring operations (LP: #1412962) + * Fix: services: Remove cancelled recurring ops from internal + lists as early as possible (LP: #1412962) + + -- Rafael David Tinoco (Inaddy) Tue, 27 Jan 2015 10:06:29 -0200 + pacemaker (1.1.10+git20130802-4ubuntu3.1) utopic; urgency=medium [ James Page ] diff -Nru pacemaker-1.1.10+git20130802/debian/patches/Fix-services-Fixes-segfault-associated-with-cancelling-inflight-operations.patch pacemaker-1.1.10+git20130802/debian/patches/Fix-services-Fixes-segfault-associated-with-cancelling-inflight-operations.patch --- pacemaker-1.1.10+git20130802/debian/patches/Fix-services-Fixes-segfault-associated-with-cancelling-inflight-operations.patch 1969-12-31 21:00:00.000000000 -0300 +++ pacemaker-1.1.10+git20130802/debian/patches/Fix-services-Fixes-segfault-associated-with-cancelling-inflight-operations.patch 2015-01-27 10:07:06.000000000 -0200 @@ -0,0 +1,30 @@ +Description: Fix: services: Fixes segfault associated with cancelling in-flight recurring operations. + +Origin: upstream, commit: bade296e554b5c4000e5bd8f811d9f54a91eeaa3 +Author: Kazunori INOUE +Bug-Ubuntu: https://bugs.launchpad.net/bugs/1412962 +Last-Update: 2015-01-26 + +--- pacemaker-1.1.10+git20130802.orig/lib/services/services.c ++++ pacemaker-1.1.10+git20130802/lib/services/services.c +@@ -347,10 +347,6 @@ services_action_free(svc_action_t * op) + gboolean + cancel_recurring_action(svc_action_t * op) + { +- if (op->pid) { +- return FALSE; +- } +- + crm_info("Cancelling operation %s", op->id); + + if (recurring_actions) { +@@ -376,7 +372,8 @@ services_action_cancel(const char *name, + return FALSE; + } + +- if (cancel_recurring_action(op)) { ++ if (op->pid == 0) { ++ cancel_recurring_action(op); + op->status = PCMK_LRM_OP_CANCELLED; + if (op->opaque->callback) { + op->opaque->callback(op); diff -Nru pacemaker-1.1.10+git20130802/debian/patches/Fix-services-Remove-cancelled-recurring-ops-from-internal-lists.patch pacemaker-1.1.10+git20130802/debian/patches/Fix-services-Remove-cancelled-recurring-ops-from-internal-lists.patch --- pacemaker-1.1.10+git20130802/debian/patches/Fix-services-Remove-cancelled-recurring-ops-from-internal-lists.patch 1969-12-31 21:00:00.000000000 -0300 +++ pacemaker-1.1.10+git20130802/debian/patches/Fix-services-Remove-cancelled-recurring-ops-from-internal-lists.patch 2015-01-27 10:07:11.000000000 -0200 @@ -0,0 +1,43 @@ +Description: Fix: services: Remove cancelled recurring ops from internal + +Origin: upstream, commit: b8abdb3850b71efad0cc0c14ba7e4995a23068d1 +Author: Andrew Beekhof +Bug-Ubuntu: https://bugs.launchpad.net/bugs/1412962 +Last-Update: 2015-01-26 + +--- pacemaker-1.1.10+git20130802.orig/lib/services/services.c ++++ pacemaker-1.1.10+git20130802/lib/services/services.c +@@ -355,6 +355,7 @@ cancel_recurring_action(svc_action_t * o + + if (op->opaque->repeat_timer) { + g_source_remove(op->opaque->repeat_timer); ++ op->opaque->repeat_timer = 0; + } + + return TRUE; +@@ -372,13 +373,16 @@ services_action_cancel(const char *name, + return FALSE; + } + ++ /* Always kill the recurring timer */ ++ cancel_recurring_action(op); ++ + if (op->pid == 0) { +- cancel_recurring_action(op); + op->status = PCMK_LRM_OP_CANCELLED; + if (op->opaque->callback) { + op->opaque->callback(op); + } + services_action_free(op); ++ + } else { + int rc; + crm_info("Cancelling in-flight op: performing early termination of %s", id); +@@ -388,6 +392,7 @@ services_action_cancel(const char *name, + /* even though the early termination failed, + * the op will be marked as cancelled once it completes. */ + crm_err("Termination of %s failed", id); ++ return FALSE; + } + } + diff -Nru pacemaker-1.1.10+git20130802/debian/patches/Fix-stonith-ng-Reset-mainloop-source-IDs-after-removing.patch pacemaker-1.1.10+git20130802/debian/patches/Fix-stonith-ng-Reset-mainloop-source-IDs-after-removing.patch --- pacemaker-1.1.10+git20130802/debian/patches/Fix-stonith-ng-Reset-mainloop-source-IDs-after-removing.patch 1969-12-31 21:00:00.000000000 -0300 +++ pacemaker-1.1.10+git20130802/debian/patches/Fix-stonith-ng-Reset-mainloop-source-IDs-after-removing.patch 2015-01-27 10:07:16.000000000 -0200 @@ -0,0 +1,21 @@ +Description: Fix: stonith-ng: Reset mainloop source IDs after removing them + +Origin: upstream, commit: 0326f05c9e26f39a394fa30830e31a76306f49c7 +Author: Andrew Beekhof +Bug-Ubuntu: https://bugs.launchpad.net/bugs/1412962 +Last-Update: 2015-01-20 + +--- pacemaker-1.1.10+git20130802.orig/lib/fencing/st_client.c ++++ pacemaker-1.1.10+git20130802/lib/fencing/st_client.c +@@ -657,9 +657,11 @@ stonith_action_async_done(mainloop_child + + if (action->timer_sigterm > 0) { + g_source_remove(action->timer_sigterm); ++ action->timer_sigterm = 0; + } + if (action->timer_sigkill > 0) { + g_source_remove(action->timer_sigkill); ++ action->timer_sigkill = 0; + } + + if (action->last_timeout_signo) { diff -Nru pacemaker-1.1.10+git20130802/debian/patches/series pacemaker-1.1.10+git20130802/debian/patches/series --- pacemaker-1.1.10+git20130802/debian/patches/series 2014-12-18 08:14:36.000000000 -0200 +++ pacemaker-1.1.10+git20130802/debian/patches/series 2015-01-27 10:07:24.000000000 -0200 @@ -9,3 +9,6 @@ High-lrmd-Merge-duplicate-recurring-monitor-operatio.patch Fix-lrmd-Cancel-recurring-operations-before-stop-act.patch Fix-lrmd-Prevent-glib-timers-removed-more-than-once.patch +Fix-stonith-ng-Reset-mainloop-source-IDs-after-removing.patch +Fix-services-Fixes-segfault-associated-with-cancelling-inflight-operations.patch +Fix-services-Remove-cancelled-recurring-ops-from-internal-lists.patch