This turned out to be a problem with our hack for implementing a "setenv" function
and nothing fundamental with sbcl. The problem occurred when an environment
variable was not set and the getenv of it returned NIL and then this was later
called as an argument to setenv which was expecting a string. Most of our scripts
and environments set this environment variable, so that is why it was only a
problem in particular cases.
Sorry for the false alarm.
Stephen Westfold wrote:
> Nikodemus Siivola wrote:
>>Stephen Westfold <westfold@...> writes:
>>>I am trying to get my (large) application running on different platforms
>>>with SBCL. It is working very well on Linux and is looking close on
>>>Windows (!), but although it works on Mac OS X if I don't save a core
>>>image, I get a GC invariant lost error soon after restarting a saved
>>>core image. The transcript is below. Is there any other information that
>>>would be useful in tracking this down?
>>>This is SBCL 0.9.16, an implementation of ANSI Common Lisp.
>>>More information about SBCL is available at <http://www.sbcl.org/>.
>>>SBCL is free software, provided as is, with absolutely no warranty.
>>>It is mostly in the public domain; some portions are provided under
>>>BSD-style licenses. See the CREDITS and COPYING files in the
>>>distribution for more information.
>>>;;; <Initialization print-out from my application>
>>>fatal error encountered in SBCL pid 18163:
>>>GC invariant lost, file "gc-common.c", line 137
>>Does purify affect this?
>> (save-lisp-and-die "pure.core" :purify t)
>> (save-lisp-and-die "impure.core" :purify nil)
>>That is, do both cores hit the GC invariant?
>>If they do, what does
>> (save-lisp-end-die "test.core" :toplevel (lambda () (gc :full t) (your-toplevel)))
>>The LDB backtrace (hit "b") would not hurt either, but I'm not optimistic in
>>its ability solve this.
>>If you cannot send us the source (or even send it to eg. me
>>confidentially), then your best bet may be doing a binary section:
>>take an older released SBCL, eg. 0.9.0, and try with it, then
>>(assuming it works) with 0.9.8, and so forth, till you narrow it down
>>to a single release where the failure appears, and finally
>>(optionally) continuing to narrow it down into a single commit causing
>>the failure. ...but just knowing if that this used to work with 0.9.X
>>and stopped working with 0.9.X+1 would be quite helpfull.
>> -- Nikodemus Schemer: "Buddha is small, clean, and serious."
>> Lispnik: "Buddha is big, has hairy armpits, and laughs."
> Thanks for the suggestions.
> Purify has no effect, neither does inserting a full gc. When I type b to
> LDB it says
> fatal error encountered in SBCL pid 26773:
> GC invariant lost, file "gencgc.c", line 652
> I removed our automatic initialization on start-up, so I can interact
> with the system. Everything works fine until I call the initialization
> routine. I have narrowed it down to an individual function where the
> error occurs, and I am currently trying to narrow it down further.
> I forgot to mention in my initial report that this is not a new problem.
> In fact I have never got it working. I am not sure which versions I have
> tried it on, but several in the last six months, although only recently
> was I motivated to push it. Do you think it is worth my while trying to
> find a version where it worked, or continue narrowing down where the
> error occurs. Sending you the source may be possible, although it would
> require some effort to extract the relevant files.
> Using Tomcat but need to do more? Need to support web services, security?
> Get stuff done quickly with pre-integrated technology to make your job easier
> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
> Sbcl-help mailing list