Quoting M. Mohan Kumar ([email protected]):
> [PATCH] pidns14
> 
> Container-init may be immune to unhandled fatal signals (like SIGUSR1)
> even if they are from ancestor namespace. SIGKILL/SIGSTOP are the only
> reliable signals to a container-init from ancestor namespace. Make sure
> that container-init will not respond to signals other than
> SIGKILL/SIGSTOP

Hmm?  This may or may not be right...  but you start out by saying 'may be
immune to', then provide a patch making the testcase TFAIL if is not immune
to.  So at the very least anyone on a slightly older kernel will get TFAILs.

I don't think that immunity to SIGUSR1 from ancestor pidns is something we
want to guarantee, it's just what is happening.  The proper thing is to
not depend on either getting or not getting SIGUSR1, in my opinion.  Suka?

-serge

> Signed-off-by: M. Mohan Kumar <[email protected]>
> ---
>  testcases/kernel/containers/pidns/pidns14.c |   13 +++++++------
>  1 files changed, 7 insertions(+), 6 deletions(-)
> 
> diff --git a/testcases/kernel/containers/pidns/pidns14.c 
> b/testcases/kernel/containers/pidns/pidns14.c
> index e95bf95..41602cd 100644
> --- a/testcases/kernel/containers/pidns/pidns14.c
> +++ b/testcases/kernel/containers/pidns/pidns14.c
> @@ -67,9 +67,8 @@ int child_fn(void *ttype)
>               tst_resm(TBROK, "pidns is not created.");
>               cleanup();
>       }
> -     pause();
> -     tst_resm(TFAIL, "Oops! Container init resumed after receiving SIGUSR1");
> -     return -1;
> +     sleep(10);
> +     return 0;
>  }
> 
>  /*
> @@ -111,9 +110,11 @@ int main(int argc, char *argv[])
>       if (waitpid(cpid, &status, 0) < 0)
>               tst_resm(TWARN, "waitpid() failed.");
> 
> -     if ((WIFSIGNALED(status)) && (WTERMSIG(status) == SIGUSR1))
> -             tst_resm(TPASS, "Container init is killed as expected, "
> -                             " when the SIGUSR1 is passed from parent\n");
> +     if (WIFEXITED(status))
> +             tst_resm(TPASS, "Container init returned as expected\n");
> +     else if ((WIFSIGNALED(status)) && (WTERMSIG(status) == SIGUSR1))
> +             tst_resm(TFAIL, "Container init is killed when the SIGUSR1 "
> +                             "is passed from parent\n");
>        else
>               tst_resm(TFAIL, "After sending signal kill -USR1, "
>                               "returned unexpected error\n");
> -- 
> 1.6.0.2
> 
> 
> ------------------------------------------------------------------------------
> _______________________________________________
> Ltp-list mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/ltp-list

------------------------------------------------------------------------------
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to