On 2024-11-22 07:22, Christian Franke via Cygwin wrote:
The command 'stress-ng --longjmp ... -t 1' occasionally fails to terminate
because some child process does not receive the SIGALRM indicating timeout.
Testcase (attached):
$ g++ -O2 -o longjmpsigs longjmpsigs.cc
$ ./longjmpsigs
[^C]
INT 1
[^C]
INT 2
...
[^C]
INT 21
[^C]
[^C]
INT 22
...
The following run in a second window may not stop the process due to few lost
signals:
for i in {1..100}; do
echo $i; killall -INT longjmpsigs || break; sleep 1
done
The problem does not occur if a regular loop is used instead of setjmp/longjmp.
Reproducible also with current cygwin1.dll 26144e40.
I have some cygport package build tests which hang and need killed despite them
using usual test harnesses setting timeouts, typically running ~100% all CPUs!
--
Take care. Thanks, Brian Inglis Calgary, Alberta, Canada
La perfection est atteinte Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter not when there is no more to add
mais lorsqu'il n'y a plus rien à retirer but when there is no more to cut
-- Antoine de Saint-Exupéry
--
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