Re: lisp dies with "Mach error"
Gary Byers <[email protected]> Wed, 27 Apr 2005 18:44:06 -0600 (MDT)
| Newsgroups | gmane.lisp.openmcl.bugs |
|---|---|
| Message-ID | <[email protected]> |
On Wed, 27 Apr 2005, Alan Ruttenberg wrote: > Haven't seen this one before... > No backtrace. No kernel debugger. > While running slime. I think I was inspecting something. > If I can make this repeat I will send further information. > Running on PBG4, 1.2GHz, os 10.3.8, 2G Ram. > > -- > > Fatal error: Mach error > Mach error while naming exception_port : 13 > > Process inferior-lisp exited abnormally with code 255 > I've seen that (in situations where lots of threads had been created and died); I had -thought- that there was code in 0.14.3 that kept it from happening. Is this 0.14.3, or an earlier version ? A Mach port "name" is an arbitrary 32-bit integer; the lisp kernel tries to arrange that a given thread's exception port name is the address of the thread's "thread context record" (TCR). When a thread dies (and its TCR is freed), the port name is supposed to be deallocated/ destroyed, and made available for subsequent re-use. The error (13 = KERN_NAME_EXISTS) indicates that Mach still believes that a port whose "name" matches a TCR's address is active. You'll -probably- find that this is very hard to reproduce; if it happened under 0.14.3, I'll see if I can come up with a different approach. (Mach sucks, but no one knows how.)