Christian Franke wrote:
Found with 'stress-ng --workload ...':
If mq_receive is called on an empty queue and mq_send is called later
from a different thread, both functions never return and signals
(including SIGKILL) are no longer processed.
Testcase (attached):
$ uname -r
3.5.5-1.x86_64
The problem is also reproducible with 3.5.6-1 and recent
3.6.0-0.345.gb940faa144ca
$ gcc -o mqhang mqhang.c
$ ./mqhang
mq_send...
mq_send = 0
mq_receive...
mq_receive = 8
mq_receive...
mq_send...
[...hangs...]
Problem does not occur if mq_receive() is called from a fork()ed
process instead of a thread.
--
Regards,
Christian
--
Problem reports: https://cygwin.com/problems.html
FAQ: https://cygwin.com/faq/
Documentation: https://cygwin.com/docs.html
Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple