| Title: | DIGITAL UNIX (FORMERLY KNOWN AS DEC OSF/1) |
| Notice: | Welcome to the Digital UNIX Conference |
| Moderator: | SMURF::DENHAM |
| Created: | Thu Mar 16 1995 |
| Last Modified: | Fri Jun 06 1997 |
| Last Successful Update: | Fri Jun 06 1997 |
| Number of topics: | 10068 |
| Total number of notes: | 35879 |
Hi,
Can someone tell why the C runtime sometimes spits this message out:
exception system: exiting due to multiple internal errors:
exception dispatch or unwind stuck in infinite loop
After the message is outputed the program terminates.
I'm on unix 4.0b.
thanks
| T.R | Title | User | Personal Name | Date | Lines |
|---|---|---|---|---|---|
| 9922.1 | Bug in loader/libc/libexc ... | PTHRED::PORTANTE | Peter Portante, DTN 381-2261, (603)881-2261, MS ZKO2-3/Q18 | Thu May 22 1997 15:41 | 23 |
.0: (Sorry, I don't know your name ...) That message is seen when the exception handling system finds itself unable to unwind the stack. I know of two reasons for this, though there might be others. The first one is a simple bug in exc_raise_exception() which trashes the stack when an exception is being raised. The second is because of a race between a thread or threads using the exception handling system and another thread trying to call libc's exit(). The call to exit eventually tears down the procedure descriptors for the process before the actuall exit system call is made. But, since other threads are trying to raise exceptions at the same time, they can no longer find any procedure descriptors so as to complete their exception raise. The exception handling system spits out the message you reported when it runs into that problem. The fix for the first problem has been submitted to the support pools. The BL5 setld kits for V4.0* are the first kits to have this fix. I do not know who has fixed the second problem, or if it has been submitted to the support pools... -Peter | |||||
| 9922.2 | exc_raise_exception bug..... | CAMINO::MCDERMOTT | Thu May 22 1997 16:08 | 11 | |
Peter,
Thanks for the info. Since my program at the time of the error
wasn't calling "exit" I'll assume its the first scenario you described.
So anytime a thread raises an exception there is the possibility
that the stack could get trashed?
thanks
Greg
| |||||