[Bug-openmcl] lisp dies with "Mach error"
gb at clozure.com
Sun May 1 19:06:58 MDT 2005
On Wed, 27 Apr 2005, Gary Byers wrote:
> 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 ?
It's not clear whether this was happening in 0.14.3 or earlier, but there's
no guarantee that the address of a TCR structure doesn't happen to conflict
with the (more-or-less random) value ("name") of an arbitrary Mach port
We can ensure that there's no conflict by trying to create a Mach port
whose "name" matches the TCR's address whenever a TCR is allocated (and,
if there happens to be a random conflict, keep allocating TCRs until
we luck out.)
The odds of a random address conflicting with a port name are probably
around N/2^32, where N is the number of Mach ports (threads, semaphores,
etc.) that have been incidentally created. I think that there's some
Apple debugging tool that will show this information (possibly GDB),
and I think that N is usually pretty small.
More information about the Bug-openmcl