From mboxrd@z Thu Jan 1 00:00:00 1970 From: Fabio M. Di Nitto Date: Wed, 04 Jul 2012 13:05:39 +0200 Subject: [Cluster-devel] [PATCH 2/5] rgmanager: Don't exit uncleanly when cman asks us to shut down. In-Reply-To: <20120628195732.GA79995@redhat.com> References: <20120628195732.GA79995@redhat.com> Message-ID: <4FF42383.5020702@redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit ACK On 6/28/2012 9:57 PM, Ryan McCabe wrote: > Original patch from Lon rediffed to apply to the current tree: > > "Previous to this, rgmanager would uncleanly exit if you > issued a 'service cman stop'. This patch makes it uncleanly > exit if 'cman_tool leave force' or a corosync/openais crash > occurs, but in a simple cman_tool leave, rgmanager will no > longer exit uncleanly." > > Without this patch, issuing 'service cman stop' when rgmanager > is running will make it impossible to stop the cman service because > rgmanager will have exited without releasing its dlm lockspace. > > Resolves: rhbz#769730 > > Signed-off-by: Ryan McCabe > --- > rgmanager/src/clulib/msg_cluster.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/rgmanager/src/clulib/msg_cluster.c b/rgmanager/src/clulib/msg_cluster.c > index 8dc22d0..e864853 100644 > --- a/rgmanager/src/clulib/msg_cluster.c > +++ b/rgmanager/src/clulib/msg_cluster.c > @@ -211,7 +211,7 @@ poll_cluster_messages(int timeout) > > if (cman_dispatch(ch, 0) < 0) { > process_cman_event(ch, NULL, > - CMAN_REASON_TRY_SHUTDOWN, 0); > + CMAN_REASON_TRY_SHUTDOWN, 1); > } > ret = 0; > } > @@ -987,6 +987,11 @@ process_cman_event(cman_handle_t handle, void *private, int reason, int arg) > printf("EVENT: %p %p %d %d\n", handle, private, reason, arg); > #endif > > + if (reason == CMAN_REASON_TRY_SHUTDOWN && !arg) { > + cman_replyto_shutdown(handle, 0); > + return; > + } > + > /* Allocate queue node */ > while ((node = malloc(sizeof(*node))) == NULL) { > sleep(1); >