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

Post Reply

Topic author
jonesd
Valued Contributor
Posts: 74
Joined: Mon Aug 09, 2021 7:59 pm
Reputation: 0
Status: Offline

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

Post by jonesd » Tue Dec 13, 2022 12:42 am

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


tim.stegner
VSI Expert
Valued Contributor
Posts: 55
Joined: Wed Jul 21, 2021 9:14 am
Reputation: 0
Status: Offline

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

Post by tim.stegner » Tue Dec 13, 2022 8:28 am

As a participant in the C++ beta, you should report problems via the portal.

Post Reply