[elephant-devel] Strange behavior with indexed-btree

Ian Eslick eslick at media.mit.edu
Fri Jan 9 03:59:56 UTC 2009


Hi Kevin,

I have some theories, but no conclusion yet.  I did revert two very  
small changes which could have been responsible.  Please rebuild and  
see if you can reproduce.

Thank you,
Ian

On Jan 7, 2009, at 9:10 PM, Kevin Raison wrote:

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