1. 26 May, 2005 1 commit
    • Tim Peters's avatar
      Merge rev 30518 from 3.4 branch. · 5c34be65
      Tim Peters authored
      Change test.py to use zope.testing.testrunner, and update the
      latter to Jim's development version.  Hardest part turned out
      to be teaching ZODB's setup.py how to "build" this version of
      zope.testing (it has a lot of packages in a test directory,
      where the latter is not itself a package).
      
      Incidentally repaired an oversight in building zope.interface
      too.
      5c34be65
  2. 20 May, 2005 3 commits
    • Tim Peters's avatar
      Merge 3.4b1 news. · 6d35ea52
      Tim Peters authored
      6d35ea52
    • Tim Peters's avatar
      Merge rev 30439 from 3.4 branch. · f78aac1b
      Tim Peters authored
      Missed a socket address change.
      f78aac1b
    • Tim Peters's avatar
      Merge rev 30437 from 3.4 branch. · 6d491ddb
      Tim Peters authored
      Use ZConfig's new socket address types appropriately.
      
      These config file keys changed:
      
      section    key              was             is
      -------    ---------------  --------------  -------------------------
      zeo        address          socket-address  socket-binding-address
      zeo        monitor-address  socket-address  socket-binding-address
      zeoclient  server           socket-address  socket-connection-address
      6d491ddb
  3. 19 May, 2005 3 commits
  4. 18 May, 2005 1 commit
  5. 13 May, 2005 1 commit
  6. 12 May, 2005 3 commits
    • Tim Peters's avatar
      Merge rev 30344 from 3.4 branch. · e3ee69ac
      Tim Peters authored
      checkUndoInVersion():  Add an optional `hook` argument.
      
      This gets called "in the middle" of the test, if specified.
      ZRS 1.5 uses this to pass a callback that arranges to start a
      ZRS secondary then.  ZRS had its own copy of this test, but
      it's a miserable & messy test, and the copy it had failed in
      5 different places when using ZODB 3.4 (it had gotten way of
      synch with changes since ZODB 3.2).
      
      Also removed all traces of the bizarre _x_dostore() method.
      Not sure what that was about, but if the comments were right
      we don't care about ZEO 1.0 anymore.
      e3ee69ac
    • Tim Peters's avatar
      Merge rev 30339 from 3.4 branch. · d48ae53a
      Tim Peters authored
      ZEO/tests/zeoserver.py, log():  repair broken interface
      between old logging code and the use of Python's logging
      package.
      
      ZODB/tests/TransactionalUndoStorage.py, _exercise_info_indices():
      Jeez Louise, the new tests I added for undoInfo+undoLog work fine
      in ZODB, but break the ZRS tests(!).  They close the DB "too soon",
      and in one of the ZRS scenarios that leaves a recovering secondary
      without a primary to recover from.
      d48ae53a
    • Tim Peters's avatar
      Merge rev 30334 from 3.4 branch. · 58ae1f42
      Tim Peters authored
      undoInfo() and undoLog() almost always returned wrong # of results.
      
      Repaired, + new tests.
      58ae1f42
  7. 11 May, 2005 3 commits
  8. 09 May, 2005 2 commits
  9. 06 May, 2005 6 commits
    • Tim Peters's avatar
      Merge rev 30291 from 3.4 branch. · 3416d261
      Tim Peters authored
      __call__() got broken about a year ago.
      
      There are no tests for this.
      3416d261
    • Tim Peters's avatar
      Merge rev 30284 from 3.4 branch. · f66e9a3d
      Tim Peters authored
      Fixed some incorrect comments.
      f66e9a3d
    • Tim Peters's avatar
      Merge rev 30279 from 3.4 branch. · 11a9a4c2
      Tim Peters authored
      Fix obscure bug.
      
      If a threaded transaction manager ever passed None to
      the Transaction constructor's `synchronizers` argument, then
      synchronizers registered later in the same transaction
      were invisible to the transaction, and so their afterCompletion()
      methods wouldn't get called when the transaction ended.
      11a9a4c2
    • Tim Peters's avatar
      Merge rev 30262 from 3.4 branch. · 69e6d19d
      Tim Peters authored
      `synchs` can be None -- deal with it.  Reported by Gary Poster.
      69e6d19d
    • Tim Peters's avatar
      Merge 3.4a6 news. · a9736b15
      Tim Peters authored
      a9736b15
    • Tim Peters's avatar
      Merge rev 30255 from 3.4 branch. · 7db4484c
      Tim Peters authored
      ISynchronizer grows a newTransaction() method, called
      whenever TransactionManager.begin() is called.
      
      Connection implements that, and changes its ISynchronizer
      afterCompletion() method, to call sync() on its storage
      (if the storage has such a method), and to process
      invalidations in any case.
      
      The bottom line is that storage sync() will get done "by
      magic" now after top-level commit() and abort(), and after
      explicit TransactionManager.begin().  This should make it
      possible to deprecate Connection.sync(), although I'm not
      doing that yet.  Made a small but meaningful start by
      purging many sync() calls from some of the nastiest ZEO
      tests -- and they still work fine.
      7db4484c
  10. 03 May, 2005 1 commit
    • Tim Peters's avatar
      Merge rev 30235 from 3.4 branch. · 82919885
      Tim Peters authored
      Partial savepoint review.
      
      Added more comments.  Changed some comments to English.
      Renamed some attributes and methods for clarity.
      Switched to using a Python WeakKeyDictionary instead of
      rolling our own out of a Python dict and raw weakrefs.
      82919885
  11. 02 May, 2005 1 commit
    • Tim Peters's avatar
      Merge rev 30231 from 3.4 branch. · b27cb2d1
      Tim Peters authored
      Port from ZODB 3.2.
      
      Added new test checkSubtxnCommitDoesntGetInvalidations to
      verify that a longstanding bug in subtransaction commit is
      repaired.
      
      Jim (Fulton) discovered this in ZODB 3.4's code, while implementing
      savepoint/rollback.  Same bugs had been there at least since ZODB 3.1.
      
      Also added news about the bug.
      b27cb2d1
  12. 28 Apr, 2005 1 commit
  13. 27 Apr, 2005 1 commit
    • Tim Peters's avatar
      Merge recent fixes from 3.4 branch. · f6dfdd6c
      Tim Peters authored
      Original checkin msgs follow:
      
      r30203 | jim | 2005-04-27 11:55:09 -0400 (Wed, 27 Apr 2005) | 2 lines
         M /ZODB/branches/3.4/src/transaction/_transaction.py
      
      Fixed stupid bug.
      
      r30200 | jim | 2005-04-27 07:20:56 -0400 (Wed, 27 Apr 2005) | 39 lines
         M /ZODB/branches/3.4/src/transaction/_transaction.py
      
      Changed the strategy for managing savepoints.  The requirements
      for savepoint management are:
      
      - All savepoints for a transaction should be invalidated when the
        transaction commits or aborts
      
      - If a savepoint is rolled back, then all savepoints after it within
        a transaction must be invalidated.
      
      We previously implemented these requirements by organizing transaction
      savepoints into a doubly linked list.  This was overkill.  We didn't
      have need for such fine-grained ordering.  This strategy had the
      disadvantage that it kept all savepoints around until the transaction
      ended.  Savepoints could be expensive to keep and it's possible that
      some applications could keep a lot of them.
      
      The new stragey is to:
      
      - Keep weak references to savepoints.  We can forget about savepoints
        that the application isn't using.  Any resources used by these
        savepoints can be freed.
      
      (We have to keep a strong reference to the last savepoint used for
        a subtransaction.)
      
      - We assign indexes to savepoints within a transaction.  When a
        savepoint is rolled back, in addition to invalidating that
        savepoint, we also invalidate savepoints with a higher index.
      
      A side effect of this change is that code using the savepoint API
      should interfere less with code using subtransactions.  Of course, we
      really need to phase out code that uses subtransactions.
      
      It is likely that we can leverage this change in strategy to speed
      creation of ZODB connection savepoints.  Creating a ZODB connection
      savepoint now requires copying the savepoint storage index.  This
      index could become large.  If applications aren't holding on to old
      savepoints, then it is possible that we could avoid this copy.
      
      f6dfdd6c
  14. 26 Apr, 2005 3 commits
  15. 25 Apr, 2005 2 commits
    • Tim Peters's avatar
      Merge rev 30179 from 3.4 branch. · 1f2211ca
      Tim Peters authored
      Interface repairs, of many kinds.
      1f2211ca
    • Tim Peters's avatar
      Merge recent changes (savepoint fixes) from 3.4 branch. · 73ed1e6f
      Tim Peters authored
      Original checkin comments follow:
      
      r30168 | tim_one | 2005-04-25 14:17:37 -0400 (Mon, 25 Apr 2005) | 2 lines
         M /ZODB/branches/3.4/NEWS.txt
         ...
      
      An internal 3.4a5 release, to incorporate savepoint fixes.
      
      r30165 | jim | 2005-04-25 12:29:28 -0400 (Mon, 25 Apr 2005) | 11 lines
         M /ZODB/branches/3.4/src/transaction/_transaction.py
         M /ZODB/branches/3.4/src/transaction/savepoint.txt
         M /ZODB/branches/3.4/src/transaction/tests/test_savepoint.py
      
      Fixed a bug in savepoint rollback.  It's not enough to rollback
      just the savepoint being rolled back because later savepoints
      might involved data managers that hadn't joined when the savepoint
      being rolled back was created.
      
      Now, when a data manager joins and we have savepoints, we create a
      data manager savepoint for the new data manager and add the
      datamanager savepoint to all previous transaction savepoints.  Note
      that this data manager savepoint can be a special savepoint that just
      calls abort on the data manager when it is rolled back.
      
      r30164 | tim_one | 2005-04-25 11:16:20 -0400 (Mon, 25 Apr 2005) | 2 lines
      r30163 | tim_one | 2005-04-25 11:08:37 -0400 (Mon, 25 Apr 2005) | 2 lines
      r30162 | tim_one | 2005-04-25 11:06:51 -0400 (Mon, 25 Apr 2005) | 2 lines
         M /ZODB/branches/3.4/src/transaction/interfaces.py
      
      Grammar, spelling, English.
      Close unterminated sentences.
      Trim trailing whitespace.
      
      r30161 | jim | 2005-04-25 10:51:16 -0400 (Mon, 25 Apr 2005) | 10 lines
         M /ZODB/branches/3.4/src/transaction/interfaces.py
      
      Removed a "self" argument. self is normally not shown in interfaces.
      
      Removed the freeme argument.  This argument is part of the
      implementation, not the public interface.
      
      Removed the subtransaction argument.  Although it is still supported,
      it isn't part of the pblic interface.
      
      Added missing documentation of the savepoint method.
      
      r30160 | jim | 2005-04-25 10:41:08 -0400 (Mon, 25 Apr 2005) | 2 lines
         M /ZODB/branches/3.4/src/transaction/interfaces.py
      
      Removed some stale discussion of subtransactions.
      
      r30147 | jim | 2005-04-24 11:26:39 -0400 (Sun, 24 Apr 2005) | 7 lines
         M /ZODB/branches/3.4/src/transaction/_transaction.py
         M /ZODB/branches/3.4/src/transaction/savepoint.txt
      
      Make transactions uncommitable if savepoint rollback fails.
      
      Added demonstration of transaction non-commitability after savepoint
      or savepoint rollback failure.
      
      Updated "previous commit failed" error to "previous operation failed".
      
      r30146 | jim | 2005-04-24 11:26:37 -0400 (Sun, 24 Apr 2005) | 5 lines
         M /ZODB/branches/3.4/src/ZODB/Connection.py
         M /ZODB/branches/3.4/src/transaction/interfaces.py
         M /ZODB/branches/3.4/src/transaction/tests/savepointsample.py
      
      Refined interfaces to distinguish between data-manager savepoints and
      transaction savepoints.
      
      Updated some interface declarations.
      
      r30145 | jim | 2005-04-24 10:48:15 -0400 (Sun, 24 Apr 2005) | 2 lines
         M /ZODB/branches/3.4/src/ZODB/tests/testConnectionSavepoint.py
      
      added explanatory text
      
      r30144 | jim | 2005-04-24 10:35:49 -0400 (Sun, 24 Apr 2005) | 2 lines
      Changed paths:
         M /ZODB/branches/3.4/NEWS.txt
      
      Updated to reflect savepoints.
      
      73ed1e6f
  16. 24 Apr, 2005 1 commit
    • Tim Peters's avatar
      Merge Jim's savepoint/rollback work from the 3.4 branch. Yay! · 646b2b33
      Tim Peters authored
      Original checkin msgs follow:
      
      r30131 | jim | 2005-04-23 23:33:29 -0400 (Sat, 23 Apr 2005) | 5 lines
         M /ZODB/branches/3.4/src/ZODB/Connection.py
         M /ZODB/branches/3.4/src/ZODB/tests/testConnectionSavepoint.py
      
      Fixed a bug in commits with savepoints and changes since savepoints.
      Once we start using savepoints, we need to make sure that all data are
      committed through the savepoints. Otherwise, things can get committed
      in the wrong order, leading to conflicts.
      
      r30130 | jim | 2005-04-23 23:02:00 -0400 (Sat, 23 Apr 2005) | 6 lines
         M /ZODB/branches/3.4/src/ZODB/Connection.py
         M /ZODB/branches/3.4/src/ZODB/tests/testConnectionSavepoint.py
      
      Fixed a bug that caused assertion errors if an object was added in a
      savepoint, then modified and then aborted.
      
      Also added missing code to clear registered objects when a savepoint
      was rolled back.
      
      r30129 | jim | 2005-04-23 21:29:02 -0400 (Sat, 23 Apr 2005) | 5 lines
         M /ZODB/branches/3.4/src/ZODB/Connection.py
         D /ZODB/branches/3.4/src/ZODB/TmpStore.py
         M /ZODB/branches/3.4/src/ZODB/tests/testConnection.py
         A /ZODB/branches/3.4/src/ZODB/tests/testConnectionSavepoint.py
         A /ZODB/branches/3.4/src/ZODB/tests/testConnectionSavepoint.txt
         M /ZODB/branches/3.4/src/ZODB/tests/testZODB.py
         M /ZODB/branches/3.4/src/ZODB/tests/test_datamanageradapter.py
         M /ZODB/branches/3.4/src/transaction/__init__.py
         M /ZODB/branches/3.4/src/transaction/_manager.py
         M /ZODB/branches/3.4/src/transaction/_transaction.py
         M /ZODB/branches/3.4/src/transaction/interfaces.py
         A /ZODB/branches/3.4/src/transaction/savepoint.txt
         A /ZODB/branches/3.4/src/transaction/tests/savepointsample.py
         M /ZODB/branches/3.4/src/transaction/tests/test_register_compat.py
         A /ZODB/branches/3.4/src/transaction/tests/test_savepoint.py
      
      Added savepoints!
      
      (And also added interfaces and rearranged some code to hopefully make
      it easier to read.)
      
      r30128 | jim | 2005-04-23 21:28:59 -0400 (Sat, 23 Apr 2005) | 2 lines
         M /ZODB/branches/3.4/src/transaction/tests/test_transaction.py
      
      Removed some tests that son't make sense after the savepoont refactoring
      
      r30127 | jim | 2005-04-23 21:28:57 -0400 (Sat, 23 Apr 2005) | 2 lines
         M /ZODB/branches/3.4/src/persistent/interfaces.py
      
      Commented out mtime
      646b2b33
  17. 23 Apr, 2005 1 commit
  18. 22 Apr, 2005 3 commits
    • Tim Peters's avatar
      Merge rev 30120 from 3.4 branch. · 117c9d29
      Tim Peters authored
      Port ZEO changes for Windows from ZODB 3.2.
      
      In addition, repaired the useless default logging in runzeo.py.
      
      Here's Sidnei's Zope 2.7 checkin comment:
      
      * Borrow Zope's 'Signal' mechanism for Windows, if available, to
        implement clean shutdown and log rotation handlers for Windows.
      
      * Back to creating a .PID for ZEO, so external programs that wish to set
        the 'signal' can get the PID and therefore derive the signal name.
        Currently only necessary on Windows but created on all platforms which
        implement os.getpid(), as long as the 'pid-filename' option is set,
        or the 'INSTANCE_HOME' environment variable can be found.
      117c9d29
    • Tim Peters's avatar
      Merge rev 30116 from 3.4 branch. · 90b4830f
      Tim Peters authored
      Port from ZODB 3.2.
      
      DemoStorage:  Added implementations for registerDB() and new_oid().  As
      Tres discovered the hard way, wrapping a ZEO client storage as a
      DemoStorage base storage yields insane behavior otherwise.
      
      BaseStorage.new_oid():  Rewrite to eliminate recursion, and hence also the
      need for the undocumented and irregular `last=` argument.
      
      Other:  removed the `last=` argument to new_oid() every place that felt
      compelled to spread that insanity ;-).  Seriously, it served no purpose
      at all elsewhere, and looks like people just cut 'n pasted in fear.
      90b4830f
    • Tim Peters's avatar
      Merge rev 30112 from 3.4 branch. · 6d20d002
      Tim Peters authored
      Delayed news about old fsdump improvement.
      6d20d002
  19. 14 Apr, 2005 1 commit
  20. 13 Apr, 2005 2 commits