1. 13 Apr, 2015 1 commit
  2. 11 Apr, 2015 1 commit
    • Jason Madden's avatar
      The python _p_activate does state management like the C version does: set to... · 80e0c6ee
      Jason Madden authored
      The python _p_activate does state management like the C version does: set to changed during jar.setstate to prevent objects that set attributes in their __setstate__ from being registered with the jar, and unconditionally mark the object as saved when finished. This fixes problems with BTrees and DB churn, among other things. Test this.
      80e0c6ee
  3. 10 Apr, 2015 2 commits
    • Jason Madden's avatar
      Deleting the jar of a ghosted Python persistent object shouldn't try to... · 245f197c
      Jason Madden authored
      Deleting the jar of a ghosted Python persistent object shouldn't try to activate it. This was an error encountered testing ZEO:
      
      ```python
      File "//Projects/GithubSources/ZEO/src/ZEO/tests/testZEO.py", line 1566, in ZEO.tests.testZEO.gracefully_handle_abort_while_storing_many_blobs
      Failed example:
          c.tpc_abort(t)
      Exception raised:
          Traceback (most recent call last):
            File "//bin/pypy/lib-python/2.7/doctest.py", line 1315, in __run
              compileflags, 1) in test.globs
            File "<doctest ZEO.tests.testZEO.gracefully_handle_abort_while_storing_many_blobs[12]>", line 1, in <module>
              c.tpc_abort(t)
            File "//Projects/VirtualEnvs/ZODBpypy/site-packages/ZODB-4.2.0.dev0-py2.7.egg/ZODB/Connection.py", line 754, in tpc_abort
              self._invalidate_creating()
            File "//Projects/VirtualEnvs/ZODBpypy/site-packages/ZODB-4.2.0.dev0-py2.7.egg/ZODB/Connection.py", line 775, in _invalidate_creating
              del o._p_jar
            File "//Projects/VirtualEnvs/ZODBpypy/site-packages/persistent-4.0.10.dev0-py2.7.egg/persistent/persistence.py", line 287, in __delattr__
              object.__delattr__(self, name)
            File "//Projects/VirtualEnvs/ZODBpypy/site-packages/persistent-4.0.10.dev0-py2.7.egg/persistent/persistence.py", line 92, in _del_jar
              self.__setattr__('_Persistent__jar', None)
            File "//Projects/VirtualEnvs/ZODBpypy/site-packages/persistent-4.0.10.dev0-py2.7.egg/persistent/persistence.py", line 249, in __getattribute__
              oga(self, '_p_activate')()
            File "//Projects/VirtualEnvs/ZODBpypy/site-packages/persistent-4.0.10.dev0-py2.7.egg/persistent/persistence.py", line 358, in _p_activate
              jar.setstate(self)
            File "//Projects/VirtualEnvs/ZODBpypy/site-packages/ZODB-4.2.0.dev0-py2.7.egg/ZODB/Connection.py", line 869, in setstate
              self._setstate(obj)
            File "//Projects/VirtualEnvs/ZODBpypy/site-packages/ZODB-4.2.0.dev0-py2.7.egg/ZODB/Connection.py", line 910, in _setstate
              p, serial = self._storage.load(obj._p_oid, '')
            File "//Projects/GithubSources/ZEO/src/ZEO/ClientStorage.py", line 842, in load
              data, tid = self._server.loadEx(oid)
            File "//Projects/GithubSources/ZEO/src/ZEO/ServerStub.py", line 176, in loadEx
              return self.rpc.call("loadEx", oid)
            File "//Projects/GithubSources/ZEO/src/ZEO/zrpc/connection.py", line 781, in call
              raise inst # error raised by server
          POSKeyError: 0x02'')
      ```
      245f197c
    • Jason Madden's avatar
  4. 09 Apr, 2015 21 commits
  5. 08 Apr, 2015 15 commits