[elephant-devel] linux-sbcl-64 report

Ian Eslick eslick at csail.mit.edu
Mon Feb 12 20:10:57 UTC 2007


I hope you aren't relying on the current HEAD for anything  
important!  As you can tell we're not quite there yet!

There could be several issues.  I assume you are using the with- 
transaction macro around your transactions?  (Or are you relying on  
auto-commit?)  Are you using cursors yourself or functions like get- 
instances-by-value that themselves use cursors manually?

I recently made some changes to several of these functions so it  
could be any of them.  If I have some sense of what you're doing I  
can go inspect the changes for holes.  I should also be able to  
reproduce this locally if it's an elephant function rather than an  
issue with usage.

Thanks!
Ian

On Feb 12, 2007, at 12:55 PM, Henrik Hjelte wrote:

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

Fixed

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

Fixed

> 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

Hmmm...I think I'll add conditionals on a per-lisp, per-platform  
basis as the *feature* lists are all very different.  Check out the  
latest checkin in elephant.asd

>
> 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.

That shouldn't have an effect (where did you get with-locks anyway?   
Is that an elephant internal function or a threading function?)

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

I haven't seen this on earlier versions, and I used Elephant 0.6.0  
very heavily so it must be an artifact that was recently introduced.

> Best wishes,
> Henrik Hjelte
>
> _______________________________________________
> elephant-devel site list
> elephant-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/elephant-devel




More information about the elephant-devel mailing list