On Sun, Nov 02, 2014 at 11:05:27AM -0800, Adrian Chadd wrote:
> [snip all the conversation]
> 
> Ok. There's still a problem that I can trigger by trying to Ctrl-C a
> process that's blocked reading for randomness. I'll try to chase up
> more details about and file a PR about it.
> 
> The unfortunate part is that the kernel side stack trace of the
> offending / hung process isn't currently helpful. :(
> 

>From what I see, signals are essentially ignored in the read code.
See random_adaptors.c:random_adaptor_read():

                /* Sleep instead of going into a spin-frenzy */
                tsleep(&random_adaptor, PUSER | PCATCH, "block", hz/10);

The error which would indicate the signal catch, is dropped.  Also,
unbound sleep does not drop random_adaptor_lock, which means that
you cannot module which could provide some more randomness for you,
while any thread is stuck in read loop.
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to