I think the patch was scrubbed. Here it is again just in case.
Sat Jul 10 13:27:27 PDT 2010 [email protected] * instance-table-bootstrapping-bug Lazily load the indices-cache to avoid bootstrapping issues: If we do not lazy-load the indices cache, it we attempt to initialize it before the instance-table is available (thus we cannot map oids to classes -- deserialize does not really work for complex objects). -- Red Daly 07/10/2010 New patches: [instance-table-bootstrapping-bug [email protected]**20100710202727 Ignore-this: 2e1e2651fb7e76b14f208226b5c37378 Lazily load the indices-cache to avoid bootstrapping issues: If we do not lazy-load the indices cache, it we attempt to initialize it before the instance-table is available (thus we cannot map oids to classes -- deserialize does not really work for complex objects). -- Red Daly 07/10/2010 ] { hunk ./src/db-bdb/bdb-collections.lisp 102 (:metaclass persistent-metaclass) (:documentation "A BDB-based BTree supports secondary indices.")) +(defmethod indices-cache ((instance bdb-indexed-btree)) + ;; Lazily load the indices-cache to avoid bootstrapping issues: If + ;; we do not lazy-load the indices cache, it we attempt to + ;; initialize it before the instance-table is available (thus we + ;; cannot map oids to classes -- deserialize does not really work + ;; for complex objects). -- Red Daly 07/10/2010 + (aif (slot-value instance 'indices-cache) + it + (setf (indices-cache instance) (indices instance)))) + (defmethod shared-initialize :after ((instance bdb-indexed-btree) slot-names &rest rest) (declare (ignore slot-names rest)) hunk ./src/db-bdb/bdb-collections.lisp 115 - (setf (indices-cache instance) (indices instance))) + (setf (indices-cache instance) nil)) (defmethod build-indexed-btree ((sc bdb-store-controller)) (make-instance 'bdb-indexed-btree :sc sc)) } Context: [Cached slot test fixes [email protected]**20100110202521 Ignore-this: 67c91f2d308a3a6824ace42b61ebcb43 ] [Default behavior for non-cached objects [email protected]**20091224183800] [Fix recreate instance sync issues for cached slots and instances [email protected]**20091222225421] [Fixed circularity bug in snapshot sets. Elliott Slaughter <[email protected]>**20090321043319 Ignore-this: 5de2aad563e72d7c393078bed4479656 Touch object before saving its slots, to avoid problems if those slots contain circular references back to the original object. ] [doc-update-june29v1 [email protected]**20080629155930] [doc-patch-1 [email protected]**20080620145630] [Update credits [email protected]**20091216112247] [Fix configuration parameters, some macro fixes, Lucas' association patch [email protected]**20091216112051] [remove-association [email protected]**20091216101047 Ignore-this: 86dc87403a2617800d913be373dd6992 ] [Fix bug in GET-CON to re-open controller with correct initial args. Patch by Alain Picard <[email protected]> Leslie P. Polzer <[email protected]>**20091017152139 Ignore-this: 502c7a37e056e4b8ed6aae6146d27de7 ] [Fix upgrade-all-memory-instances; weak pointer values may be NIL. Leslie P. Polzer <[email protected]>**20091013205530 Ignore-this: b617e880774c1768630c94809a973b06 ] [Fix x86 build on Snow Leopard (Chun Tian <[email protected]>) Leslie P. Polzer <[email protected]>**20091011081106 Ignore-this: e8e9a997af84e7c1f7e201a0a46d9aca ] [Improve lost controller restart model [email protected]**20091005012336] [Fix missing store restart and get-con bugs [email protected]**20091005005104] [Fix or parameterize edge condition warnings and errors [email protected]**20090921200412] [Add with-store macro for multi-store operations [email protected]**20090909200653] [DB-BDB: fixed thread read conditional. [email protected]**20090809081918 Ignore-this: dab554003a90b23f26ca839d150b2f45 ] [Make TRANSACTION-RETRY-COUNT-EXCEEDED inherit from ERROR. Leslie P. Polzer <[email protected]>**20090805200157 Ignore-this: 704443829e8a64db7494dc6ed9ca1d79 ] [DB-BDB: Support configuring the maximum number of transactions. Leslie P. Polzer <[email protected]>**20090802173447 Ignore-this: a6107aa93ce22039a7cf094c362da9fd ] [Make WITH-BTREE-CURSOR even more bullet-proof against interrupts. Leslie P. Polzer <[email protected]>**20090802173323 Ignore-this: 39e87e8f053f054529f8ea8077c3abc7 ] [DB-BDB: allow global defaulting for the custom txn retry wait function. Leslie P. Polzer <[email protected]>**20090722090405 Ignore-this: 947b5ca817a0c1f34857bb26dd015ad4 ] [Amended message about creating uninterned symbols. Leslie P. Polzer <[email protected]>**20090731111446 Ignore-this: dcb0555b73a03adefd8be4e1e0a3949e ] [DB-BDB: trivial syntax-only refactoring. Leslie P. Polzer <[email protected]>**20090726080046 Ignore-this: fb2c512cdf93e3f3ae1a5fa2d6cd31ee ] [memutil: added two FIXMEs concerning async unwind and allocation. Leslie P. Polzer <[email protected]>**20090726075929 Ignore-this: 5ea639589f6b05e163bf6016e638d8b6 ] [DB-BDB: a few errno buffers weren't freed by berkeley-db.lisp. Use WITH-FOREIGN-ALLOC for them. Leslie P. Polzer <[email protected]>**20090726075745 Ignore-this: 3cedacf585cbecb9e0b7450f5b7a89a9 ] [DB-BDB: get rid of the "Catch tag 'TRANSACTION does not exist" variety of errors in collections, too. Leslie P. Polzer <[email protected]>**20090708154501 Ignore-this: f3677195657571a1b2aedf71d25077ee ] [Fix compilation on LW (patch by Chun Tian <[email protected]>) Leslie P. Polzer <[email protected]>**20090629084752 Ignore-this: 7a7ce6847d79c0f05818df05ede596b9 ] [DB-POSTMODERN: sb-impl::quick-integer-to-string is gone. Remove the hack and replace the FORMAT instead. Leslie P. Polzer <[email protected]>**20090627133517 Ignore-this: cecd74326e3f4aa035c21836dfdf1699 ] [Minor fixes to query.lisp. Leslie P. Polzer <[email protected]>**20090625182229 Ignore-this: 2d5e5d8fcf51bff0d6f8a2f640c81281 ] [Move ENSURE-TRANSACTION bits from last patches to BDB backend; others probably don't need this. Leslie P. Polzer <[email protected]>**20090625152725 Ignore-this: f8c24a23880db4aa6b90289ae4b6a174 ] [Added another missing ENSURE-TRANSACTION. Leslie P. Polzer <[email protected]>**20090625141208 Ignore-this: a237fa2acb8d4750c56e1ed7a3c7f51b ] [Ensure that persistent slot reads and writes happen in a txn. Leslie P. Polzer <[email protected]>**20090625093539 Ignore-this: 50108310b594d079aed78126c2f428d0 ] [Fix bug 'There is no class named X'. Leslie P. Polzer <[email protected]>**20090620164448 Ignore-this: 6683d442de9b28436e04e518413c05ff This occured under the following conditions: * open store controller * class X is being defined for the first time (notably doesn't exist in store registry) * class X has slots with readers or writers ] [Portably define WITHOUT-INTERRUPTS. Use it to run cursor/transaction creation/deletion with interrupts disabled. Leslie P. Polzer <[email protected]>**20090620122628 Ignore-this: b6ce8a1838a38e4a323154e3a5983f88 ] [Added PERSISTENT-PROXY contrib. Leslie P. Polzer <[email protected]>**20090620111923 Ignore-this: 7f344b3bd37335e0b2087049e08eac04 ] [Added some notes on deadlocks to the manual. Leslie P. Polzer <[email protected]>**20090617110237 Ignore-this: 8dcc20e02b15b12c4b907c709e299eae ] [REBUILD-SLOT-INDICES, SLOT-INDEX-SANE-P: ensure classes are finalized. Leslie P. Polzer <[email protected]>**20090613140807 Ignore-this: 4a23bd087a20a333693a4f8502736d66 ] [Fixed NIL handling of SLOT-MAKUNBOUND-USING-CLASS for indexed slots and UPDATE-SLOT-INDEX. Add tests for it. Leslie P. Polzer <[email protected]>**20090613140650 Ignore-this: 6a44ed346cea9d85d5c40ac5260200a0 ] [Add functions to help checking and rebuilding slot indices. Leslie P. Polzer <[email protected]>**20090613091923 Ignore-this: b32c4d8655dfe7d6a4bc21ee711fc0f8 ] [REBUILD-SLOT-INDEX: handle unbound slots correctly. Leslie P. Polzer <[email protected]>**20090613091849 Ignore-this: 8135dd3c44c0bf8f08b7c29d005f2012 ] [Add a test case for UPDATE-INSTANCE-SLOT. Leslie P. Polzer <[email protected]>**20090611102515 Ignore-this: d8ac815c7404aef2fc5864e42d09fcf5 ] [Fix unbound slot handling in CHANGE-INSTANCE-SLOT; add test case for it. Leslie P. Polzer <[email protected]>**20090611071625 Ignore-this: ff340c39d52b75718d18986b407f5e0b ] [Make deserialization errors inherit from ERROR. Leslie P. Polzer <[email protected]>**20090610134702 Ignore-this: 7c62a72116a33b44480895c4072302c0 ] [DB-POSTMODERN: fix SB-IMPL usage. Leslie P. Polzer <[email protected]>**20090610134525 Ignore-this: 2bf1db5d9aa6eb759b4fa6e7b09ae694 ] [Restore original values for concurrency test suite. Leslie P. Polzer <[email protected]>**20090610103302 Ignore-this: 5567793d79cee5082d728356f6214fa ] [Support custom retry delays (defaulting to 0.1s) and functions. Leslie P. Polzer <[email protected]>**20090610103228 Ignore-this: fd7797243b56cd97611263177b3b952b ] [Minor amendments to concurrency test suite. Leslie P. Polzer <[email protected]>**20090610092203 Ignore-this: cb316292d990900a96f2d17fed4c1653 ] [SYNCHRONIZE-STORE-CLASSES: support picking the classes to be synchronized; also ensure that classes are finalized. Leslie P. Polzer <[email protected]>**20090606094129 Ignore-this: 8502b065dd05503b36d952d0fac00138 ] [Fix/enhance CERROR mechanism for dropped slots. Leslie P. Polzer <[email protected]>**20090603130600 Ignore-this: 505e7776beeb46a967413fbd2ab5910a ] [synchronize-store-classes: ignore non-existent classes. Leslie P. Polzer <[email protected]>**20090601151322 Ignore-this: da62f7acff403829a7a79ca46d5464d9 ] [Fix openmcl handling of instance updates on redef. Leslie P. Polzer <[email protected]>**20090519085457 Ignore-this: a36f363b92a7b81ef2bba98f5ce2bb2d ] [Ensure fresh line for "Synchronizing..." message. Leslie P. Polzer <[email protected]>**20090504064749 Ignore-this: 9f2d72e901b4a705a5f7ce2f9fbef756 ] [Fix association delete for N:1 endpoints [email protected]**20090321203319] [Fixed minor paren mismatch in CLP. Elliott Slaughter <[email protected]>**20090216062037 Ignore-this: 633cf8106eb1fdd66b22d51935475205 ] [Fix typos in ccl/openmcl locking patch [email protected]**20090311202355] [Add locking for ccl/openmcl [email protected]**20090311202156] [Fix type deser typo bug [email protected]**20090311195907] [More informative deserialization error reporting [email protected]**20090311150241] [Refactor slot protocol; MOP fix for ccl [email protected]**20090303162100] [ClozureCL fixes [email protected]**20090303153635] [OpenMCL weak pointer fixes [email protected]**20090225141141] [Support for secondary clp cursors; bugs remain [email protected]**20090216043228] [Experimental (NOT STABLE) support for part of the cursor API with CLP. Elliott Slaughter <[email protected]>**20090214230838 Implemented most of the cursor API, stopping at the p* cursor functions. With the changes, about 14 more tests pass, although there are still some strange results floating around.... ] [migration-fix-for-1.0A2 [email protected]**20090212110735 0.9.1->1.0 alpha2 migration fails when using SBCL. It is caused by that controller-recreate-instance is recursively called in migration process. It results in a recursive call for sb-thread:with-mutex. The solution is to replace sb-thread:with-mutex by sb-thread:sb-thread:with-recursive-lock. ] [SBCL: ensure that all stores are closed on exit. Leslie P. Polzer <[email protected]>**20090211084035 Ignore-this: 94be0e62949d9e9ca863aa70eec6a553 ] [Move confusing query folder from src to contrib [email protected]**20090210192606] [CLP gensym test exception [email protected]**20090208230446] [Warn on drop data by class redefinition [email protected]**20090208230424] [Move clsql data store into contrib [email protected]**20090207213032] [Promote db-clp to standard-issue DB [email protected]**20090207212641] [Fix serializer bugs on re-opening of store [email protected]**20090207205919] [Fix RBT empty node bug; fix lost proxy trees bug; fix serializer reopen bug; open/close store works [email protected]**20090207202356] [More fixes for reopening a store [email protected]**20090207183403] [Fix clp bugs; partial open-store implementation [email protected]**20090207181117] [db-postmodern: cursor semantics [email protected]**20090205174924] [db-postmodern: hardened type handling [email protected]**20090205161017] [tests for mixed-type btrees [email protected]**20090205160934] [db-postmodern: btree upgrade handling, btree wrappers. WARNING: incompatible store format! [email protected]**20090205160838] [db-postmodern: dup btree value type [email protected]**20090205155335] [db-postmodern: proper transaction handling [email protected]**20090205155239] [postmodern doc update [email protected]**20090205112036] [postmodern documentation update [email protected]**20090205111642] [Better support for (:prebuilt-libraries nil) under win32/SBCL. Elliott Slaughter <[email protected]>**20090108090553 Elephant can now build DLLs properly under win32/SBCL, even when stored in a directory whose name contains spaces, or on another drive letter. Also doesn't litter *.o files in the current directory when compiling. ] [Chun Tian's lispworks 5.1 patch [email protected]**20090203165530] [Fix slot unbound test failures for CLP data store [email protected]**20090203044202] [Initial db-clp implementation contrib [email protected]**20090202202857] [Core elephant prep for clp [email protected]**20090126023824] [Fix fixnum64 declaration bug [email protected]**20090126171924] [merge conflict resolution 1-26 [email protected]**20090126150411] [Allegro compatabiliity 2 [email protected]**20090120205655] [Allegro compatibility fixes [email protected]**20090119223005] [Unify DB-LOCK structures for ccl compilation [email protected]**20090119211557] [Clean up test ordering for ccl; compatible with openmcl; fix test bug [email protected]**20090119160831] [Clozure CL support (2 errors left in tests) [email protected]**20090118234322] [TAG ELEPHANT-1-0-A2 [email protected]**20090113201539] [Clean up memutil fixnum interface [email protected]**20090113200727] [Association declaration bug [email protected]**20090113200713] [Clean up serialier use of memutil; bdb condition msg [email protected]**20090113195939] [Revert sbcl fast locks; add errfile to BDB; improve cache locking [email protected]**20090113013529] [Fix race condition in caching; add BDB errfile support; minor imprrovements to transaction macro and pset api. [email protected]**20090112223522] [Ensure that BDB condition is valid during macroexpansion [email protected]**20090112210529] [Fix testcondition conflicts [email protected]**20090110200538] [Fix transaction inhibit test [email protected]**20090110004336] [Fixup indexing for clozure; BDB transaction inhibiting bugfix [email protected]**20090110165542] [Fix rollback test [email protected]**20090110004026] [Performance declarations (not verified on all lisps) [email protected]**20090109143359] [Fix bug in inhibit-rollback; fix reinit bug on persistent-metaclas [email protected]**20090109104433] [Remove default register argument enabled for BDB [email protected]**20090109071045] [Inhibit-rollback option to BDB transactions for arbitrary non-local exits [email protected]**20090109070733] [Revert some minor changes [email protected]**20090109035713] [Simple extension to snapshot-set [email protected]**20090109031720] [Fix duplicate item warning in BDB index writes [email protected]**20090107153442] [Fix load order and layout for GC subsystem [email protected]**20090107125806] [Enhance concurrent gc to catch writes during the mark phase [email protected]**20090107053908] [Change code version to 1.0; optimize symbol interning in serializer [email protected]**20090107042700] [TAG ELEPHANT-1-0-A1 [email protected]**20090105234537] Patch bundle hash: 957713aa8db0c38019086644d5850eb0ff101b45 On Sat, Jul 10, 2010 at 1:34 PM, Red Daly <[email protected]> wrote: > Here is the patch. I identified a boostrapping issue: > > (setf (instances-cache instance) (indices instance)) was being called > on an instance of BDB-INDEXED-BDB, forcing a deserialization of the > persistent INDICES slot. Unfortunately at this point in bootstrapping > the database, instance-table is not yet set up, so deserialization > does not quite work to fetch the persistent value of the INDICES slot. > > I correct this bug by defining a custom reader that lazily loads the > indices-cache slot. Not the smoothest bug fix, but it seems to work. > > - Red > > > On Sat, Jul 10, 2010 at 1:00 PM, Red Daly <[email protected]> wrote: >> When I try to open a controller of mine, I get this error: >> >> The slot ELEPHANT::INSTANCE-TABLE is unbound in the object >> #<BDB-STORE-CONTROLLER ...> >> >> It seems that this is caused by a bug with how the instance-table is >> established in a new controller, since the stack trace indicates this >> bug occurs when the INSTANCE-TABLE slot is being set up. >> Specifically, at this line in bdb-controller.lisp: >> >> >> (setf (slot-value sc 'instance-table) >> (if (or new-p (elephant::prior-version-p >> (database-version sc) '(0 9 1))) >> ;; When opening the DB equal or prior to 0.9.1, >> always get the indices initialized, >> ;; regardless of the indices is initialized before. >> ;; Even the indices is serialized before(in the case >> that open the <=0.9.1 DB file for the second time), >> ;; it still can not be unserialized here, because >> its persistent object's oid >> ;; does not match the hardcoded one in >> oid->schema-id, which only work on the DB file >> ;; created in release > 0.9.1. >> (make-instance 'bdb-indexed-btree :from-oid -3 :sc >> sc :indices (make-hash-table)) >>>>>> (make-instance 'bdb-indexed-btree :from-oid -3 :sc >>>>>> sc))) <<<< >> >> >> I will work on a fix now. If anybody has insights, gotchas, etc. let >> me know. A patch soon to follow... >> >> The slot ELEPHANT::INSTANCE-TABLE is unbound in the object >> #<BDB-STORE-CONTROLLER /apps/bookllama-dev/server/data/production/>. >> [Condition of type UNBOUND-SLOT] >> >> Restarts: >> 0: [USE-VALUE] Return a value as the slot-value. >> 1: [STORE-VALUE] Store and return a value as the slot-value. >> 2: [RETRY] Retry SLIME REPL evaluation request. >> 3: [ABORT] Return to SLIME's top level. >> 4: [TERMINATE-THREAD] Terminate this thread (#<THREAD >> "new-repl-thread" RUNNING {10054B88F1}>) >> >> Backtrace: >> 0: ((SB-PCL::FAST-METHOD SLOT-UNBOUND (T T T)) ..) >> 1: (SB-PCL::SLOT-UNBOUND-INTERNAL #<BDB-STORE-CONTROLLER >> /apps/bookllama-dev/server/data/production/> 9) >> 2: ((SB-PCL::FAST-METHOD ELEPHANT::OID->SCHEMA-ID (T >> ELEPHANT:STORE-CONTROLLER)) #<unavailable lambda list>) >> 3: ((SB-PCL::FAST-METHOD ELEPHANT::GET-INSTANCE-CLASS >> (ELEPHANT:STORE-CONTROLLER T)) #<unavailable lambda list>) >> 4: ((FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK)) >> 5: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-RECURSIVE-LOCK]324)) >> 6: (SB-THREAD::CALL-WITH-RECURSIVE-LOCK ..) >> 7: ((FLET #:FORM-FUN-[CONTROLLER-RECREATE-INSTANCE]14)) >> 8: ((SB-PCL::FAST-METHOD ELEPHANT::CONTROLLER-RECREATE-INSTANCE >> (ELEPHANT:STORE-CONTROLLER T)) ..) >> 9: ((LABELS ELEPHANT-SERIALIZER2::%DESERIALIZE) >> #S(ELEPHANT-MEMUTIL:BUFFER-STREAM :BUFFER >> #<SB-ALIEN-INTERNALS:ALIEN-VALUE :SAP #X00650120 :TYPE (* #)> :SIZE 76 >> :POSITION 76 :LENGTH 80)) >> 10: ((LABELS ELEPHANT-SERIALIZER2::%DESERIALIZE) >> #S(ELEPHANT-MEMUTIL:BUFFER-STREAM :BUFFER >> #<SB-ALIEN-INTERNALS:ALIEN-VALUE :SAP #X00650120 :TYPE (* #)> :SIZE 76 >> :POSITION 76 :LENGTH 80)) >> 11: (ELEPHANT-SERIALIZER2::DESERIALIZE ..) >> 12: ((FLET #:FORM-FUN-[DESERIALIZE]2)) >> 13: (ELEPHANT::DESERIALIZE ..) >> 14: ((LAMBDA ()) #<unavailable lambda list>) >> 15: (SLOT-VALUE #<BDB-INDEXED-BTREE oid:-3> DB-BDB::INDICES) >> 16: ((SB-PCL::FAST-METHOD SHARED-INITIALIZE :AFTER >> (DB-BDB::BDB-INDEXED-BTREE T)) #<unavailable lambda list>)[:EXTERNAL] >> 17: ((LAMBDA (SB-PCL::.PV. SB-PCL::.NEXT-METHOD-CALL. SB-PCL::.ARG0. >> SB-PCL::.ARG1. SB-INT:&MORE SB-PCL::.DFUN-MORE-CONTEXT. >> SB-PCL::.DFUN-MORE-COUNT.)) ..) >> 18: ((SB-PCL::FAST-METHOD SHARED-INITIALIZE :AROUND >> (ELEPHANT:PERSISTENT-OBJECT T)) #<unavailable argument> #<unavailable >> argument> #<unavailable argument> #<unavailable argument>)[:EXTERNAL] >> 19: ((LAMBDA (SB-PCL::.PV. SB-PCL::.NEXT-METHOD-CALL. SB-PCL::.ARG0. >> SB-INT:&MORE SB-PCL::.DFUN-MORE-CONTEXT. SB-PCL::.DFUN-MORE-COUNT.)) >> ..) >> 20: (SB-PCL::FAST-MAKE-INSTANCE #<unavailable argument>)[:EXTERNAL] >> 21: ((LAMBDA ())) >> 22: ((SB-PCL::FAST-METHOD ELEPHANT::EXECUTE-TRANSACTION >> (DB-BDB::BDB-STORE-CONTROLLER T)) #<unavailable argument> >> #<unavailable argument> #<unavailable argument> #<unavailable >> argument>)[:EXTERNAL] >> 23: ((SB-PCL::FAST-METHOD ELEPHANT::OPEN-CONTROLLER >> (DB-BDB::BDB-STORE-CONTROLLER)) #(13 NIL 9 NIL 3 NIL ...) #<unused >> argument> #<BDB-STORE-CONTROLLER >> /apps/bookllama-dev/server/data/production/>)[:EXTER.. >> 24: ((LAMBDA (SB-PCL::.PV. SB-PCL::.NEXT-METHOD-CALL. SB-PCL::.ARG0. >> SB-INT:&MORE SB-PCL::.DFUN-MORE-CONTEXT. SB-PCL::.DFUN-MORE-COUNT.)) >> ..) >> 25: (ELEPHANT:OPEN-STORE #<unavailable lambda list>)[:EXTERNAL] >> >> >> -- Red >
Sat Jul 10 13:27:27 PDT 2010 [email protected] * instance-table-bootstrapping-bug Lazily load the indices-cache to avoid bootstrapping issues: If we do not lazy-load the indices cache, it we attempt to initialize it before the instance-table is available (thus we cannot map oids to classes -- deserialize does not really work for complex objects). -- Red Daly 07/10/2010 New patches: [instance-table-bootstrapping-bug [email protected]**20100710202727 Ignore-this: 2e1e2651fb7e76b14f208226b5c37378 Lazily load the indices-cache to avoid bootstrapping issues: If we do not lazy-load the indices cache, it we attempt to initialize it before the instance-table is available (thus we cannot map oids to classes -- deserialize does not really work for complex objects). -- Red Daly 07/10/2010 ] { hunk ./src/db-bdb/bdb-collections.lisp 102 (:metaclass persistent-metaclass) (:documentation "A BDB-based BTree supports secondary indices.")) +(defmethod indices-cache ((instance bdb-indexed-btree)) + ;; Lazily load the indices-cache to avoid bootstrapping issues: If + ;; we do not lazy-load the indices cache, it we attempt to + ;; initialize it before the instance-table is available (thus we + ;; cannot map oids to classes -- deserialize does not really work + ;; for complex objects). -- Red Daly 07/10/2010 + (aif (slot-value instance 'indices-cache) + it + (setf (indices-cache instance) (indices instance)))) + (defmethod shared-initialize :after ((instance bdb-indexed-btree) slot-names &rest rest) (declare (ignore slot-names rest)) hunk ./src/db-bdb/bdb-collections.lisp 115 - (setf (indices-cache instance) (indices instance))) + (setf (indices-cache instance) nil)) (defmethod build-indexed-btree ((sc bdb-store-controller)) (make-instance 'bdb-indexed-btree :sc sc)) } Context: [Cached slot test fixes [email protected]**20100110202521 Ignore-this: 67c91f2d308a3a6824ace42b61ebcb43 ] [Default behavior for non-cached objects [email protected]**20091224183800] [Fix recreate instance sync issues for cached slots and instances [email protected]**20091222225421] [Fixed circularity bug in snapshot sets. Elliott Slaughter <[email protected]>**20090321043319 Ignore-this: 5de2aad563e72d7c393078bed4479656 Touch object before saving its slots, to avoid problems if those slots contain circular references back to the original object. ] [doc-update-june29v1 [email protected]**20080629155930] [doc-patch-1 [email protected]**20080620145630] [Update credits [email protected]**20091216112247] [Fix configuration parameters, some macro fixes, Lucas' association patch [email protected]**20091216112051] [remove-association [email protected]**20091216101047 Ignore-this: 86dc87403a2617800d913be373dd6992 ] [Fix bug in GET-CON to re-open controller with correct initial args. Patch by Alain Picard <[email protected]> Leslie P. Polzer <[email protected]>**20091017152139 Ignore-this: 502c7a37e056e4b8ed6aae6146d27de7 ] [Fix upgrade-all-memory-instances; weak pointer values may be NIL. Leslie P. Polzer <[email protected]>**20091013205530 Ignore-this: b617e880774c1768630c94809a973b06 ] [Fix x86 build on Snow Leopard (Chun Tian <[email protected]>) Leslie P. Polzer <[email protected]>**20091011081106 Ignore-this: e8e9a997af84e7c1f7e201a0a46d9aca ] [Improve lost controller restart model [email protected]**20091005012336] [Fix missing store restart and get-con bugs [email protected]**20091005005104] [Fix or parameterize edge condition warnings and errors [email protected]**20090921200412] [Add with-store macro for multi-store operations [email protected]**20090909200653] [DB-BDB: fixed thread read conditional. [email protected]**20090809081918 Ignore-this: dab554003a90b23f26ca839d150b2f45 ] [Make TRANSACTION-RETRY-COUNT-EXCEEDED inherit from ERROR. Leslie P. Polzer <[email protected]>**20090805200157 Ignore-this: 704443829e8a64db7494dc6ed9ca1d79 ] [DB-BDB: Support configuring the maximum number of transactions. Leslie P. Polzer <[email protected]>**20090802173447 Ignore-this: a6107aa93ce22039a7cf094c362da9fd ] [Make WITH-BTREE-CURSOR even more bullet-proof against interrupts. Leslie P. Polzer <[email protected]>**20090802173323 Ignore-this: 39e87e8f053f054529f8ea8077c3abc7 ] [DB-BDB: allow global defaulting for the custom txn retry wait function. Leslie P. Polzer <[email protected]>**20090722090405 Ignore-this: 947b5ca817a0c1f34857bb26dd015ad4 ] [Amended message about creating uninterned symbols. Leslie P. Polzer <[email protected]>**20090731111446 Ignore-this: dcb0555b73a03adefd8be4e1e0a3949e ] [DB-BDB: trivial syntax-only refactoring. Leslie P. Polzer <[email protected]>**20090726080046 Ignore-this: fb2c512cdf93e3f3ae1a5fa2d6cd31ee ] [memutil: added two FIXMEs concerning async unwind and allocation. Leslie P. Polzer <[email protected]>**20090726075929 Ignore-this: 5ea639589f6b05e163bf6016e638d8b6 ] [DB-BDB: a few errno buffers weren't freed by berkeley-db.lisp. Use WITH-FOREIGN-ALLOC for them. Leslie P. Polzer <[email protected]>**20090726075745 Ignore-this: 3cedacf585cbecb9e0b7450f5b7a89a9 ] [DB-BDB: get rid of the "Catch tag 'TRANSACTION does not exist" variety of errors in collections, too. Leslie P. Polzer <[email protected]>**20090708154501 Ignore-this: f3677195657571a1b2aedf71d25077ee ] [Fix compilation on LW (patch by Chun Tian <[email protected]>) Leslie P. Polzer <[email protected]>**20090629084752 Ignore-this: 7a7ce6847d79c0f05818df05ede596b9 ] [DB-POSTMODERN: sb-impl::quick-integer-to-string is gone. Remove the hack and replace the FORMAT instead. Leslie P. Polzer <[email protected]>**20090627133517 Ignore-this: cecd74326e3f4aa035c21836dfdf1699 ] [Minor fixes to query.lisp. Leslie P. Polzer <[email protected]>**20090625182229 Ignore-this: 2d5e5d8fcf51bff0d6f8a2f640c81281 ] [Move ENSURE-TRANSACTION bits from last patches to BDB backend; others probably don't need this. Leslie P. Polzer <[email protected]>**20090625152725 Ignore-this: f8c24a23880db4aa6b90289ae4b6a174 ] [Added another missing ENSURE-TRANSACTION. Leslie P. Polzer <[email protected]>**20090625141208 Ignore-this: a237fa2acb8d4750c56e1ed7a3c7f51b ] [Ensure that persistent slot reads and writes happen in a txn. Leslie P. Polzer <[email protected]>**20090625093539 Ignore-this: 50108310b594d079aed78126c2f428d0 ] [Fix bug 'There is no class named X'. Leslie P. Polzer <[email protected]>**20090620164448 Ignore-this: 6683d442de9b28436e04e518413c05ff This occured under the following conditions: * open store controller * class X is being defined for the first time (notably doesn't exist in store registry) * class X has slots with readers or writers ] [Portably define WITHOUT-INTERRUPTS. Use it to run cursor/transaction creation/deletion with interrupts disabled. Leslie P. Polzer <[email protected]>**20090620122628 Ignore-this: b6ce8a1838a38e4a323154e3a5983f88 ] [Added PERSISTENT-PROXY contrib. Leslie P. Polzer <[email protected]>**20090620111923 Ignore-this: 7f344b3bd37335e0b2087049e08eac04 ] [Added some notes on deadlocks to the manual. Leslie P. Polzer <[email protected]>**20090617110237 Ignore-this: 8dcc20e02b15b12c4b907c709e299eae ] [REBUILD-SLOT-INDICES, SLOT-INDEX-SANE-P: ensure classes are finalized. Leslie P. Polzer <[email protected]>**20090613140807 Ignore-this: 4a23bd087a20a333693a4f8502736d66 ] [Fixed NIL handling of SLOT-MAKUNBOUND-USING-CLASS for indexed slots and UPDATE-SLOT-INDEX. Add tests for it. Leslie P. Polzer <[email protected]>**20090613140650 Ignore-this: 6a44ed346cea9d85d5c40ac5260200a0 ] [Add functions to help checking and rebuilding slot indices. Leslie P. Polzer <[email protected]>**20090613091923 Ignore-this: b32c4d8655dfe7d6a4bc21ee711fc0f8 ] [REBUILD-SLOT-INDEX: handle unbound slots correctly. Leslie P. Polzer <[email protected]>**20090613091849 Ignore-this: 8135dd3c44c0bf8f08b7c29d005f2012 ] [Add a test case for UPDATE-INSTANCE-SLOT. Leslie P. Polzer <[email protected]>**20090611102515 Ignore-this: d8ac815c7404aef2fc5864e42d09fcf5 ] [Fix unbound slot handling in CHANGE-INSTANCE-SLOT; add test case for it. Leslie P. Polzer <[email protected]>**20090611071625 Ignore-this: ff340c39d52b75718d18986b407f5e0b ] [Make deserialization errors inherit from ERROR. Leslie P. Polzer <[email protected]>**20090610134702 Ignore-this: 7c62a72116a33b44480895c4072302c0 ] [DB-POSTMODERN: fix SB-IMPL usage. Leslie P. Polzer <[email protected]>**20090610134525 Ignore-this: 2bf1db5d9aa6eb759b4fa6e7b09ae694 ] [Restore original values for concurrency test suite. Leslie P. Polzer <[email protected]>**20090610103302 Ignore-this: 5567793d79cee5082d728356f6214fa ] [Support custom retry delays (defaulting to 0.1s) and functions. Leslie P. Polzer <[email protected]>**20090610103228 Ignore-this: fd7797243b56cd97611263177b3b952b ] [Minor amendments to concurrency test suite. Leslie P. Polzer <[email protected]>**20090610092203 Ignore-this: cb316292d990900a96f2d17fed4c1653 ] [SYNCHRONIZE-STORE-CLASSES: support picking the classes to be synchronized; also ensure that classes are finalized. Leslie P. Polzer <[email protected]>**20090606094129 Ignore-this: 8502b065dd05503b36d952d0fac00138 ] [Fix/enhance CERROR mechanism for dropped slots. Leslie P. Polzer <[email protected]>**20090603130600 Ignore-this: 505e7776beeb46a967413fbd2ab5910a ] [synchronize-store-classes: ignore non-existent classes. Leslie P. Polzer <[email protected]>**20090601151322 Ignore-this: da62f7acff403829a7a79ca46d5464d9 ] [Fix openmcl handling of instance updates on redef. Leslie P. Polzer <[email protected]>**20090519085457 Ignore-this: a36f363b92a7b81ef2bba98f5ce2bb2d ] [Ensure fresh line for "Synchronizing..." message. Leslie P. Polzer <[email protected]>**20090504064749 Ignore-this: 9f2d72e901b4a705a5f7ce2f9fbef756 ] [Fix association delete for N:1 endpoints [email protected]**20090321203319] [Fixed minor paren mismatch in CLP. Elliott Slaughter <[email protected]>**20090216062037 Ignore-this: 633cf8106eb1fdd66b22d51935475205 ] [Fix typos in ccl/openmcl locking patch [email protected]**20090311202355] [Add locking for ccl/openmcl [email protected]**20090311202156] [Fix type deser typo bug [email protected]**20090311195907] [More informative deserialization error reporting [email protected]**20090311150241] [Refactor slot protocol; MOP fix for ccl [email protected]**20090303162100] [ClozureCL fixes [email protected]**20090303153635] [OpenMCL weak pointer fixes [email protected]**20090225141141] [Support for secondary clp cursors; bugs remain [email protected]**20090216043228] [Experimental (NOT STABLE) support for part of the cursor API with CLP. Elliott Slaughter <[email protected]>**20090214230838 Implemented most of the cursor API, stopping at the p* cursor functions. With the changes, about 14 more tests pass, although there are still some strange results floating around.... ] [migration-fix-for-1.0A2 [email protected]**20090212110735 0.9.1->1.0 alpha2 migration fails when using SBCL. It is caused by that controller-recreate-instance is recursively called in migration process. It results in a recursive call for sb-thread:with-mutex. The solution is to replace sb-thread:with-mutex by sb-thread:sb-thread:with-recursive-lock. ] [SBCL: ensure that all stores are closed on exit. Leslie P. Polzer <[email protected]>**20090211084035 Ignore-this: 94be0e62949d9e9ca863aa70eec6a553 ] [Move confusing query folder from src to contrib [email protected]**20090210192606] [CLP gensym test exception [email protected]**20090208230446] [Warn on drop data by class redefinition [email protected]**20090208230424] [Move clsql data store into contrib [email protected]**20090207213032] [Promote db-clp to standard-issue DB [email protected]**20090207212641] [Fix serializer bugs on re-opening of store [email protected]**20090207205919] [Fix RBT empty node bug; fix lost proxy trees bug; fix serializer reopen bug; open/close store works [email protected]**20090207202356] [More fixes for reopening a store [email protected]**20090207183403] [Fix clp bugs; partial open-store implementation [email protected]**20090207181117] [db-postmodern: cursor semantics [email protected]**20090205174924] [db-postmodern: hardened type handling [email protected]**20090205161017] [tests for mixed-type btrees [email protected]**20090205160934] [db-postmodern: btree upgrade handling, btree wrappers. WARNING: incompatible store format! [email protected]**20090205160838] [db-postmodern: dup btree value type [email protected]**20090205155335] [db-postmodern: proper transaction handling [email protected]**20090205155239] [postmodern doc update [email protected]**20090205112036] [postmodern documentation update [email protected]**20090205111642] [Better support for (:prebuilt-libraries nil) under win32/SBCL. Elliott Slaughter <[email protected]>**20090108090553 Elephant can now build DLLs properly under win32/SBCL, even when stored in a directory whose name contains spaces, or on another drive letter. Also doesn't litter *.o files in the current directory when compiling. ] [Chun Tian's lispworks 5.1 patch [email protected]**20090203165530] [Fix slot unbound test failures for CLP data store [email protected]**20090203044202] [Initial db-clp implementation contrib [email protected]**20090202202857] [Core elephant prep for clp [email protected]**20090126023824] [Fix fixnum64 declaration bug [email protected]**20090126171924] [merge conflict resolution 1-26 [email protected]**20090126150411] [Allegro compatabiliity 2 [email protected]**20090120205655] [Allegro compatibility fixes [email protected]**20090119223005] [Unify DB-LOCK structures for ccl compilation [email protected]**20090119211557] [Clean up test ordering for ccl; compatible with openmcl; fix test bug [email protected]**20090119160831] [Clozure CL support (2 errors left in tests) [email protected]**20090118234322] [TAG ELEPHANT-1-0-A2 [email protected]**20090113201539] [Clean up memutil fixnum interface [email protected]**20090113200727] [Association declaration bug [email protected]**20090113200713] [Clean up serialier use of memutil; bdb condition msg [email protected]**20090113195939] [Revert sbcl fast locks; add errfile to BDB; improve cache locking [email protected]**20090113013529] [Fix race condition in caching; add BDB errfile support; minor imprrovements to transaction macro and pset api. [email protected]**20090112223522] [Ensure that BDB condition is valid during macroexpansion [email protected]**20090112210529] [Fix testcondition conflicts [email protected]**20090110200538] [Fix transaction inhibit test [email protected]**20090110004336] [Fixup indexing for clozure; BDB transaction inhibiting bugfix [email protected]**20090110165542] [Fix rollback test [email protected]**20090110004026] [Performance declarations (not verified on all lisps) [email protected]**20090109143359] [Fix bug in inhibit-rollback; fix reinit bug on persistent-metaclas [email protected]**20090109104433] [Remove default register argument enabled for BDB [email protected]**20090109071045] [Inhibit-rollback option to BDB transactions for arbitrary non-local exits [email protected]**20090109070733] [Revert some minor changes [email protected]**20090109035713] [Simple extension to snapshot-set [email protected]**20090109031720] [Fix duplicate item warning in BDB index writes [email protected]**20090107153442] [Fix load order and layout for GC subsystem [email protected]**20090107125806] [Enhance concurrent gc to catch writes during the mark phase [email protected]**20090107053908] [Change code version to 1.0; optimize symbol interning in serializer [email protected]**20090107042700] [TAG ELEPHANT-1-0-A1 [email protected]**20090105234537] Patch bundle hash: 957713aa8db0c38019086644d5850eb0ff101b45
_______________________________________________ elephant-devel site list [email protected] http://common-lisp.net/mailman/listinfo/elephant-devel
