<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.3.2">
</HEAD>
<BODY>
Dear Florian,<BR>
<BR>
    I just tried this on:<BR>
1) SBCL 8.18<BR>
2) Fedora Core 3<BR>
3) libdb4.2<BR>
4) elephant0.2.1<BR>
<BR>
I didn't have any problem, so I gained no information from that.<BR>
<BR>
The backtrace information you provide does not give me any hints, but <BR>
then, even though I am now the maintainer, I might not have enough experience with it.<BR>
<BR>
I'd like to be as helpful as possible.  Are you dedicated to your particular version setup?<BR>
For example, would you be willing to try the cvs branch SQL-BACK-END on SBCL 9.5? That<BR>
is what I have mostly been working on, and will become Elephant 0.3.0 unless someone<BR>
finds a problem with it by next week.   It would be MUCH easier for me to debug this<BR>
problem if you were on that set-up.  However, I know in some way that is a big change.<BR>
<BR>
As an alternative, you could run the tests, and send me the output of that; that might <BR>
provide some help.  <BR>
<BR>
The tests for version 0.2.1 can be run via:<BR>
(asdf:operate 'asdf:load-op :elephant-tests)<BR>
(in-package "ELEPHANT-TESTS")<BR>
(do-all-tests)<BR>
<BR>
Perhaps this is obvious, but the 0.2.1 system does work, at least under some <BR>
configurations.<BR>
<BR>
Also, when you untar it, in the "tests" directory there is aleady a directory "testdb".<BR>
I wonder if you would have this problem if you used that directory?<BR>
<BR>
As a further guess as to what might be wrong based on the backtraces, the third<BR>
one is just because the "setq foo" failed due to the second failure.  The first and <BR>
second failures look like they are indeed failures in the BerkeleyDB system or <BR>
right at the interface to it.  I don't mean by that that there is a bug in BerkeleyDB, just<BR>
that this problem has something to do with the way BerkeleyDB is set up compared<BR>
to your installation, rather than being a simple bug somewhere in Elephant LISP code.<BR>
<BR>
Hoping that somehow helps,<BR>
<BR>
<BR>
<BR>
On Mon, 2005-11-07 at 17:40 +0100, Florian Obser wrote:
<BLOCKQUOTE TYPE=CITE>
<PRE>
<FONT COLOR="#000000">hi,</FONT>
<FONT COLOR="#000000">I tried the tutorial on</FONT>
<FONT COLOR="#000000"><A HREF="http://common-lisp.net/project/elephant/doc/Tutorial.html">http://common-lisp.net/project/elephant/doc/Tutorial.html</A> with SBCL</FONT>
<FONT COLOR="#000000">0.8.16 and libdb4.2 from debian sarge and elephant 0.2.1.</FONT>

<FONT COLOR="#000000">Opening the store results in:</FONT>

<FONT COLOR="#000000">CL-USER> (open-store "/tmp/testdb1")</FONT>
<FONT COLOR="#000000">-----------------------------------------</FONT>
<FONT COLOR="#000000">Berkeley DB error: DB_NOTFOUND: No matching key/data pair found</FONT>
<FONT COLOR="#000000">   [Condition of type SLEEPYCAT:DB-ERROR]</FONT>

<FONT COLOR="#000000">Restarts:</FONT>
<FONT COLOR="#000000">  0: [ABORT] Abort handling SLIME request.</FONT>
<FONT COLOR="#000000">  1: [ABORT] Reduce debugger level (leaving debugger, returning to</FONT>
<FONT COLOR="#000000">toplevel).</FONT>
<FONT COLOR="#000000">  2: [TOPLEVEL] Restart at toplevel READ/EVAL/PRINT loop.</FONT>

<FONT COLOR="#000000">Backtrace:</FONT>
<FONT COLOR="#000000">  0: ((OPEN-CONTROLLER (STORE-CONTROLLER)) #<unavailable argument></FONT>
<FONT COLOR="#000000">#<unavailable argument> #<unavailable argument> #<unavailable argument>)</FONT>
<FONT COLOR="#000000">  1: (SB-INT:EVAL-IN-LEXENV 2 (OPEN-STORE "/tmp/testdb1")</FONT>
<FONT COLOR="#000000">#S(SB-KERNEL:LEXENV :FUNS NIL :VARS NIL :BLOCKS NIL :TAGS NIL</FONT>
<FONT COLOR="#000000">:TYPE-RESTRICTIONS NIL :LAMBDA NIL :CLEANUP NIL :HANDLED-CONDITIONS NIL</FONT>
<FONT COLOR="#000000">:DISABLED-PACKAGE-LOCKS NIL :POLICY ((SPEED . 1) (SPACE . 1) (SAFETY .</FONT>
<FONT COLOR="#000000">1) (INHIBIT-WARNINGS . 1) (DEBUG . 1) (COMPILATION-SPEED . 1))))[:EXTERNAL]</FONT>
<FONT COLOR="#000000">  2: ("hairy arg processor for SWANK::EVAL-REGION" "(open-store</FONT>
<FONT COLOR="#000000">\"/tmp/testdb1\")</FONT>
<FONT COLOR="#000000">" T)</FONT>
<FONT COLOR="#000000">  3: ("#'(LAMBDA NIL (MULTIPLE-VALUE-BIND # # ...))")</FONT>
<FONT COLOR="#000000">[...]</FONT>
<FONT COLOR="#000000">-----------------------------------------</FONT>
<FONT COLOR="#000000">(The backtrace continues after this point but I assume it's only slime</FONT>
<FONT COLOR="#000000">related)</FONT>
<FONT COLOR="#000000">I tried different locations for the store directory (current working</FONT>
<FONT COLOR="#000000">directory or /tmp/ in this case. I found the suggestion that this libdb</FONT>
<FONT COLOR="#000000">error message might be related to permissions on the directory so I</FONT>
<FONT COLOR="#000000">tried a chmod 777. In all cases after running the open-store using a</FONT>
<FONT COLOR="#000000">fresh empty directory the following files are in the directory:</FONT>
<FONT COLOR="#000000">__db.001</FONT>
<FONT COLOR="#000000">__db.002</FONT>
<FONT COLOR="#000000">__db.003</FONT>
<FONT COLOR="#000000">__db.004</FONT>
<FONT COLOR="#000000">__db.005</FONT>
<FONT COLOR="#000000">%ELEPHANT</FONT>
<FONT COLOR="#000000">log.0000000001</FONT>

<FONT COLOR="#000000">I aborted (using 0) the backtrace and tried to continue the tutorial.</FONT>
<FONT COLOR="#000000">Inserting and retrieving of strings works fine, but when I tried to</FONT>
<FONT COLOR="#000000">create a persistence-class instance I get a new error:</FONT>
<FONT COLOR="#000000">CL-USER> (defclass my-persistent-class ()</FONT>
<FONT COLOR="#000000">                ((slot1 :accessor slot1)</FONT>
<FONT COLOR="#000000">           (slot2 :accessor slot2))</FONT>
<FONT COLOR="#000000">                   (:metaclass persistent-metaclass))</FONT>

<FONT COLOR="#000000">CL-USER> (setq foo (make-instance 'my-persistent-class))</FONT>
<FONT COLOR="#000000">-----------------------------------------------------------</FONT>
<FONT COLOR="#000000">Berkeley DB error: Unknown error: -5</FONT>
<FONT COLOR="#000000">   [Condition of type SLEEPYCAT:DB-ERROR]</FONT>

<FONT COLOR="#000000">Restarts:</FONT>
<FONT COLOR="#000000">  0: [ABORT] Abort handling SLIME request.</FONT>
<FONT COLOR="#000000">  1: [ABORT] Reduce debugger level (leaving debugger, returning to</FONT>
<FONT COLOR="#000000">toplevel).</FONT>
<FONT COLOR="#000000">  2: [TOPLEVEL] Restart at toplevel READ/EVAL/PRINT loop.</FONT>

<FONT COLOR="#000000">Backtrace:</FONT>
<FONT COLOR="#000000">  0: (SLEEPYCAT::NEXT-COUNTER #<SB-ALIEN-INTERNALS:ALIEN-VALUE :SAP</FONT>
<FONT COLOR="#000000">#X0827A1E8 :TYPE (* T)> #<SB-ALIEN-INTERNALS:ALIEN-VALUE :SAP #X0827AAB8</FONT>
<FONT COLOR="#000000">:TYPE (* T)> #<SB-ALIEN-INTERNALS:ALIEN-VALUE :SAP #X00000000 :TYPE (*</FONT>
<FONT COLOR="#000000">T)> #<SB-ALIEN-INTERNALS:ALIEN-VALUE :SAP #X08278FF0 :TYPE (* (SIGNED</FONT>
<FONT COLOR="#000000">8))> 12 #<SB-ALIEN-INTERNALS:ALIEN-VALUE :SAP #X0827A1D0 :TYPE (*</FONT>
<FONT COLOR="#000000">(SIGNED 8))> 16)</FONT>
<FONT COLOR="#000000">  1: ((INITIALIZE-INSTANCE :BEFORE (PERSISTENT)) #<unavailable argument></FONT>
<FONT COLOR="#000000">#<unavailable argument> #<MY-PERSISTENT-CLASS {939EA59}> NIL)</FONT>
<FONT COLOR="#000000">  2: ("#'(LAMBDA (SB-PCL::.PV-CELL. SB-PCL::.NEXT-METHOD-CALL.</FONT>
<FONT COLOR="#000000">SB-PCL::.ARG0. ...) (DECLARE #) ...)" #<unavailable argument></FONT>
<FONT COLOR="#000000">#<unavailable argument> #<MY-PERSISTENT-CLASS {939EA59}> NIL)</FONT>
<FONT COLOR="#000000">  3: ((MAKE-INSTANCE (CLASS)) #<unavailable argument> #<unavailable</FONT>
<FONT COLOR="#000000">argument> #<PERSISTENT-METACLASS MY-PERSISTENT-CLASS> NIL)</FONT>
<FONT COLOR="#000000">-----------------------------------------------------------</FONT>

<FONT COLOR="#000000">and after this I can't continue working with the object:</FONT>
<FONT COLOR="#000000">CL-USER> (add-to-root "foo" foo)</FONT>
<FONT COLOR="#000000">---------------------</FONT>
<FONT COLOR="#000000">The variable FOO is unbound.</FONT>
<FONT COLOR="#000000">   [Condition of type UNBOUND-VARIABLE]</FONT>

<FONT COLOR="#000000">Restarts:</FONT>
<FONT COLOR="#000000">  0: [ABORT] Abort handling SLIME request.</FONT>
<FONT COLOR="#000000">  1: [ABORT] Reduce debugger level (leaving debugger, returning to</FONT>
<FONT COLOR="#000000">toplevel).</FONT>
<FONT COLOR="#000000">  2: [TOPLEVEL] Restart at toplevel READ/EVAL/PRINT loop.</FONT>

<FONT COLOR="#000000">Backtrace:</FONT>
<FONT COLOR="#000000">  0: (SB-INT:EVAL-IN-LEXENV 2 FOO #S(SB-KERNEL:LEXENV :FUNS NIL :VARS</FONT>
<FONT COLOR="#000000">NIL :BLOCKS NIL :TAGS NIL :TYPE-RESTRICTIONS NIL :LAMBDA NIL :CLEANUP</FONT>
<FONT COLOR="#000000">NIL :HANDLED-CONDITIONS NIL :DISABLED-PACKAGE-LOCKS NIL :POLICY ((SPEED</FONT>
<FONT COLOR="#000000">. 1) (SPACE . 1) (SAFETY . 1) (INHIBIT-WARNINGS . 1) (DEBUG . 1)</FONT>
<FONT COLOR="#000000">(COMPILATION-SPEED . 1))))[:EXTERNAL]</FONT>
<FONT COLOR="#000000">  1: (SB-INT:EVAL-IN-LEXENV 2 (ADD-TO-ROOT "foo" FOO)</FONT>
<FONT COLOR="#000000">---------------------</FONT>

<FONT COLOR="#000000">Any suggestions what might be going wrong here? (I think I understand</FONT>
<FONT COLOR="#000000">the third backtrace, but what about the first two?)</FONT>
<FONT COLOR="#000000">- Florian</FONT>
</PRE>
</BLOCKQUOTE>
<TABLE CELLSPACING="0" CELLPADDING="0" WIDTH="100%">
<TR>
<TD>
----<BR>
Robert L. Read, PhD                                     read &T robertlread.net<BR>
Consider visiting Progressive Engineering:      http://robertlread.net/pe<BR>
In Austin: 912-8593                                        "Think globally, Act locally." -- RBF<BR>
<BR>
<BR>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>