[elephant-devel] Strange behavior with indexed-btree

Kevin Raison raison at chatsubo.net
Thu Jan 8 02:10:33 UTC 2009


I was finally able to recreate this in the repl (as opposed to seeing it 
in my error logs), so here is a trace:

The slot DB-BDB::INDICES-CACHE is unbound in the object 
#<BDB-INDEXED-BTREE oid:2>.
    [Condition of type UNBOUND-SLOT]

Backtrace:
   0: ((SB-PCL::FAST-METHOD SLOT-UNBOUND (T T T)) #<unavailable 
argument> #<unavailable argument> #<unavailable argument> 
#<BDB-INDEXED-BTREE oid:2> DB-BDB::INDICES-CACHE)
   1: (SB-PCL::SLOT-UNBOUND-INTERNAL #<BDB-INDEXED-BTREE oid:2> 2)
   2: ((SB-PCL::FAST-METHOD (SETF GET-VALUE) (T T 
DB-BDB::BDB-INDEXED-BTREE)) #<unavailable lambda list>)
   3: ((LAMBDA (WORD)) "34766")
   4: (SB-IMPL::MAP1 #<CLOSURE (LAMBDA #) {1003CA4ED9}> (("" "asa" 
"106007" "deny" "inbound" "udp" ...)) :LIST T)
   5: (MAPCAR #<CLOSURE (LAMBDA #) {1003CA4ED9}> ("" "asa" "106007" 
"deny" "inbound" "udp" ...))[:EXTERNAL]
   6: ((SB-PCL::FAST-METHOD INDEX-LOG-ENTRY (LOG-ENTRY)) #<unavailable 
argument> #<unavailable argument> #<LOG-ENTRY oid:6373>)
   7: ((LAMBDA ()))
   8: ((SB-PCL::FAST-METHOD ELEPHANT::EXECUTE-TRANSACTION 
(DB-BDB::BDB-STORE-CONTROLLER T)) #<unavailable argument> #<unavailable 
argument> #<unavailable argument> #<unavailable argument>)[:EXTERNAL]
   9: (ADD-LOG-ENTRY ..)
  10: (SB-INT:SIMPLE-EVAL-IN-LEXENV ..)

And here is the code that sometimes causes the issue:
(defmethod index-log-entry ((log-entry log-entry))
   (let ((*store-controller* *syslog-controller*))
     (let ((btree (get-from-root "log-entry-index" :sc 
*syslog-controller*)))
       (map-words #'(lambda (word)
                      (unless (or (member word *superfluous-words* :test 
#'string-equal)
                                  (< (length word) 2))
                        (unless (existsp word btree)
                          (setf (get-value word btree) (make-pset :sc 
*syslog-controller*)))
                        (insert-item log-entry
                                     (get-value word btree))))
                  (text log-entry)))))


If I drop and recreate the btree, everything runs smoothly (no errors) 
for a few hours and then the above error message starts showing up about 
half to three quarters of the time.

Thanks again,
Kevin


Kevin Raison wrote:
> I am seeing an intermittent error with 1.0 alpha when trying to write to 
>   an indexed btree (using BerkeleyDB 4.7 as provided by Ubuntu's package 
> repositories):
> 
> The slot DB-BDB::INDICES-CACHE is unbound in the object 
> #<BDB-INDEXED-BTREE oid:2>
> 
> Within the same thread, sometimes this happens and sometimes I am able 
> to read and write to the btree.  I am using sbcl 1.0.24 on 32 bit intel 
> linux.  Is there something obvious that might help alleviate this or 
> should I provide more context?
> 
> Thanks!
> Kevin
> 
> _______________________________________________
> 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