[developers] Re: pending/367: (itsdb) certain test suite items kill Lisp

Stephan Oepen oe at csli.Stanford.EDU
Tue May 3 01:06:59 CEST 2005


hi again (copying `developers' because of potential broader interest),

> I've been having trouble processing the full CSLI test suite when using 
> the default *maximum-number-of-edges* (100000). Certain test suite items 
> (fairly regularly, but not always) cause Lisp to die horribly, as copied 
> below. Decreasing *maximum-number-of-edges* to 10000 reliably fixes the 
> problem. Problem occurs on all (3) machines tried so far, with both 
> Allegro 6.2 and Allegro 7.0.

> LKB(11): (let ((*maximum-number-of-edges* 100000))
>            (do-parse-tty "Chiang bet Devito a dollar that Browne
                            interviewed Abrams and a dollar that Abrams
                            would be hired."))

  [...]

> gc-after-hook(): local; new: 145369608; old: 0; pending: 48; efficiency: 37.
>  
> system error (gsgc): Object already pointing to target newspace half: 
> The internal data structures in the running Lisp image have been
> corrupted and execution cannot continue.  Check all foreign functions
> and any Lisp code that was compiled with high speed and/or low safety,
> as these are two common sources of this failure.  If you cannot find
> anything incorrect in your code you should contact technical support
> for Allegro Common Lisp, and we will try to help determine whether
> this is a coding error or an internal bug.
> Would you like to dump core for debugging before exiting(y or n)? y

generally, i would say that a maximum of 100,000 edges is way to many
when using the ERG and the LKB parser(s); in generation, we usually go
with a maximum of 25,000 these days, and that might be a good value in
parsing too.  my [incr tsdb()] default of 100,000, apparently, assumes 
that a majority of users use PET in batch parsing.  you could use your
`~/.tsdbrc' to customize for your needs, e.g.

  (setf *tsdb-maximal-number-of-edges* 25000)

the gsgc() problem you experience, unfortunately, is long-standing in
Allegro CL and has to do with heap placement and the system failing to
detect that newspace growth can collapse with the C heap location.  it
is possible to allow the Lisp more room to grow by trying to maximize
the distance between the Lisp and C heap base addresses, though at the
cost of leaving less room for foreign objects (and requesting address
ranges that may be unavailable in some environments, notably EM64T in
32-bit compatibility mode).  some time ago, i checked in my build file
for custom Allegro images as `.../etc/bclim.lisp' in the LKB tree, and
you could try using that (it will allow up to some 1.8 gbyte Lisp heap
size).

          apologies, i wish something could be done about this  -  oe

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++ Universitetet i Oslo (ILN); Boks 1102 Blindern; 0317 Oslo; (+47) 2285 7989
+++     CSLI Stanford; Ventura Hall; Stanford, CA 94305; (+1 650) 723 0515
+++       --- oe at csli.stanford.edu; oe at hf.uio.no; stephan at oepen.net ---
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



More information about the developers mailing list