[Openmcl-devel] linux process hang
Larry Pells
lpells at acm.org
Sat Feb 5 06:11:23 PST 2005
On Friday 04 February 2005 14:13, Gary Byers wrote:
> Larry sent me the code that had been hanging. I wasn't able to reproduce
> the problem, but something about this looked kind of familiar.
>
> Some months ago I'd found a long-standing problem: the GC sometimes
> frees certain unreferenced foreign pointers; when the GC is entered
> in some thread, other threads are suspended and resumed when it's
> finished. If one of those suspended threads owns a malloc/free-related
> lock, the GC will deadlock when calling free().
>
> That's pretty nasty (and pretty stupid); to make matters even more
> stupid (and nasty, in their own way) I promptly checked in a fix
> to the bleeding-edge CVS tree and completely forgot to check that
> fix into the main tree.
>
> I think that I did do a moment ago. I can't be certain that this
> fixes the problem that Larry reported (since I couldn't reproduce
> that in either the "main" or "bleeding-edge" lisps), but the conditions
> under which this bug could occur and the symptoms were similar to
> what he described.
>
> Larry: if you do a "cvs update" and recompile the lisp kernel now, does
> the problem persist ? (I found that the version of UFFI I have -
> which may be fairly old - complained that WITH-CAST-POINTER was
> not yet implemented; that would seem to be completely unrelated
> to the hanging/deadlock that you saw.)
Since I have rebuilt the lisp kernel (I also rebuilt the lisp image as I have
a Makefile which does both), I removed the uffi compiled files and
regenerated them (just doing some testing). Now when I add the callback in,
it always hangs, regardless if I put the dribble in or not.
Larry
More information about the Openmcl-devel
mailing list