[Ecls-list] Strange error

Waldek Hebisch hebisch at math.uni.wroc.pl
Sat May 31 01:54:26 UTC 2008

I am trying to build FriCAS on a 64-bit Fedora 9 machine.  I am
getting "Out of memory" message followed by a segfault.  Strange
thing is that the machine has 8 Gb of RAM and process size at
time of failure is about 400 Mb (the resident set size is only 37Mb).
Moreover, I the same ECL and FriCAS version builds fine on 64-bit
Gento with 1 Gb of RAM and 2Gb swap.  It looks that maximal process
size at this stage seem to be well below 1 Gb (on Gentoo in
later stages it got up to 2Gb).

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.

One guess is that compared to Gentoo address space randomization
in Fedora may be causing extra fragmentation of address space
and consequently allocation failure due to lack of continuous block?
But in 64-bit (well, 48-bit in practice) address space this
should not be a problem...

Another thing is why I am getting segfault -- I would expect ECL
to detect failing allocation and react more gracefully.

I would appreciate hints how to debug this problem.  I tried running
the relevant part of the build under gdb, and I got backtracte
which I inclede below, but 

   Loading /home/hebisch/axp1/ax-build4/src/algebra/HEXADEC.NRLIB/code
      for domain HexadecimalExpansion
   Loading /home/hebisch/axp1/ax-build4/src/algebra/OSI.NRLIB/code for
      domain OrdSetInts

"building browse.daase"GC Warning: Out of Memory!  Returning NIL!

Program received signal SIGSEGV, Segmentation fault.
0x0000000000a71036 in si_make_structure (narg=5, type=<value optimized out>)
    at /home/hebisch/lisp/ecl2/src/c/structure.d:78
78                      SLOT(x, i) = cl_va_arg(args);
Missing separate debuginfos, use: debuginfo-install glibc.x86_64
(gdb) bt
#0  0x0000000000a71036 in si_make_structure (narg=5,
    type=<value optimized out>) at /home/hebisch/lisp/ecl2/src/c/structure.d:78
#1  0x0000000000a18772 in L25make_newline (narg=<value optimized out>)
    at /home/hebisch/lisp/ecl2/build/clos/pprint.c:924
#2  0x0000000000a1adf6 in L26enqueue_newline (V1=0x399d6b8, V2=0x1ccf660)
    at /home/hebisch/lisp/ecl2/build/clos/pprint.c:951
#3  0x0000000000a1de17 in cl_pprint_newline (narg=<value optimized out>,
    V1=0x1ccf660) at /home/hebisch/lisp/ecl2/build/clos/pprint.c:2965
#4  0x0000000000a1e612 in LC116__pprint_logical_block_20541 (
    narg=<value optimized out>, env0=<value optimized out>, V1=0x27933f0,
    V2=0x399d6b8) at /home/hebisch/lisp/ecl2/build/clos/pprint.c:8182
#5  0x0000000000a34b96 in cl_funcall (narg=3, function=0x399b000)
    at /home/hebisch/lisp/ecl2/src/c/eval.d:199
#6  0x0000000000a207d3 in L47do_pprint_logical_block (V1=0x399b000,
    V2=0x2793420, V3=0x399d6b8, V4=<value optimized out>, V5=0x1, V6=0x1d5b4d8)
    at /home/hebisch/lisp/ecl2/build/clos/pprint.c:2692
#7  0x0000000000a20a53 in si_pprint_logical_block_helper (narg=6,
    V1=0x399b000, V2=0x2793420, V3=0x399d6b8, V4=0x1d5b500, V5=0x1,
    V6=0x1d5b4d8) at /home/hebisch/lisp/ecl2/build/clos/pprint.c:2725
#8  0x0000000000a20c56 in L117pprint_function_call (
    narg=<value optimized out>, V1=0x399d6b8, V2=<value optimized out>)
    at /home/hebisch/lisp/ecl2/build/clos/pprint.c:8087
#9  0x0000000000a34b96 in cl_funcall (narg=3, function=0x1d4da40)
    at /home/hebisch/lisp/ecl2/src/c/eval.d:199

                              Waldek Hebisch
hebisch at math.uni.wroc.pl 

More information about the ecl-devel mailing list