[Openmcl-devel] linux process hang

Larry Pells lpells at acm.org
Sat Feb 5 14:11:23 UTC 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