From mboxrd@z Thu Jan 1 00:00:00 1970 From: Fabio M. Di Nitto Date: Thu, 06 Jan 2011 11:42:17 +0100 Subject: [Cluster-devel] [PATCH] Cman: Handle INT and TERM signals correctly In-Reply-To: <1294310291-6223-1-git-send-email-fdinitto@redhat.com> References: <1294310291-6223-1-git-send-email-fdinitto@redhat.com> Message-ID: <4D259C89.5080109@redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Re-iterating the patch for ACK to go in RHEL6. Fabio On 1/6/2011 11:38 AM, Fabio M. Di Nitto wrote: > From: Jan Friesse > > Corosync signal handler (SIGINT and SIGTERM) is replaced by cman one, > and this was settting quit_threads to 1. Regular cman shutdown sequence > (cman_tool leave) tests if quit_threads is set or not. If so, it refuses > continue so it was not possible to cleanly leave cluster. > > Now SIGINT and SIGTERM are ignored, and (un)intentional kill of corosync > is no longer problem. > > Resolves: rhbz#617234 > --- > cman/daemon/daemon.c | 11 ++--------- > 1 files changed, 2 insertions(+), 9 deletions(-) > > diff --git a/cman/daemon/daemon.c b/cman/daemon/daemon.c > index 64607cc..92cfd47 100644 > --- a/cman/daemon/daemon.c > +++ b/cman/daemon/daemon.c > @@ -489,11 +489,6 @@ int num_listeners(void) > return count; > } > > -static void sigint_handler(int ignored) > -{ > - quit_threads = 1; > -} > - > int cman_init(struct corosync_api_v1 *api) > { > int fd; > @@ -514,12 +509,10 @@ int cman_init(struct corosync_api_v1 *api) > return -2; > > /* Shutdown trap */ > - sa.sa_handler = sigint_handler; > - sigaction(SIGINT, &sa, NULL); > - sigaction(SIGTERM, &sa, NULL); > - > sa.sa_handler = SIG_IGN; > sigaction(SIGPIPE, &sa, NULL); > + sigaction(SIGINT, &sa, NULL); > + sigaction(SIGTERM, &sa, NULL); > > return 0; > }