[Ecls-list] Strange error

Juan Jose Garcia-Ripoll jjgarcia at users.sourceforge.net
Sat May 31 11:18:35 UTC 2008


On Sat, May 31, 2008 at 10:23 AM, Juan Jose Garcia-Ripoll
<jjgarcia at users.sourceforge.net> wrote:
> On Sat, May 31, 2008 at 3:54 AM, Waldek Hebisch
> <hebisch at math.uni.wroc.pl> wrote:
>> I must admit that I was somewat surprised to see how large
>> process size may get -- I am loading a lot of fasls (1090 in
>> final stage), but on disk they take about 70 Mb.
>
> I suspect that this is related to the problems I experienced by
> removing the garbage collection phase from cl_load(). There is a weird
> interaction between the garbage collector and the dynamic linker going
> on. Or maybe the gabage collector is not aggressive enough when using
> the incremental algorithm.

I might have found the cause in the garbage collector docs:

4) Dlopen() disables collection during its execution.  (It can't run
  concurrently with the collector, since the collector looks at its
  data structures.  It can't acquire the allocator lock, since arbitrary
  user startup code may run as part of dlopen().)  Under unusual
  conditions, this may cause unexpected heap growth.

The solution is probably to #undef dlopen() in the file that loads
dynamically linked libraries so that it does not call the wrapper
installed by the garbage collector. This is sensible, given that we
explicitely deactivate scanning of shared library data when ECL is
booted.

Juanjo

-- 
Facultad de Fisicas, Universidad Complutense,
Ciudad Universitaria s/n Madrid 28040 (Spain)
http://juanjose.garciaripoll.googlepages.com




More information about the ecl-devel mailing list