[elephant-devel] linux-sbcl-64 report

Henrik Hjelte henrik at evahjelte.com
Mon Feb 12 17:55:00 UTC 2007


Minor problems on 64 bit sbcl/linux
.
serializer2 line 174:
		    (if (< (abs frob) +2^32+)
should be
		    (if (< (abs frob) +2^31+)

:module utils in elephant.asd should have a serial :t otherwise lock may
be compiled before package.

A reminder about compiler switches,
-arch x86_64 I think is apple specific,
I have
   #+(or :X86-64) "-march=x86-64"
on linux.
Maybe a compromise is 
"-m64" ?

http://gcc.gnu.org/onlinedocs/gcc-3.3.6/gcc/i386-and-x86_002d64-Options.html#i386-and-x86_002d64-Options


A bigger problem: I get out-of-memory errors after running elephant a
while. I *think* (I am by no means an expert with these things) this can
mean anything, not only out-of-memory. (Because of a low default
error-message level)

What I strongly suspect is that I run out of locks.
Doing dbstat-e reveals:
999     Number of current locks
1000    Maximum number of locks at any one time
13      Number of current lockers
17      Maximum number of lockers at any one time
996     Number of current lock objects
997     Maximum number of lock objects at any one time
When I am thrown to the debugger.

When quiting the debugger:
0       Number of current locks
1000    Maximum number of locks at any one time

I am running the deadlock detector in a shell process: db_deadlock -t 3 

Oracle writes about this as point six in the common problems section:
http://www.oracle.com/technology/documentation/berkeley-db/db/ref/debug/common.html

I have tried to use with-locks surrounding the get and put calls in
persistent-slot-reader and writer, but it didn't help anything.

Any ideas? Has no one else seen this? Have I missed something obvious?

Best wishes,
Henrik Hjelte




More information about the elephant-devel mailing list