Re: [PATCH 0/2] fix the long standing exec vs kill race

From: Simon Holm Thøgersen
Date: Sun Dec 02 2007 - 11:59:19 EST



sÃn, 02 12 2007 kl. 18:14 +0300, skrev Oleg Nesterov:
> Depends on
> [PATCH] __group_complete_signal: fix coredump with group stop race
> http://marc.info/?l=linux-kernel&m=119653436116036
>
> Needs review and testing.
>
> Please comment, I think at least the idea is promising.
>
I have an issue that sounds related, but I might be completely off. I
would expect the simple attached program to keep receiving the same
signal, i.e. respond to
killall signal-exec -s SIGHUP

I tried your patches, but they didn't help.

Any ideas?


Simon Holm ThÃgersen
#include <signal.h>
#include <stdio.h>
#include <unistd.h>

static char **argv_;

static void handler(int signal)
{
printf("got signal %d\n", signal);
execv(argv_[0], argv_);
}

int main(int argc, char *argv[])
{
printf("spawned\n");
argv_ = argv;
if (signal(SIGTERM, handler) == SIG_ERR)
err(1, "could not set signal handler for SIGTERM");
if (signal(SIGHUP, handler) == SIG_ERR)
err(1, "could not set signal handler for SIGTERM");
sleep(60);
return 0;
}