With FreeBSD 8.0 it seems like you can't block pending but undelivered signals
Richard Sharpe
realrichardsharpe at gmail.com
Tue Jan 8 09:51:10 MST 2013
Hi folks,
I have looked more at the AIO and signal issues I am seeing with
FreeBSD. This is FreeBSD 8.0.
After instrumenting the code in lib/tevent/tevent_signal.c, I know:
1. Only one thread, the main thread is receiving signals.
2. When we hit 64 siginfo_t structures in our array, we try to stop
the delivery of further signals (signum=68, one of the RT signals
under FreeBSD.)
3. They keep coming, overwriting earlier ones and causing replays of
already handled events.
I will be reading the FreeBSD source code some more today to try to
figure out what is going on.
The work-around is to change the size of the array for siginfo_t
structures to 128 from 64 so it is larger than the number of pending
AIO requests (100).
--
Regards,
Richard Sharpe
(何以解憂?唯有杜康。--曹操)
More information about the samba-technical
mailing list