Hi, While testing some java code that executes cyrus init script, I came into a problem : the Java VM blocks SIGQUIT, event when using -Xrs parameter.
As SIGQUIT is safe shutdown, I need the signal delivered correctly. I came up with the attached patch that resets the signal mask for cyrmaster before setting the signal handlers. diff --git a/master/master.c b/master/master.c index 823be06..f2ca72e 100644 --- a/master/master.c +++ b/master/master.c @@ -1064,7 +1064,11 @@ void sigalrm_handler(int sig __attribute__((unused))) void sighandler_setup(void) { struct sigaction action; - + sigset_t all_signals; + + sigfillset(&all_signals); + sigprocmask(SIG_UNBLOCK, &all_signals, NULL); + sigemptyset(&action.sa_mask); action.sa_flags = 0; Any comment ? without it I can't restart Cyrus safely from java. Regards, Thomas.
unblock_signals.diff
Description: Binary data