[Openmcl-devel] unhanded exception reloading boot image, 32-bit darwin ccl 1.9-dev-r15461M-trunk

Gary Byers gb at clozure.com
Mon Sep 17 04:51:50 PDT 2012

The bug that you reported in r15461 was unrelated to ticket 1005/the
"memory surge" problem - a data structure that needs to be aligned on
a 16-byte memory boundary sometimes was and sometimes wasn't.  Someone
who (as luck would have it) wasn't affected by the alignment problem
reported that it didn't fix the other problems anyway.

That was an attempt to work around problems where
#_mach_port_allocate_name failed unexpectedly on Mountain Lion; when I
fixed the alignment issue and looked more closely at those problems, I
saw that the workaround just caused #_mach_port_allocate_name to fail
in different ways.

When a Mach exception occurs, the code that handles the exception needs to
be able to obtain the address of a thread-specific data structure ("the TCR")
from one of the handler's arguments (the message port on which the thread
receives exception messages.)  #_mach_port_allocate_name made that mapping
trivial (the value of the message port was the address of the data structure.)
Since #_mach_port_allocate_name is apparently severely broken on Mountain Lion,
r15462 uses a hashing scheme to map from a system-assigned port value to the
associated TCR.

That introduces a new set of things to (potentially) go wrong (poor hashing,
thread-safety issues, a little bit of extra work ...) but completely avoids
#_mach_port_allocate_name, and that seems desirable at this point.

You've heard this before, but r15462 seems to finally fix the problems which
caused slow thread creation and eventually lead to malloc heap exhaustion
on Mountain Lion.  I don't know of any newly-introduced thread-safety or
performance issues, but I'd have to have run this new code a lot longer
than I have to be confident that such issues don't exist.

On Sat, 15 Sep 2012, Raffael Cavallaro wrote:

> On Sep 14, 2012, at 4:51 PM, Raffael Cavallaro <raffaelcavallaro at me.com> wrote:
>> Gary and Matt,
>> after an svn update, kernel and bootstrapping image build successfully, but reloading the bootstrapping image fails as below.
> Thanks - 15462 fixes this.
> warmest regards,
> Ralph
> Raffael Cavallaro
> raffaelcavallaro at me.com
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> http://clozure.com/mailman/listinfo/openmcl-devel

More information about the Openmcl-devel mailing list