[bknr-devel] problem deleting datastore objects and multiple inheritance

Kamen TOMOV kamen at cybuild.com
Fri Sep 15 15:14:35 UTC 2006


Dear Hans, 

First thank you very much! Your support is amazing as it has always
been.

I would keep an eye on the problem and will let you know if any
problem appear. By the way I'm just starting this project and was
writing unit-tests when this appeared.

By the way could you please elaborate a bit about this maintenance
mode you've mentioned? I find bknr-datastore a superb technology
applicable in many projects and as I remember how passionate you were
about it, this sounds weird.

Kamen


On петък, Септември 15 2006, Hans Huebner wrote:

> Hi Kamen,
>
> I commited a workaround that fixes the problem.  It has only been
> quickly tested by me and I cannot promise much.
>
> Note that my BKNR based projects are currently in maintenance mode and
> I cannot promise to fix all bugs.  I will try my best, but for example
> this present case would require a deeper analysis to see what really
> goes wrong.  It would be great if you could try the fix and let me
> know if it works for you or if it creates new problems.
>
> The bad thing about this fix is that it may obscure other bugs, as a
> condition that should not normally occur is now handled as a normal
> case (i.e. a lower layer returns NIL and if so, the function just does
> nothing).
>
> Cheers,
> Hans
>
> On 9/15/06, Kamen TOMOV <kamen at cybuild.com> wrote:
>> Hi,
>>
>> I have the following problem with bknr-datastore:
>>
>> (define-persistent-class a ()
>>   ())
>>
>> (define-persistent-class b ()
>>   ())
>>
>> (define-persistent-class c (a)
>>   ())
>>
>> (define-persistent-class d (a b)
>>   ())
>>
>> (delete-object (make-object 'a))
>> => T
>>
>> (delete-object (make-object 'c))
>> => T
>>
>> (delete-object (make-object 'd))
>> =>
>>
>> Type-error in KERNEL::OBJECT-NOT-SIMPLE-VECTOR-ERROR-HANDLER:
>>    NIL is not of type SIMPLE-VECTOR
>>    [Condition of type TYPE-ERROR]
>>
>> Restarts:
>>   0: [RETRY-TRANSACTION] Retry the transaction #<TRANSACTION 15.09.2006 15:37:18 TX-DELETE-OBJECT 75>.
>>   1: [ABORT-REQUEST] Abort handling SLIME request.
>>   2: [ABORT] Return to Top-Level.
>>
>> Backtrace:
>>   0: ((METHOD BKNR.SKIP-LIST:SKIP-LIST-DELETE NIL (BKNR.SKIP-LIST:SKIP-LIST T)) (#(2) . #(#)) #<unused-arg> #<BKNR.SKIP-LIST:SKIP-LIST length = 15 {5A483CDD}> 75)
>>   1: ((METHOD INDEX-REMOVE NIL (CLASS-SKIP-INDEX T)) (#(2 0 1) . #()) #<unused-arg> #<CLASS-SKIP-INDEX {5A42962D}> #<D ID: 75>)
>>   2: ((METHOD BKNR.INDICES::DESTROY-OBJECT-WITH-CLASS NIL (INDEXED-CLASS T)) (#(17) . #()) #<unused-arg> #<PERSISTENT-CLASS D {58E9228D}> #<D ID: 75>)
>>   3: ("DEFMETHOD EXECUTE-UNLOGGED (TRANSACTION)")
>>   4: ("DEFCLASS MP-STORE" #<Closure Over Function "DEFMETHOD EXECUTE-UNLOGGED (TRANSACTION)" {58EB87C1}>)
>>   5: ((METHOD BKNR.DATASTORE::EXECUTE-UNLOGGED (:AROUND) (TRANSACTION)) #<unused-arg> #S(PCL::FAST-METHOD-CALL :FUNCTION #<Closure Over Function "LAMBDA (#:G4209 #:G4210 #:G4211)" {5819E5D9}> :PV-CELL NIL :NEXT-METHOD-CALL NIL :ARG-INFO (1)) #<TRANSACTION 15.09.2006 15:37:18 TX-DELETE-OBJECT 75>)
>>   6: ("DEFMETHOD EXECUTE-TRANSACTION (STORE TRANSACTION)")
>>   7: ("DEFCLASS MP-STORE" #<Closure Over Function "DEFMETHOD EXECUTE-TRANSACTION (STORE TRANSACTION)" {58EB8749}>)
>>   8: ((METHOD BKNR.DATASTORE::EXECUTE-TRANSACTION NIL (STORE TRANSACTION)) (#(0) . #(#)) #<#1=unused-arg> #<#1#> #<TRANSACTION 15.09.2006 15:37:18 TX-DELETE-OBJECT 75>)
>>
>>
>> I'm using the latest bknr and CMUCL 19a-release-20040728 . Here is how
>> the store is defined:
>>
>> (make-instance 'mp-store
>>                  :directory "/tmp/ams-object-store/"
>>                  :subsystems (list (make-instance 'store-object-subsystem))
>>
>> Could please advice? Thanks!
>>
>> --
>> Kamen TOMOV
>> _______________________________________________
>> bknr-devel mailing list
>> bknr-devel at common-lisp.net
>> http://common-lisp.net/cgi-bin/mailman/listinfo/bknr-devel



More information about the Bknr-devel mailing list