1. 23 Apr, 2003 2 commits
    • Jeremy Hylton's avatar
      Fix memory leak involving persistent objects and caches. · d58582cf
      Jeremy Hylton authored
      Problem reported by Ulla Theiss and diagnosed by Shane Hathaway.  The
      long and short of it is that persistent objects refer to their
      connection which refers to its cache which refers to the persistent
      objects.  We can't let GC find the cycle because persistent objects
      are extension class objects, and, thus, don't participate in GC.
      
      Add an explicit clear() method that removes non-ghost objects from the
      ring without going to all the trouble of ghosting them.  At some
      point, they'll just get deallocated (which will ghostify them).
      
      A cleared cache has non-ghost objects in the dict that are not in the
      ring, so we need to add some checks for whether the object is actually
      in the ring.
      d58582cf
    • Jeremy Hylton's avatar
      ec3538c5
  2. 22 Apr, 2003 8 commits
  3. 21 Apr, 2003 2 commits
  4. 17 Apr, 2003 1 commit
  5. 16 Apr, 2003 1 commit
  6. 11 Apr, 2003 3 commits
  7. 10 Apr, 2003 1 commit
  8. 09 Apr, 2003 3 commits
  9. 08 Apr, 2003 5 commits
    • Barry Warsaw's avatar
      Another test MappingStorage won't pass. · 7b0e5e75
      Barry Warsaw authored
      7b0e5e75
    • Barry Warsaw's avatar
      Update comment. · b8fe1c8c
      Barry Warsaw authored
      b8fe1c8c
    • Barry Warsaw's avatar
      None of the ZEO tests were actually using any storage other than · 194a94b0
      Barry Warsaw authored
      FileStorage.  Fixed this and then had to no-op all the tests that
      MappingStorage can't possibly pass.
      
      I think there may still be problems with BDB which I'll follow up on
      next.
      194a94b0
    • Jeremy Hylton's avatar
      Cleanup __del__. · 80c20f77
      Jeremy Hylton authored
      You never need an __del__ to close a file.  A file closes itself when
      it is deallocated.
      
      Don't give an object a magic __del__ attribute.  It won't work with
      new-style classes, and it's obscure anyway.
      80c20f77
    • Jeremy Hylton's avatar
      Backport atomic invalidations code from Zope3. · b25cfe7a
      Jeremy Hylton authored
      The DB's invalidate() method takes a set of oids corresponding to all
      the changes from a data manager for one transaction.  All the objects
      are invalidated at once.
      
      Add a few tests in testZODB of the new code.  The tests just cover
      corner cases, because I can't think of a sensible way to test the
      atomicity.  When it has failed in the past, it's been caused by
      nearly-impossible to reproduce data races.
      
      This fix needs to be backported to Zope 2.6, but only after assessing
      how significant an impact the API change will have.
      b25cfe7a
  10. 07 Apr, 2003 3 commits
  11. 04 Apr, 2003 3 commits
    • Jeremy Hylton's avatar
      Shouldn't user strcmp() to compare binary strings. · 977a4237
      Jeremy Hylton authored
      XXX Not sure where this macro is used or what kind of failures this
      bug caused.
      977a4237
    • Richard Jones's avatar
      4a3dc9fb
    • Richard Jones's avatar
      I've fixed the various scripts etc. in the CVS so that I can now install a ZEO... · 978ce33b
      Richard Jones authored
      I've fixed the various scripts etc. in the CVS so that I can now install a ZEO client/server setup. The way it actually ended up working is:
      
      - runzope.py and zopectl.py are moved to Zope/Startup/run.py and Zope/zdaemon/zopectl.py respectively
      - bin/mkzopeinstance now takes a "-z/--zeo host:port" which sets up a custom_zodb.py in the new zope instance home
      - bin/mkzeoinstance now overrides less, because...
      - ZEO/mkzeoinst.py generates an additional script, runzeo, which is the "runner" for the ZEO server. Both it an the zeoctl script need to know about the ZOPE_HOME, so that's been added to the scripts (via the params)
      - fixed setup.py so it installed ZEO/schema.xml
      
      978ce33b
  12. 03 Apr, 2003 1 commit
    • Richard Jones's avatar
      Make ZEO instances that actually work: · ddb7000b
      Richard Jones authored
       - the scripts won't be in the user's $PATH, so override that lookup
         in from mkzeoinst.py in the mkzeoinstance script
       - the scripts won't be executable, so prepend commands with $python
      ddb7000b
  13. 02 Apr, 2003 1 commit
    • Jeremy Hylton's avatar
      Restore cache behavior for unreferenced by recently used objects. · 19830020
      Jeremy Hylton authored
      The implementation is to make the reference in the cache "ring" a new
      reference rather than a borrowed reference.  It is the intent of the
      cache to keep N recently used objects in memory, regardless of whether
      they are currently referenced.  The goal is to avoid the cost of
      recreating the objects, based on the assumption that they are likely
      to be used again soon.
      19830020
  14. 01 Apr, 2003 6 commits