Page 1 of 1

Signal handling problem on X86 (crash with Improperly handled condition).

Posted: Tue Dec 13, 2022 12:42 am
by jonesd
If an executing program is I/O bound or CPU bound, 5-10% of CRTL signal events that should be caught and delivered to registered signal handlers instead fall through to the last chance handler, crashing the program. The C test program in the zip file linked below runs successfully on Alpha and I64, but is never able to complete the 200 alarm() calls without crashing. The amount of progress it makes before crashing varies wildly. This is on a DL 380 running OpenVMS 9.2 with DECC$SHR build XG9N-BL2-000000 (link time 2-JUN-2022 11:58:51.18).

If I replace the work load with a pause() loop, there are no crashes. Likewise, there are no crashes if I replace the alarm() call with a straight SYS$SETIMR() call whose AST sets the same global flag the signal handler would. In terms of mishandled signals, it's not restricted to SIGALRM since I can demonstrate it with SIGINT and SIGUSR1 as well.

https://drive.google.com/file/d/1wpuxYI ... sp=sharing

Re: Signal handling problem on X86 (crash with Improperly handled condition).

Posted: Tue Dec 13, 2022 8:28 am
by tim.stegner
As a participant in the C++ beta, you should report problems via the portal.