1. 11 Mar, 2005 4 commits
  2. 07 Mar, 2005 2 commits
  3. 03 Mar, 2005 1 commit
    • Tim Peters's avatar
      Merge ZODB trunk changes checked in from a wrong project. · 2d90abbd
      Tim Peters authored
      r29290 | frerich | 2005-02-24 17:36:00 -0500 (Thu, 24 Feb 2005)
      Changed paths:
         M /Zope3/trunk/src/ZODB/tests/dbopen.txt
         ...
         minor editing
      
      r29247 | gintautasm | 2005-02-22 06:40:26 -0500 (Tue, 22 Feb 2005)
      Changed paths:
         M /Zope3/trunk/src/BTrees/Interfaces.py
         ...
         More minor nitpicks.  This should be the last one.
      
      2d90abbd
  4. 02 Mar, 2005 3 commits
  5. 01 Mar, 2005 2 commits
  6. 28 Feb, 2005 2 commits
    • Tim Peters's avatar
      Merge rev 29350 from ZODB 3.3 branch. · 1f6caf72
      Tim Peters authored
      Port from ZODB 3.2.
      
      Change FileStorage .restore() and .store() to update max oid in use.
      
      This is the last of the checkins to fix critical bugs involving rare cases
      where a FileStorage could end up reusing old oids for new objects.
      1f6caf72
    • Tim Peters's avatar
      Port from ZODB 3.2. · 7c89220e
      Tim Peters authored
      Change FileStorage .restore() and .store() to update max oid in use.
      
      This is the last of the checkins to fix critical bugs involving rare cases
      where a FileStorage could end up reusing old oids for new objects.
      7c89220e
  7. 25 Feb, 2005 2 commits
    • Tim Peters's avatar
      Merge rev 29302 from 3.3 branch. · 1fa059d1
      Tim Peters authored
      Port from ZODB 3.2.
      
      Stop believing the maximum oid cached in a FileStorage's .index file.
      
      This is a critical bugfix, although the problems it addresses are
      (a) rare; and, (b) not entirely fixed yet (more checkins to come).
      
      The true max oid is found efficiently now by exploiting the recently-added
      fsIndex.maxKey() method (which was, of course, added for this purpose).
      
      Also fix that the .index file could get updated on disk when the
      FileStorage was opened in read-only mode.  The code was trying to prevent
      this, but missed the most obvious rewrite path.
      
      Incidentally improved many obsolete and/or incorrect comments.
      1fa059d1
    • Tim Peters's avatar
      Port from ZODB 3.2. · 2a475c54
      Tim Peters authored
      Stop believing the maximum oid cached in a FileStorage's .index file.
      
      This is a critical bugfix, although the problems it addresses are
      (a) rare; and, (b) not entirely fixed yet (more checkins to come).
      
      The true max oid is found efficiently now by exploiting the recently-added
      fsIndex.maxKey() method (which was, of course, added for this purpose).
      
      Also fix that the .index file could get updated on disk when the
      FileStorage was opened in read-only mode.  The code was trying to prevent
      this, but missed the most obvious rewrite path.
      
      Incidentally improved many obsolete and/or incorrect comments.
      2a475c54
  8. 24 Feb, 2005 4 commits
    • Tim Peters's avatar
      Merge rev 29291 from ZODB 3.3 branch. · 90d19515
      Tim Peters authored
      Port from ZODB 3.2.
      
      Give fsIndex an efficient maxKey() implementation.
      
      This will (in a later checkin) be used to give FileStorage an "obviously
      correct" way to determine the largest oid used in an .fs.index file.
      90d19515
    • Tim Peters's avatar
      Port from ZODB 3.2. · 59907222
      Tim Peters authored
      Give fsIndex an efficient maxKey() implementation.
      
      This will (in a later checkin) be used to give FileStorage an "obviously
      correct" way to determine the largest oid used in an .fs.index file.
      59907222
    • Tim Peters's avatar
      Merge rev 29286 from ZODB 3.3 branch. · 1b1b18d7
      Tim Peters authored
      Port from ZODB 3.2.
      
      Note that cPickleCache.c must be recompiled else the new test will fail.
      
      Change the exception raised when an attempt is made to add two objects to
      the cache with the same oid.  The former messsage didn't make sense.
      
      Add a test to verify that this exception does get raised, and that the
      message given is the intended one.
      
      This is the first of a series of checkins, to fix critical bugs where
      ZODB can in fact raise this exception in rare, but normal, use cases.
      1b1b18d7
    • Tim Peters's avatar
      Port from ZODB 3.2. · bfd6c670
      Tim Peters authored
      Note that cPickleCache.c must be recompiled else the new test will fail.
      
      Change the exception raised when an attempt is made to add two objects to
      the cache with the same oid.  The former messsage didn't make sense.
      
      Add a test to verify that this exception does get raised, and that the
      message given is the intended one.
      
      This is the first of a series of checkins, to fix critical bugs where
      ZODB can in fact raise this exception in rare, but normal, use cases.
      bfd6c670
  9. 17 Feb, 2005 2 commits
    • Tim Peters's avatar
      Merge rev 29194 from 3.3 branch. · 935ab825
      Tim Peters authored
      setUp():  Use a much smaller (than default) ZEO client cache.
      
      The current default is 200MB, and at least testSerialization reads
      the entire cache file into one giant string.  That grossly boosts
      the process highwater mark when running the tests.  Windows reclaims
      the memory after, but other platforms may not.
      
      Cool:  testSerialization was one of the slowest tests before, but
      is 100x faster now.
      935ab825
    • Tim Peters's avatar
      setUp(): Use a much smaller (than default) ZEO client cache. · 32c7bffd
      Tim Peters authored
      The current default is 200MB, and at least testSerialization reads
      the entire cache file into one giant string.  That grossly boosts
      the process highwater mark when running the tests.  Windows reclaims
      the memory after, but other platforms may not.
      
      Cool:  testSerialization was one of the slowest tests before, but
      is 100x faster now.
      32c7bffd
  10. 10 Feb, 2005 2 commits
    • Tim Peters's avatar
      Merge rev 29107 from 3.3 branch. · a59e6edf
      Tim Peters authored
      Side-port changes checked in from a wrong project (Zope trunk):
      
      r28991 | jim | 2005-01-31 10:45:46 -0500 (Mon, 31 Jan 2005) | 5 lines
      ...
      Renamed the Zope package to Zope2
      
      Import of the Zope package is now deprecated, but will
      be supported until Zope 2.11.
      a59e6edf
    • Tim Peters's avatar
      Side-port changes checked in from a wrong project: · b0ca5809
      Tim Peters authored
      r28991 | jim | 2005-01-31 10:45:46 -0500 (Mon, 31 Jan 2005) | 5 lines
      ...
      Renamed the Zope package to Zope2
      
      Import of the Zope package is now deprecated, but will
      be supported until Zope 2.11.
      b0ca5809
  11. 09 Feb, 2005 2 commits
    • Tim Peters's avatar
      Port rev 29092 from 3.3 branch. · 00475fa0
      Tim Peters authored
      Forward port from ZODB 3.2.
      
      Connection.__init__():  Python 2.4 added a new gimmick to asyncore (a
      ._map attribute on asyncore.dispatcher instances) that breaks the
      delicate ZEO startup dance.  Repaired that.
      00475fa0
    • Tim Peters's avatar
      Forward port from ZODB 3.2. · dc521d7c
      Tim Peters authored
      Connection.__init__():  Python 2.4 added a new gimmick to asyncore (a
      ._map attribute on asyncore.dispatcher instances) that breaks the
      delicate ZEO startup dance.  Repaired that.
      dc521d7c
  12. 05 Feb, 2005 2 commits
    • Tim Peters's avatar
      Merge rev 29052 from 3.3 branch. · 53c7716c
      Tim Peters authored
      Port from ZODB 3.2.
      
      Fixed several thread and asyncore races in ZEO's connection dance.
      
      ZEO/tests/ConnectionTests.py
          The pollUp() and pollDown() methods were pure busy loops whenever
          the asyncore socket map was empty, and at least on some flavors of
          Linux that starved the other thread(s) trying to do real work.
          This grossly increased the time needed to run tests using these, and
          sometimes caused bogus "timed out" test failures.
      
      ZEO/zrpc/client.py
      ZEO/zrpc/connection.py
          Renamed class ManagedConnection to ManagedClientConnection, for clarity.
      
          Moved the comment block about protocol negotiation from the guts of
          ManagedClientConnection to before the Connection base class -- the
          Connection constructor can't be understood without this context.  Added
          more words about the delicate protocol negotiation dance.
      
          Connection class:  made this an abstract base clase.  Derived classes
          _must_ implement the handshake() method.  There was really nothing in
          common between server and client wrt what handshake() needs to do, and
          it was confusing for one of them to use the base class handshake() while
          the other replaced handshake() completely.
      
          Connection.__init__:  It isn't safe to register with asyncore's socket
          map before special-casing for the first (protocol handshake) message is
          set up.  Repaired that.  Also removed the pointless "optionalness" of
          the optional arguments.
      
          ManagedClientConnection.__init__:  Added machinery to set up correct
          (thread-safe) message queueing.  There was an unrepairable hole before,
          in the transition between "I'm queueing msgs waiting for the server
          handshake" and "I'm done queueing messages":  it was impossible to know
          whether any calls to the client's "queue a message" method were in
          progress (in other threads), so impossible to make the transition safely
          in all cases.  The client had to grow its own message_output() method,
          with a mutex protecting the transition from thread races.
      
          Changed zrpc-conn log messages to include "(S)" for server-side or
          "(C)" for client-side.  This is especially helpful for figuring out
          logs produced while running the test suite (the server and client
          log messages end up in the same file then).
      53c7716c
    • Tim Peters's avatar
      Port from ZODB 3.2. · ca42b3ad
      Tim Peters authored
      Fixed several thread and asyncore races in ZEO's connection dance.
      
      ZEO/tests/ConnectionTests.py
          The pollUp() and pollDown() methods were pure busy loops whenever
          the asyncore socket map was empty, and at least on some flavors of
          Linux that starved the other thread(s) trying to do real work.
          This grossly increased the time needed to run tests using these, and
          sometimes caused bogus "timed out" test failures.
      
      ZEO/zrpc/client.py
      ZEO/zrpc/connection.py
          Renamed class ManagedConnection to ManagedClientConnection, for clarity.
      
          Moved the comment block about protocol negotiation from the guts of
          ManagedClientConnection to before the Connection base class -- the
          Connection constructor can't be understood without this context.  Added
          more words about the delicate protocol negotiation dance.
      
          Connection class:  made this an abstract base clase.  Derived classes
          _must_ implement the handshake() method.  There was really nothing in
          common between server and client wrt what handshake() needs to do, and
          it was confusing for one of them to use the base class handshake() while
          the other replaced handshake() completely.
      
          Connection.__init__:  It isn't safe to register with asyncore's socket
          map before special-casing for the first (protocol handshake) message is
          set up.  Repaired that.  Also removed the pointless "optionalness" of
          the optional arguments.
      
          ManagedClientConnection.__init__:  Added machinery to set up correct
          (thread-safe) message queueing.  There was an unrepairable hole before,
          in the transition between "I'm queueing msgs waiting for the server
          handshake" and "I'm done queueing messages":  it was impossible to know
          whether any calls to the client's "queue a message" method were in
          progress (in other threads), so impossible to make the transition safely
          in all cases.  The client had to grow its own message_output() method,
          with a mutex protecting the transition from thread races.
      
          Changed zrpc-conn log messages to include "(S)" for server-side or
          "(C)" for client-side.  This is especially helpful for figuring out
          logs produced while running the test suite (the server and client
          log messages end up in the same file then).
      ca42b3ad
  13. 04 Feb, 2005 2 commits
  14. 03 Feb, 2005 3 commits
  15. 24 Jan, 2005 4 commits
  16. 12 Jan, 2005 3 commits