I think the patch was scrubbed. Here it is again just in case.
Sat Jul 10 13:27:27 PDT 2010 redd...@gmail.com * 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 redd...@gmail.com**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 iesl...@common-lisp.net**20100110202521 Ignore-this: 67c91f2d308a3a6824ace42b61ebcb43 ] [Default behavior for non-cached objects iesl...@common-lisp.net**20091224183800] [Fix recreate instance sync issues for cached slots and instances iesl...@common-lisp.net**20091222225421] [Fixed circularity bug in snapshot sets. Elliott Slaughter <elliottslaugh...@gmail.com>**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 gtar...@umich.edu**20080629155930] [doc-patch-1 gtar...@umich.edu**20080620145630] [Update credits iesl...@common-lisp.net**20091216112247] [Fix configuration parameters, some macro fixes, Lucas' association patch iesl...@common-lisp.net**20091216112051] [remove-association lukas.giessm...@hotmail.de**20091216101047 Ignore-this: 86dc87403a2617800d913be373dd6992 ] [Fix bug in GET-CON to re-open controller with correct initial args. Patch by Alain Picard <dr.alain.pic...@gmail.com> Leslie P. Polzer <pol...@gnu.org>**20091017152139 Ignore-this: 502c7a37e056e4b8ed6aae6146d27de7 ] [Fix upgrade-all-memory-instances; weak pointer values may be NIL. Leslie P. Polzer <pol...@gnu.org>**20091013205530 Ignore-this: b617e880774c1768630c94809a973b06 ] [Fix x86 build on Snow Leopard (Chun Tian <binghe.l...@gmail.com>) Leslie P. Polzer <pol...@gnu.org>**20091011081106 Ignore-this: e8e9a997af84e7c1f7e201a0a46d9aca ] [Improve lost controller restart model iesl...@common-lisp.net**20091005012336] [Fix missing store restart and get-con bugs iesl...@common-lisp.net**20091005005104] [Fix or parameterize edge condition warnings and errors iesl...@common-lisp.net**20090921200412] [Add with-store macro for multi-store operations iesl...@common-lisp.net**20090909200653] [DB-BDB: fixed thread read conditional. pol...@gnu.org**20090809081918 Ignore-this: dab554003a90b23f26ca839d150b2f45 ] [Make TRANSACTION-RETRY-COUNT-EXCEEDED inherit from ERROR. Leslie P. Polzer <pol...@gnu.org>**20090805200157 Ignore-this: 704443829e8a64db7494dc6ed9ca1d79 ] [DB-BDB: Support configuring the maximum number of transactions. Leslie P. Polzer <pol...@gnu.org>**20090802173447 Ignore-this: a6107aa93ce22039a7cf094c362da9fd ] [Make WITH-BTREE-CURSOR even more bullet-proof against interrupts. Leslie P. Polzer <pol...@gnu.org>**20090802173323 Ignore-this: 39e87e8f053f054529f8ea8077c3abc7 ] [DB-BDB: allow global defaulting for the custom txn retry wait function. Leslie P. Polzer <pol...@gnu.org>**20090722090405 Ignore-this: 947b5ca817a0c1f34857bb26dd015ad4 ] [Amended message about creating uninterned symbols. Leslie P. Polzer <pol...@gnu.org>**20090731111446 Ignore-this: dcb0555b73a03adefd8be4e1e0a3949e ] [DB-BDB: trivial syntax-only refactoring. Leslie P. Polzer <pol...@gnu.org>**20090726080046 Ignore-this: fb2c512cdf93e3f3ae1a5fa2d6cd31ee ] [memutil: added two FIXMEs concerning async unwind and allocation. Leslie P. Polzer <pol...@gnu.org>**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 <pol...@gnu.org>**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 <pol...@gnu.org>**20090708154501 Ignore-this: f3677195657571a1b2aedf71d25077ee ] [Fix compilation on LW (patch by Chun Tian <binghe.l...@gmail.com>) Leslie P. Polzer <pol...@gnu.org>**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 <pol...@gnu.org>**20090627133517 Ignore-this: cecd74326e3f4aa035c21836dfdf1699 ] [Minor fixes to query.lisp. Leslie P. Polzer <pol...@gnu.org>**20090625182229 Ignore-this: 2d5e5d8fcf51bff0d6f8a2f640c81281 ] [Move ENSURE-TRANSACTION bits from last patches to BDB backend; others probably don't need this. Leslie P. Polzer <pol...@gnu.org>**20090625152725 Ignore-this: f8c24a23880db4aa6b90289ae4b6a174 ] [Added another missing ENSURE-TRANSACTION. Leslie P. Polzer <pol...@gnu.org>**20090625141208 Ignore-this: a237fa2acb8d4750c56e1ed7a3c7f51b ] [Ensure that persistent slot reads and writes happen in a txn. Leslie P. Polzer <pol...@gnu.org>**20090625093539 Ignore-this: 50108310b594d079aed78126c2f428d0 ] [Fix bug 'There is no class named X'. Leslie P. Polzer <pol...@gnu.org>**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 <pol...@gnu.org>**20090620122628 Ignore-this: b6ce8a1838a38e4a323154e3a5983f88 ] [Added PERSISTENT-PROXY contrib. Leslie P. Polzer <pol...@gnu.org>**20090620111923 Ignore-this: 7f344b3bd37335e0b2087049e08eac04 ] [Added some notes on deadlocks to the manual. Leslie P. Polzer <pol...@gnu.org>**20090617110237 Ignore-this: 8dcc20e02b15b12c4b907c709e299eae ] [REBUILD-SLOT-INDICES, SLOT-INDEX-SANE-P: ensure classes are finalized. Leslie P. Polzer <pol...@gnu.org>**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 <pol...@gnu.org>**20090613140650 Ignore-this: 6a44ed346cea9d85d5c40ac5260200a0 ] [Add functions to help checking and rebuilding slot indices. Leslie P. Polzer <pol...@gnu.org>**20090613091923 Ignore-this: b32c4d8655dfe7d6a4bc21ee711fc0f8 ] [REBUILD-SLOT-INDEX: handle unbound slots correctly. Leslie P. Polzer <pol...@gnu.org>**20090613091849 Ignore-this: 8135dd3c44c0bf8f08b7c29d005f2012 ] [Add a test case for UPDATE-INSTANCE-SLOT. Leslie P. Polzer <pol...@gnu.org>**20090611102515 Ignore-this: d8ac815c7404aef2fc5864e42d09fcf5 ] [Fix unbound slot handling in CHANGE-INSTANCE-SLOT; add test case for it. Leslie P. Polzer <pol...@gnu.org>**20090611071625 Ignore-this: ff340c39d52b75718d18986b407f5e0b ] [Make deserialization errors inherit from ERROR. Leslie P. Polzer <pol...@gnu.org>**20090610134702 Ignore-this: 7c62a72116a33b44480895c4072302c0 ] [DB-POSTMODERN: fix SB-IMPL usage. Leslie P. Polzer <pol...@gnu.org>**20090610134525 Ignore-this: 2bf1db5d9aa6eb759b4fa6e7b09ae694 ] [Restore original values for concurrency test suite. Leslie P. Polzer <pol...@gnu.org>**20090610103302 Ignore-this: 5567793d79cee5082d728356f6214fa ] [Support custom retry delays (defaulting to 0.1s) and functions. Leslie P. Polzer <pol...@gnu.org>**20090610103228 Ignore-this: fd7797243b56cd97611263177b3b952b ] [Minor amendments to concurrency test suite. Leslie P. Polzer <pol...@gnu.org>**20090610092203 Ignore-this: cb316292d990900a96f2d17fed4c1653 ] [SYNCHRONIZE-STORE-CLASSES: support picking the classes to be synchronized; also ensure that classes are finalized. Leslie P. Polzer <pol...@gnu.org>**20090606094129 Ignore-this: 8502b065dd05503b36d952d0fac00138 ] [Fix/enhance CERROR mechanism for dropped slots. Leslie P. Polzer <pol...@gnu.org>**20090603130600 Ignore-this: 505e7776beeb46a967413fbd2ab5910a ] [synchronize-store-classes: ignore non-existent classes. Leslie P. Polzer <pol...@gnu.org>**20090601151322 Ignore-this: da62f7acff403829a7a79ca46d5464d9 ] [Fix openmcl handling of instance updates on redef. Leslie P. Polzer <pol...@gnu.org>**20090519085457 Ignore-this: a36f363b92a7b81ef2bba98f5ce2bb2d ] [Ensure fresh line for "Synchronizing..." message. Leslie P. Polzer <pol...@gnu.org>**20090504064749 Ignore-this: 9f2d72e901b4a705a5f7ce2f9fbef756 ] [Fix association delete for N:1 endpoints iesl...@common-lisp.net**20090321203319] [Fixed minor paren mismatch in CLP. Elliott Slaughter <elliottslaugh...@gmail.com>**20090216062037 Ignore-this: 633cf8106eb1fdd66b22d51935475205 ] [Fix typos in ccl/openmcl locking patch iesl...@common-lisp.net**20090311202355] [Add locking for ccl/openmcl iesl...@common-lisp.net**20090311202156] [Fix type deser typo bug iesl...@common-lisp.net**20090311195907] [More informative deserialization error reporting iesl...@common-lisp.net**20090311150241] [Refactor slot protocol; MOP fix for ccl iesl...@common-lisp.net**20090303162100] [ClozureCL fixes iesl...@common-lisp.net**20090303153635] [OpenMCL weak pointer fixes iesl...@common-lisp.net**20090225141141] [Support for secondary clp cursors; bugs remain iesl...@common-lisp.net**20090216043228] [Experimental (NOT STABLE) support for part of the cursor API with CLP. Elliott Slaughter <elliottslaugh...@gmail.com>**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 ihuq...@gmail.com**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 <pol...@gnu.org>**20090211084035 Ignore-this: 94be0e62949d9e9ca863aa70eec6a553 ] [Move confusing query folder from src to contrib iesl...@common-lisp.net**20090210192606] [CLP gensym test exception iesl...@common-lisp.net**20090208230446] [Warn on drop data by class redefinition iesl...@common-lisp.net**20090208230424] [Move clsql data store into contrib iesl...@common-lisp.net**20090207213032] [Promote db-clp to standard-issue DB iesl...@common-lisp.net**20090207212641] [Fix serializer bugs on re-opening of store iesl...@common-lisp.net**20090207205919] [Fix RBT empty node bug; fix lost proxy trees bug; fix serializer reopen bug; open/close store works iesl...@common-lisp.net**20090207202356] [More fixes for reopening a store iesl...@common-lisp.net**20090207183403] [Fix clp bugs; partial open-store implementation iesl...@common-lisp.net**20090207181117] [db-postmodern: cursor semantics alex.mizr...@gmail.com**20090205174924] [db-postmodern: hardened type handling alex.mizr...@gmail.com**20090205161017] [tests for mixed-type btrees alex.mizr...@gmail.com**20090205160934] [db-postmodern: btree upgrade handling, btree wrappers. WARNING: incompatible store format! alex.mizr...@gmail.com**20090205160838] [db-postmodern: dup btree value type alex.mizr...@gmail.com**20090205155335] [db-postmodern: proper transaction handling alex.mizr...@gmail.com**20090205155239] [postmodern doc update alex.mizr...@gmail.com**20090205112036] [postmodern documentation update alex.mizr...@gmail.com**20090205111642] [Better support for (:prebuilt-libraries nil) under win32/SBCL. Elliott Slaughter <elliottslaugh...@gmail.com>**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 iesl...@common-lisp.net**20090203165530] [Fix slot unbound test failures for CLP data store iesl...@common-lisp.net**20090203044202] [Initial db-clp implementation contrib iesl...@common-lisp.net**20090202202857] [Core elephant prep for clp iesl...@common-lisp.net**20090126023824] [Fix fixnum64 declaration bug iesl...@common-lisp.net**20090126171924] [merge conflict resolution 1-26 esl...@common-lisp.net**20090126150411] [Allegro compatabiliity 2 iesl...@common-lisp.net**20090120205655] [Allegro compatibility fixes iesl...@common-lisp.net**20090119223005] [Unify DB-LOCK structures for ccl compilation iesl...@common-lisp.net**20090119211557] [Clean up test ordering for ccl; compatible with openmcl; fix test bug iesl...@common-lisp.net**20090119160831] [Clozure CL support (2 errors left in tests) iesl...@common-lisp.net**20090118234322] [TAG ELEPHANT-1-0-A2 esl...@common-lisp.net**20090113201539] [Clean up memutil fixnum interface iesl...@common-lisp.net**20090113200727] [Association declaration bug iesl...@common-lisp.net**20090113200713] [Clean up serialier use of memutil; bdb condition msg iesl...@common-lisp.net**20090113195939] [Revert sbcl fast locks; add errfile to BDB; improve cache locking iesl...@common-lisp.net**20090113013529] [Fix race condition in caching; add BDB errfile support; minor imprrovements to transaction macro and pset api. iesl...@common-lisp.net**20090112223522] [Ensure that BDB condition is valid during macroexpansion iesl...@common-lisp.net**20090112210529] [Fix testcondition conflicts esl...@common-lisp.net**20090110200538] [Fix transaction inhibit test iesl...@common-lisp.net**20090110004336] [Fixup indexing for clozure; BDB transaction inhibiting bugfix esl...@common-lisp.net**20090110165542] [Fix rollback test iesl...@common-lisp.net**20090110004026] [Performance declarations (not verified on all lisps) iesl...@common-lisp.net**20090109143359] [Fix bug in inhibit-rollback; fix reinit bug on persistent-metaclas iesl...@common-lisp.net**20090109104433] [Remove default register argument enabled for BDB iesl...@common-lisp.net**20090109071045] [Inhibit-rollback option to BDB transactions for arbitrary non-local exits iesl...@common-lisp.net**20090109070733] [Revert some minor changes iesl...@common-lisp.net**20090109035713] [Simple extension to snapshot-set iesl...@common-lisp.net**20090109031720] [Fix duplicate item warning in BDB index writes iesl...@common-lisp.net**20090107153442] [Fix load order and layout for GC subsystem iesl...@common-lisp.net**20090107125806] [Enhance concurrent gc to catch writes during the mark phase iesl...@common-lisp.net**20090107053908] [Change code version to 1.0; optimize symbol interning in serializer iesl...@common-lisp.net**20090107042700] [TAG ELEPHANT-1-0-A1 iesl...@common-lisp.net**20090105234537] Patch bundle hash: 957713aa8db0c38019086644d5850eb0ff101b45 On Sat, Jul 10, 2010 at 1:34 PM, Red Daly <redd...@gmail.com> 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 <redd...@gmail.com> 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 redd...@gmail.com * 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 redd...@gmail.com**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 iesl...@common-lisp.net**20100110202521 Ignore-this: 67c91f2d308a3a6824ace42b61ebcb43 ] [Default behavior for non-cached objects iesl...@common-lisp.net**20091224183800] [Fix recreate instance sync issues for cached slots and instances iesl...@common-lisp.net**20091222225421] [Fixed circularity bug in snapshot sets. Elliott Slaughter <elliottslaugh...@gmail.com>**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 gtar...@umich.edu**20080629155930] [doc-patch-1 gtar...@umich.edu**20080620145630] [Update credits iesl...@common-lisp.net**20091216112247] [Fix configuration parameters, some macro fixes, Lucas' association patch iesl...@common-lisp.net**20091216112051] [remove-association lukas.giessm...@hotmail.de**20091216101047 Ignore-this: 86dc87403a2617800d913be373dd6992 ] [Fix bug in GET-CON to re-open controller with correct initial args. Patch by Alain Picard <dr.alain.pic...@gmail.com> Leslie P. Polzer <pol...@gnu.org>**20091017152139 Ignore-this: 502c7a37e056e4b8ed6aae6146d27de7 ] [Fix upgrade-all-memory-instances; weak pointer values may be NIL. Leslie P. Polzer <pol...@gnu.org>**20091013205530 Ignore-this: b617e880774c1768630c94809a973b06 ] [Fix x86 build on Snow Leopard (Chun Tian <binghe.l...@gmail.com>) Leslie P. Polzer <pol...@gnu.org>**20091011081106 Ignore-this: e8e9a997af84e7c1f7e201a0a46d9aca ] [Improve lost controller restart model iesl...@common-lisp.net**20091005012336] [Fix missing store restart and get-con bugs iesl...@common-lisp.net**20091005005104] [Fix or parameterize edge condition warnings and errors iesl...@common-lisp.net**20090921200412] [Add with-store macro for multi-store operations iesl...@common-lisp.net**20090909200653] [DB-BDB: fixed thread read conditional. pol...@gnu.org**20090809081918 Ignore-this: dab554003a90b23f26ca839d150b2f45 ] [Make TRANSACTION-RETRY-COUNT-EXCEEDED inherit from ERROR. Leslie P. Polzer <pol...@gnu.org>**20090805200157 Ignore-this: 704443829e8a64db7494dc6ed9ca1d79 ] [DB-BDB: Support configuring the maximum number of transactions. Leslie P. Polzer <pol...@gnu.org>**20090802173447 Ignore-this: a6107aa93ce22039a7cf094c362da9fd ] [Make WITH-BTREE-CURSOR even more bullet-proof against interrupts. Leslie P. Polzer <pol...@gnu.org>**20090802173323 Ignore-this: 39e87e8f053f054529f8ea8077c3abc7 ] [DB-BDB: allow global defaulting for the custom txn retry wait function. Leslie P. Polzer <pol...@gnu.org>**20090722090405 Ignore-this: 947b5ca817a0c1f34857bb26dd015ad4 ] [Amended message about creating uninterned symbols. Leslie P. Polzer <pol...@gnu.org>**20090731111446 Ignore-this: dcb0555b73a03adefd8be4e1e0a3949e ] [DB-BDB: trivial syntax-only refactoring. Leslie P. Polzer <pol...@gnu.org>**20090726080046 Ignore-this: fb2c512cdf93e3f3ae1a5fa2d6cd31ee ] [memutil: added two FIXMEs concerning async unwind and allocation. Leslie P. Polzer <pol...@gnu.org>**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 <pol...@gnu.org>**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 <pol...@gnu.org>**20090708154501 Ignore-this: f3677195657571a1b2aedf71d25077ee ] [Fix compilation on LW (patch by Chun Tian <binghe.l...@gmail.com>) Leslie P. Polzer <pol...@gnu.org>**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 <pol...@gnu.org>**20090627133517 Ignore-this: cecd74326e3f4aa035c21836dfdf1699 ] [Minor fixes to query.lisp. Leslie P. Polzer <pol...@gnu.org>**20090625182229 Ignore-this: 2d5e5d8fcf51bff0d6f8a2f640c81281 ] [Move ENSURE-TRANSACTION bits from last patches to BDB backend; others probably don't need this. Leslie P. Polzer <pol...@gnu.org>**20090625152725 Ignore-this: f8c24a23880db4aa6b90289ae4b6a174 ] [Added another missing ENSURE-TRANSACTION. Leslie P. Polzer <pol...@gnu.org>**20090625141208 Ignore-this: a237fa2acb8d4750c56e1ed7a3c7f51b ] [Ensure that persistent slot reads and writes happen in a txn. Leslie P. Polzer <pol...@gnu.org>**20090625093539 Ignore-this: 50108310b594d079aed78126c2f428d0 ] [Fix bug 'There is no class named X'. Leslie P. Polzer <pol...@gnu.org>**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 <pol...@gnu.org>**20090620122628 Ignore-this: b6ce8a1838a38e4a323154e3a5983f88 ] [Added PERSISTENT-PROXY contrib. Leslie P. Polzer <pol...@gnu.org>**20090620111923 Ignore-this: 7f344b3bd37335e0b2087049e08eac04 ] [Added some notes on deadlocks to the manual. Leslie P. Polzer <pol...@gnu.org>**20090617110237 Ignore-this: 8dcc20e02b15b12c4b907c709e299eae ] [REBUILD-SLOT-INDICES, SLOT-INDEX-SANE-P: ensure classes are finalized. Leslie P. Polzer <pol...@gnu.org>**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 <pol...@gnu.org>**20090613140650 Ignore-this: 6a44ed346cea9d85d5c40ac5260200a0 ] [Add functions to help checking and rebuilding slot indices. Leslie P. Polzer <pol...@gnu.org>**20090613091923 Ignore-this: b32c4d8655dfe7d6a4bc21ee711fc0f8 ] [REBUILD-SLOT-INDEX: handle unbound slots correctly. Leslie P. Polzer <pol...@gnu.org>**20090613091849 Ignore-this: 8135dd3c44c0bf8f08b7c29d005f2012 ] [Add a test case for UPDATE-INSTANCE-SLOT. Leslie P. Polzer <pol...@gnu.org>**20090611102515 Ignore-this: d8ac815c7404aef2fc5864e42d09fcf5 ] [Fix unbound slot handling in CHANGE-INSTANCE-SLOT; add test case for it. Leslie P. Polzer <pol...@gnu.org>**20090611071625 Ignore-this: ff340c39d52b75718d18986b407f5e0b ] [Make deserialization errors inherit from ERROR. Leslie P. Polzer <pol...@gnu.org>**20090610134702 Ignore-this: 7c62a72116a33b44480895c4072302c0 ] [DB-POSTMODERN: fix SB-IMPL usage. Leslie P. Polzer <pol...@gnu.org>**20090610134525 Ignore-this: 2bf1db5d9aa6eb759b4fa6e7b09ae694 ] [Restore original values for concurrency test suite. Leslie P. Polzer <pol...@gnu.org>**20090610103302 Ignore-this: 5567793d79cee5082d728356f6214fa ] [Support custom retry delays (defaulting to 0.1s) and functions. Leslie P. Polzer <pol...@gnu.org>**20090610103228 Ignore-this: fd7797243b56cd97611263177b3b952b ] [Minor amendments to concurrency test suite. Leslie P. Polzer <pol...@gnu.org>**20090610092203 Ignore-this: cb316292d990900a96f2d17fed4c1653 ] [SYNCHRONIZE-STORE-CLASSES: support picking the classes to be synchronized; also ensure that classes are finalized. Leslie P. Polzer <pol...@gnu.org>**20090606094129 Ignore-this: 8502b065dd05503b36d952d0fac00138 ] [Fix/enhance CERROR mechanism for dropped slots. Leslie P. Polzer <pol...@gnu.org>**20090603130600 Ignore-this: 505e7776beeb46a967413fbd2ab5910a ] [synchronize-store-classes: ignore non-existent classes. Leslie P. Polzer <pol...@gnu.org>**20090601151322 Ignore-this: da62f7acff403829a7a79ca46d5464d9 ] [Fix openmcl handling of instance updates on redef. Leslie P. Polzer <pol...@gnu.org>**20090519085457 Ignore-this: a36f363b92a7b81ef2bba98f5ce2bb2d ] [Ensure fresh line for "Synchronizing..." message. Leslie P. Polzer <pol...@gnu.org>**20090504064749 Ignore-this: 9f2d72e901b4a705a5f7ce2f9fbef756 ] [Fix association delete for N:1 endpoints iesl...@common-lisp.net**20090321203319] [Fixed minor paren mismatch in CLP. Elliott Slaughter <elliottslaugh...@gmail.com>**20090216062037 Ignore-this: 633cf8106eb1fdd66b22d51935475205 ] [Fix typos in ccl/openmcl locking patch iesl...@common-lisp.net**20090311202355] [Add locking for ccl/openmcl iesl...@common-lisp.net**20090311202156] [Fix type deser typo bug iesl...@common-lisp.net**20090311195907] [More informative deserialization error reporting iesl...@common-lisp.net**20090311150241] [Refactor slot protocol; MOP fix for ccl iesl...@common-lisp.net**20090303162100] [ClozureCL fixes iesl...@common-lisp.net**20090303153635] [OpenMCL weak pointer fixes iesl...@common-lisp.net**20090225141141] [Support for secondary clp cursors; bugs remain iesl...@common-lisp.net**20090216043228] [Experimental (NOT STABLE) support for part of the cursor API with CLP. Elliott Slaughter <elliottslaugh...@gmail.com>**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 ihuq...@gmail.com**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 <pol...@gnu.org>**20090211084035 Ignore-this: 94be0e62949d9e9ca863aa70eec6a553 ] [Move confusing query folder from src to contrib iesl...@common-lisp.net**20090210192606] [CLP gensym test exception iesl...@common-lisp.net**20090208230446] [Warn on drop data by class redefinition iesl...@common-lisp.net**20090208230424] [Move clsql data store into contrib iesl...@common-lisp.net**20090207213032] [Promote db-clp to standard-issue DB iesl...@common-lisp.net**20090207212641] [Fix serializer bugs on re-opening of store iesl...@common-lisp.net**20090207205919] [Fix RBT empty node bug; fix lost proxy trees bug; fix serializer reopen bug; open/close store works iesl...@common-lisp.net**20090207202356] [More fixes for reopening a store iesl...@common-lisp.net**20090207183403] [Fix clp bugs; partial open-store implementation iesl...@common-lisp.net**20090207181117] [db-postmodern: cursor semantics alex.mizr...@gmail.com**20090205174924] [db-postmodern: hardened type handling alex.mizr...@gmail.com**20090205161017] [tests for mixed-type btrees alex.mizr...@gmail.com**20090205160934] [db-postmodern: btree upgrade handling, btree wrappers. WARNING: incompatible store format! alex.mizr...@gmail.com**20090205160838] [db-postmodern: dup btree value type alex.mizr...@gmail.com**20090205155335] [db-postmodern: proper transaction handling alex.mizr...@gmail.com**20090205155239] [postmodern doc update alex.mizr...@gmail.com**20090205112036] [postmodern documentation update alex.mizr...@gmail.com**20090205111642] [Better support for (:prebuilt-libraries nil) under win32/SBCL. Elliott Slaughter <elliottslaugh...@gmail.com>**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 iesl...@common-lisp.net**20090203165530] [Fix slot unbound test failures for CLP data store iesl...@common-lisp.net**20090203044202] [Initial db-clp implementation contrib iesl...@common-lisp.net**20090202202857] [Core elephant prep for clp iesl...@common-lisp.net**20090126023824] [Fix fixnum64 declaration bug iesl...@common-lisp.net**20090126171924] [merge conflict resolution 1-26 esl...@common-lisp.net**20090126150411] [Allegro compatabiliity 2 iesl...@common-lisp.net**20090120205655] [Allegro compatibility fixes iesl...@common-lisp.net**20090119223005] [Unify DB-LOCK structures for ccl compilation iesl...@common-lisp.net**20090119211557] [Clean up test ordering for ccl; compatible with openmcl; fix test bug iesl...@common-lisp.net**20090119160831] [Clozure CL support (2 errors left in tests) iesl...@common-lisp.net**20090118234322] [TAG ELEPHANT-1-0-A2 esl...@common-lisp.net**20090113201539] [Clean up memutil fixnum interface iesl...@common-lisp.net**20090113200727] [Association declaration bug iesl...@common-lisp.net**20090113200713] [Clean up serialier use of memutil; bdb condition msg iesl...@common-lisp.net**20090113195939] [Revert sbcl fast locks; add errfile to BDB; improve cache locking iesl...@common-lisp.net**20090113013529] [Fix race condition in caching; add BDB errfile support; minor imprrovements to transaction macro and pset api. iesl...@common-lisp.net**20090112223522] [Ensure that BDB condition is valid during macroexpansion iesl...@common-lisp.net**20090112210529] [Fix testcondition conflicts esl...@common-lisp.net**20090110200538] [Fix transaction inhibit test iesl...@common-lisp.net**20090110004336] [Fixup indexing for clozure; BDB transaction inhibiting bugfix esl...@common-lisp.net**20090110165542] [Fix rollback test iesl...@common-lisp.net**20090110004026] [Performance declarations (not verified on all lisps) iesl...@common-lisp.net**20090109143359] [Fix bug in inhibit-rollback; fix reinit bug on persistent-metaclas iesl...@common-lisp.net**20090109104433] [Remove default register argument enabled for BDB iesl...@common-lisp.net**20090109071045] [Inhibit-rollback option to BDB transactions for arbitrary non-local exits iesl...@common-lisp.net**20090109070733] [Revert some minor changes iesl...@common-lisp.net**20090109035713] [Simple extension to snapshot-set iesl...@common-lisp.net**20090109031720] [Fix duplicate item warning in BDB index writes iesl...@common-lisp.net**20090107153442] [Fix load order and layout for GC subsystem iesl...@common-lisp.net**20090107125806] [Enhance concurrent gc to catch writes during the mark phase iesl...@common-lisp.net**20090107053908] [Change code version to 1.0; optimize symbol interning in serializer iesl...@common-lisp.net**20090107042700] [TAG ELEPHANT-1-0-A1 iesl...@common-lisp.net**20090105234537] Patch bundle hash: 957713aa8db0c38019086644d5850eb0ff101b45
_______________________________________________ elephant-devel site list elephant-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/elephant-devel