Corinna Vinschen via Cygwin wrote:
On Jan 27 20:35, Corinna Vinschen via Cygwin wrote:
On Jan 27 19:59, Christian Franke via Cygwin wrote:
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
Yes, because I didn't have the time to look into it yet.
I just did, and I think I see what's going on. This should be fixed
in 3.5.7.
I just pushed a patch, please try cygwin-3.6.0-0.346.gfe6ddc15a356.
$ uname -r
3.6.0-0.346.gfe6ddc15a356.x86_64
$ time ./mqhang
mq_send...
mq_send = 0
mq_receive...
mq_receive = 8
mq_receive...
mq_send...
mq_receive = 8
mq_send = 0
real 0m5.002s
user 0m0.000s
sys 0m0.000s
$ stress-ng --workload 16 --timeout 60 --verify
stress-ng: info: [4873] setting to a 1 min run per stressor
stress-ng: info: [4873] dispatching hogs: 16 workload
stress-ng: info: [4874] workload: running with 2 threads per stressor
instance
stress-ng: info: [4873] skipped: 0
stress-ng: info: [4873] passed: 16: workload (16)
stress-ng: info: [4873] failed: 0
stress-ng: info: [4873] metrics untrustworthy: 0
stress-ng: info: [4873] successful run completed in 1 min, 3.31 secs
Looks good!
Thanks,
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