I have another interesting data point.

I built my application using the experimental world below (my guess is that the
same results would happen with the 2004_04 shapshot) but in a slightly different 
fashion.
After each file load, I did a gc and then a purify.  The build went through to 
completion,
the final purify (the one that used to cause trouble) worked fine and the world saved. 
 The
resulting core seems to startup and work fine.

So, it seems that the purify problem (#2) is more related to how much you are 
purifying at
one time rather than the total amount that is purified.

-bill-



William Brew wrote:

> I picked up the experimental snapshot below and tried it (wrt problem #2 in my
> summary
> message).
>
> The result is similar but not exactly the same.  You still get a core dump.  Using
> gdb to look
> at the core file, the seg fault happened in a different place, pscav.
>
> I have attached a transcript.  I also included a (room t) to show what
> the various spaces look like before the purify.
>
> -bill-
>
> Raymond Toy wrote:
>
> > >
> > > I'm going to try to make a special build for you that has 256 MB of
> > > read-only and 256 MB of static space.  I'll let you know when it's done
> > > and where you can find it.
> >
> > New binaries with 256 MB of read-only and static space.  Find them at
> >
> > common-lisp.net:/var/ftp/pub/project/cmucl/experimental/cmucl-2004-04-20-big-mem*
> >
> > Ray
>
> -- Attached file included as plaintext by Listar --
> -- File: 2004_04_20-session.text
>
> ;;; a (room t) just before the end
>
> Dynamic Space Usage:       54,126,960 bytes (out of 1,024 MB).
> Read-Only Space Usage:     22,801,648 bytes (out of  256 MB).
> Static Space Usage:         2,668,752 bytes (out of  256 MB).
> Control Stack Usage:            6,032 bytes (out of  128 MB).
> Binding Stack Usage:              600 bytes (out of  128 MB).
> The current dynamic space is 0.
> Garbage collection is currently enabled.
>
> Summary of spaces: static dynamic
>
> SIMPLE-VECTOR-TYPE:
>     15,073,744 bytes, 142,427 objects, 94% dynamic, 6% static.
>
> CONS:
>     4,521,000 bytes, 565,125 objects, 87% dynamic, 13% static.
>
> INSTANCE:
>     2,975,688 bytes, 164,080 objects, 87% dynamic, 13% static.
>
> CODE:
>     1,164,968 bytes, 1,041 objects, 100% dynamic.
>
> SYMBOL:
>     1,014,648 bytes, 42,277 objects, 39% dynamic, 61% static.
>
> SAP:
>     920,496 bytes, 115,062 objects, 100% dynamic.
>
> SIMPLE-STRING-TYPE:
>     855,552 bytes, 18,501 objects, 100% dynamic.
>
> FDEFN:
>     328,400 bytes, 20,525 objects, 34% dynamic, 66% static.
>
> SIMPLE-ARRAY-UNSIGNED-BYTE-8-TYPE:
>     174,176 bytes, 1,450 objects, 100% dynamic.
>
> SIMPLE-ARRAY-UNSIGNED-BYTE-32-TYPE:
>     39,648 bytes, 130 objects, 100% dynamic.
>
> CLOSURE:
>     7,968 bytes, 431 objects, 100% dynamic.
>
> BIGNUM:
>     7,472 bytes, 480 objects, 100% dynamic.
>
> SIMPLE-BIT-VECTOR-TYPE:
>     4,048 bytes, 260 objects, 100% dynamic.
>
> VALUE-CELL:
>     3,344 bytes, 418 objects, 14% dynamic, 86% static.
>
> SIMPLE-ARRAY-UNSIGNED-BYTE-2-TYPE:
>     3,104 bytes, 194 objects, 100% dynamic.
>
> SIMPLE-ARRAY-UNSIGNED-BYTE-16-TYPE:
>     2,504 bytes, 45 objects, 100% dynamic.
>
> SIMPLE-ARRAY-UNSIGNED-BYTE-4-TYPE:
>     1,680 bytes, 105 objects, 100% dynamic.
>
> ARRAY-HEADER:
>     328 bytes, 10 objects, 10% dynamic, 90% static.
>
> SINGLE-FLOAT:
>     104 bytes, 13 objects, 100% dynamic.
>
> RATIO:
>     48 bytes, 3 objects, 100% static.
>
> WEAK-POINTER:
>     48 bytes, 3 objects, 100% dynamic.
>
> COMPLEX:
>     16 bytes, 1 object, 100% static.
>
> Summary total:
>     27,098,984 bytes, 1,072,581 objects.
>
> Top 10 dynamic instance types:
> GC start ... done
>   KBNODE                          : 2,304,864 bytes, 144054 objects.
>   XREF::XREF-CONTEXT              :  52,128 bytes,  2172 objects.
>   C::COMPILED-DEBUG-FUNCTION      :  49,896 bytes,   891 objects.
>   C::CONTINUATION                 :  29,960 bytes,   535 objects.
>   C::COMPILED-DEBUG-INFO          :  16,320 bytes,   680 objects.
>   PRETTY-PRINT:PRETTY-STREAM      :  13,728 bytes,   143 objects.
>   PATHNAME                        :  12,960 bytes,   405 objects.
>   FORMAT::FORMAT-DIRECTIVE        :  12,520 bytes,   313 objects.
>   C::CLAMBDA                      :  11,200 bytes,   100 objects.
>   C::CBLOCK                       :  10,960 bytes,   137 objects.
>   Other types: 100,248 bytes, 2627: objects.
>   Dynamic instance total: 2,614,784 bytes, 152,057 objects.
>
> Top 10 static instance types:
>   PCL::FAST-METHOD-CALL           :  74,088 bytes,  3087 objects.
>   PCL::ARG-INFO                   :  52,024 bytes,   929 objects.
>   KERNEL:LAYOUT                   :  33,264 bytes,   462 objects.
>   HASH-TABLE                      :  24,896 bytes,   389 objects.
>   KERNEL::STRUCTURE-CLASS         :  16,912 bytes,   302 objects.
>   PCL::CACHE                      :  13,832 bytes,   247 objects.
>   C::TRANSFORM                    :  13,024 bytes,   407 objects.
>   PCL::PV-TABLE                   :  11,456 bytes,   358 objects.
>   STANDARD-METHOD                 :  10,720 bytes,   670 objects.
>   PCL::INITIAL                    :  10,672 bytes,   667 objects.
>   Other types: 129,976 bytes, 5090: objects.
>   Static instance total: 390,864 bytes, 12,608 objects.
>
> ;;; a few gcs at the end
>
> *
> ; [GC threshold exceeded with 53,321,176 bytes in use.  Commencing GC.]
> ; [GC completed with 53,318,728 bytes retained and 2,448 bytes freed.]
> ; [GC will next occur when at least 73,318,728 bytes are in use.]
> NIL
> *
> ; [GC threshold exceeded with 53,322,584 bytes in use.  Commencing GC.]
> ; [GC completed with 53,318,744 bytes retained and 3,840 bytes freed.]
> ; [GC will next occur when at least 73,318,744 bytes are in use.]
> NIL
> * [Doing purification: Segmentation Fault - core dumped
>
> ;;; core file listed below
>
> otwb-dev bbrew 80> ls -l
> total 188584
> -rw-rw-r--   1 bbrew    g940       30957 Apr 15 10:07 bb.lisp
> -rw-rw-r--   1 bbrew    g940     4266498 Apr 19 14:12 big-non-purify-transcript.text
> -rw-rw-r--   1 bbrew    g940        9006 Apr 19 12:52 big-purify-transcript.text
> -rw-rw-r--   1 bbrew    g940        1215 Apr 16 10:24 big-save-test.lisp
> -rw-rw-r--   1 bbrew    g940        3017 Apr 15 10:07 cmucl-19a-many-closure-bug.text
> -rw-rw-r--   1 bbrew    g940        3862 Apr 15 09:10 cmucl-19a-purify-bug.text
> -rw-rw-r--   1 bbrew    g940     91328504 Apr 21 11:31 core
> -rw-rw-r--   1 bbrew    g940       17944 Apr 20 10:24 dummy-file-maker.lisp
> -rw-rw-r--   1 bbrew    g940        2466 Apr 19 12:20 dummy-file-maker.lisp.~1~
> -rw-rw-r--   1 bbrew    g940        8098 Apr 19 12:53 dummy-file-maker.sparcf
> -rw-rw-r--   1 bbrew    g940        3376 Apr 20 10:41 purify-gdb-session.text
> -rw-rw-r--   1 bbrew    g940        3224 Apr 20 10:27 purify-gdb-session.text.~1~
> -rw-rw-r--   1 bbrew    g940        6542 Apr 20 10:31 purify-test.lisp
> -rw-rw-r--   1 bbrew    g940        1094 Apr 19 12:03 purify-test.lisp.~1~
> -rw-rw-r--   1 bbrew    g940        4232 Apr 20 10:29 purify-test.sparcf
>
> ;;; gdb session
>
> otwb-dev bbrew 81> gdb /org/develop/reasoning/lisp/cmucl/ss2004-04-20/bin/lisp core
> GNU gdb 5.0
> Copyright 2000 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you are
> welcome to change it and/or distribute copies of it under certain conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB.  Type "show warranty" for details.
> This GDB was configured as "sparc-sun-solaris2.4"...
> Core was generated by `/org/develop/reasoning/lisp/cmucl/ss2004-04-20/bin/lisp 
> -batch -dynamic-space-s'.
> Program terminated with signal 11, Segmentation Fault.
> Error while mapping shared library sections:
> /tmp/12797AG1623: No such file or directory.
> Error while mapping shared library sections:
> /tmp/12797AG1624: No such file or directory.
> Error while mapping shared library sections:
> /tmp/12797AG1625: No such file or directory.
> Reading symbols from /usr/lib/libsocket.so.1...done.
> Loaded symbols for /usr/lib/libsocket.so.1
> Reading symbols from /usr/lib/libnsl.so.1...done.
> Loaded symbols for /usr/lib/libnsl.so.1
> Reading symbols from /usr/lib/libdl.so.1...done.
> Loaded symbols for /usr/lib/libdl.so.1
> Reading symbols from /usr/lib/libm.so.1...done.
> Loaded symbols for /usr/lib/libm.so.1
> Reading symbols from /usr/lib/libc.so.1...done.
> Loaded symbols for /usr/lib/libc.so.1
> Reading symbols from /usr/lib/libmp.so.2...done.
> Loaded symbols for /usr/lib/libmp.so.2
> Reading symbols from /usr/platform/SUNW,Ultra-4/lib/libc_psr.so.1...done.
> Loaded symbols for /usr/platform/SUNW,Ultra-4/lib/libc_psr.so.1
> Error while reading shared library symbols:
> /tmp/12797AG1623: No such file or directory.
> Error while reading shared library symbols:
> /tmp/12797AG1624: No such file or directory.
> Error while reading shared library symbols:
> /tmp/12797AG1625: No such file or directory.
> #0  pscav (addr=0x2800000b, nwords=0, constant=687057392)
>     at ../../src/lisp/purify.c:1168
> 1168    ../../src/lisp/purify.c: No such file or directory.
> (gdb) print thing
> $1 = 2
> (gdb) print thingp
> $2 = (lispobj *) 0x28000008
> (gdb) print header
> $3 = 687057616
> (gdb) print count
> $4 = 687057616
> (gdb) print vector
> No symbol "vector" in current context.
> (gdb) q
> otwb-dev bbrew 82>


Reply via email to