On Jan 28 09:00, Christian Franke via Cygwin wrote: > 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!
Cool, thanks for testing. I guess I release a 3.5.7 pretty soon. Thanks, Corinna -- 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