[lxc-devel] [PATCH] exclude non-existing signals from the loop

S.Çağlar Onur caglar at 10ur.org
Fri Jan 17 03:08:34 UTC 2014


On Thu, Jan 16, 2014 at 4:38 PM, Serge Hallyn <serge.hallyn at ubuntu.com> wrote:
> Quoting S.Çağlar Onur (caglar at 10ur.org):
>> On Thu, Jan 16, 2014 at 4:24 PM, Serge Hallyn <serge.hallyn at ubuntu.com> wrote:
>> > Quoting S.Çağlar Onur (caglar at 10ur.org):
>> >> 32 and 33 are not defined and causing sigaction to fail. "kill -l" shows following
>> >> on my system
>> >>
>> >>  1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
>> >>  6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1
>> >> 11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
>> >> 16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
>> >> 21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
>> >> 26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR
>> >> 31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
>> >> 38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
>> >> 43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
>> >> 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
>> >> 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
>> >> 58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
>> >> 63) SIGRTMAX-1  64) SIGRTMAX
>> >>
>> >> Signed-off-by: S.Çağlar Onur <caglar at 10ur.org>
>> >
>> > Odd...  on my system NSIG is 32, so these should never hit (since it is
>> > in a while i<NSIG loop)
>>
>> Printing NSIG via ERROR shows that its 64 on my system.
>
> So a header file is #defining NSIG, which is already defined to 32
> in kernel headers, to _NSIG, which is 64.
>
> Looking around the current state of kernel headers, i wonder whether
> we should imply use min(SIGRTMIN, NSIG).

SIGRTMIN is 34 on my system hence min(SIGRTMIN, NSIG) gives 34 and
sigaction still fails :/

>> > Does 32 show up in /usr/include/asm-generic/signal.h or
>> > /usr/include/`arch`-linux-gnu/asm/signal.h ?
>>
>> [caglar at qp:~/Projects/lxc(master)] find /usr/include/ -name signal.h |
>> xargs grep NSIG
>> /usr/include/asm-generic/signal.h:#define _NSIG         64
>> /usr/include/asm-generic/signal.h:#define _NSIG_BPW     __BITS_PER_LONG
>> /usr/include/asm-generic/signal.h:#define _NSIG_WORDS   (_NSIG / _NSIG_BPW)
>> /usr/include/asm-generic/signal.h:#define SIGRTMAX      _NSIG
>> /usr/include/asm-generic/signal.h:#define MINSIGSTKSZ   2048
>> /usr/include/asm-generic/signal.h:      unsigned long sig[_NSIG_WORDS];
>> /usr/include/x86_64-linux-gnu/asm/signal.h:#define NSIG         32
>> /usr/include/x86_64-linux-gnu/asm/signal.h:#define SIGRTMAX     _NSIG
>> /usr/include/x86_64-linux-gnu/asm/signal.h:#define MINSIGSTKSZ  2048
>> /usr/include/signal.h:# define NSIG     _NSIG
>> /usr/include/signal.h:extern const char *const _sys_siglist[_NSIG];
>> /usr/include/signal.h:extern const char *const sys_siglist[_NSIG];
>>
>> >> ---
>> >>  src/lxc/lxc_init.c | 3 ++-
>> >>  1 file changed, 2 insertions(+), 1 deletion(-)
>> >>
>> >> diff --git a/src/lxc/lxc_init.c b/src/lxc/lxc_init.c
>> >> index a59dd9c..ae64af8 100644
>> >> --- a/src/lxc/lxc_init.c
>> >> +++ b/src/lxc/lxc_init.c
>> >> @@ -143,7 +143,8 @@ int main(int argc, char *argv[])
>> >>                   i == SIGSEGV ||
>> >>                   i == SIGBUS ||
>> >>                   i == SIGSTOP ||
>> >> -                 i == SIGKILL)
>> >> +                 i == SIGKILL ||
>> >> +                 i == 32 || i == 33)
>> >>                       continue;
>> >>
>> >>               if (sigfillset(&act.sa_mask) ||
>> >> --
>> >> 1.8.3.2
>> >>
>> >> _______________________________________________
>> >> lxc-devel mailing list
>> >> lxc-devel at lists.linuxcontainers.org
>> >> http://lists.linuxcontainers.org/listinfo/lxc-devel
>> > _______________________________________________
>> > lxc-devel mailing list
>> > lxc-devel at lists.linuxcontainers.org
>> > http://lists.linuxcontainers.org/listinfo/lxc-devel
>>
>>
>>
>> --
>> S.Çağlar Onur <caglar at 10ur.org>
>> _______________________________________________
>> lxc-devel mailing list
>> lxc-devel at lists.linuxcontainers.org
>> http://lists.linuxcontainers.org/listinfo/lxc-devel
> _______________________________________________
> lxc-devel mailing list
> lxc-devel at lists.linuxcontainers.org
> http://lists.linuxcontainers.org/listinfo/lxc-devel



-- 
S.Çağlar Onur <caglar at 10ur.org>


More information about the lxc-devel mailing list