From: Jeff Sapp <jasapp@gm...> - 2007-11-26 18:06:03
I've been using sbcl-1.0.9, allegroserve, and clsql-4.0.1 to run a
fairly busy xmlrpc
server here at work. Much to my dismay I returned from the thanksgiving holiday
to find sbcl had dropped to the ldb after printing this message:
*** glibc detected *** free(): invalid pointer: 0x00002aaaab1928d8 ***
fatal error encountered in SBCL pid 22636(tid 46912764987728):
%PRIMITIVE HALT called; the party is over.
One of my coworkers restarted the process, so I was unable to get a stack trace
from ldb, but I can in the future if that would be useful. I also don't know how
much memory was being used on the system when it died. The server has 4gb
of ram, but it usually hovers around 1gb used.
It isn't uncommon to see 10 to 15 requests a second.
Almost all of the functions return immediately, and allegroserve's worker
count is set to a max of 50, so my connection count never gets very high.
After poking through the sbcl-devel archives, I'm now calling sbcl with
--disable-debugger and --dynamic-space-size 1024.
I've tried to include all relevant information, but if I've missed something
that might be helpful, please let me know.
My sbcl is 1.0.9, I compiled it with sbcl 1.0.8 and enabled :sb-thread in
root@...:~# uname -a
Linux jazz 2.6.15-26-amd64-server #1 SMP Fri Sep 8 20:33:15 UTC 2006
The computer is running Ubuntu 7.04 Dapper LTS.
I'd greatly appreciate any words of wisdom that might help me resolve
this problem. I had a couple questions that may or may not be relevant
to my problem.
Will calling sbcl with --dynamic-space-size 1024 help my situation or
just decrease the frequency?
Would upgrading to 1.0.12 be of any help? I looked through the changes,
but I didn't see anything that stood out to me.
I did also wanted to say thanks for all the hard work and time you guys
have put into sbcl. Keep up the good work!
From: Juho Snellman <jsnell@ik...> - 2007-11-27 08:28:14
"Jeff Sapp" <jasapp@...> writes:
> *** glibc detected *** free(): invalid pointer: 0x00002aaaab1928d8 ***
> fatal error encountered in SBCL pid 22636(tid 46912764987728):
> %PRIMITIVE HALT called; the party is over.
> Will calling sbcl with --dynamic-space-size 1024 help my situation or
> just decrease the frequency?
I would expect it to have no effect. That message has nothing to do
with sbcl running out of memory. Rather, it's saying that somebody
called the libc free() with an invalid argument. By far the most
likely reason is that there was some kind of memory corruption.