SIGALRM stays blocked when kernel 2.6.13.3 booted through pxelinux

From: Hans Korneder
Date: Tue Oct 04 2005 - 09:39:58 EST


Hello,

when booting a 2.6.* - kernel through pxelinux
SIGALRM stays blocked for a process trying to catch it.

the process trying to catch signals:

#include <stdio.h>
#include <signal.h>

void catch_sig(int sig_num)
{
fprintf(stderr,"catch_sig %d\n", sig_num);
(void)signal(sig_num, catch_sig);
}

main()
{
catch_sig(SIGALRM);
catch_sig(SIGHUP);
pause();
}

the output of /proc/#/status:
...
State: S (sleeping)
...
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000002000
SigIgn: 0000000000000000
SigCgt: 0000000000002001
...
shows that signal SIGALRM is being blocked.

thus a "kill -ALRM #" is being ignored,
a "kill -HUP #" is being processed as expected.

This could be verified with kernel 2.6.11.11 and 2.6.13.3
being booted through pxelinux 2.11, 3.08 and 3.11.

This does not happen with kernel 2.4.* (tested 2.4.25, 2.4.27, 2.4.31)
or whenever the kernel (any version 2.4 or 2.6 from above) is booted from
a harddisk.

My CPU: Intel(R) Pentium(R) 4 CPU 2.66GHz
The GCC: gcc (GCC) 3.3.5 20050117 (prerelease) (SUSE Linux)
The .config dont seem to make much of a difference, tried with different ones
(SuSE-originals, defconfig and minimalistic configs) with and without SMP.
No modules loaded, almost no processes running (besides init/sshd/bash),
no SuSE, RedHat or other distribution-specific processes.

Any hints for a solution or how to trace the problem?

Regards,
Hans Korneder
hans at korneder dot de


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/