[Zodb-checkins] SVN: ZODB/branches/patricks-blob-dir-perm/ sync with trunk

Patrick Strawderman cvs-admin at zope.org
Tue Oct 16 19:52:14 UTC 2012


Log message for revision 128023:
  sync with trunk
  

Changed:
  A   ZODB/branches/patricks-blob-dir-perm/CHANGES.txt
  U   ZODB/branches/patricks-blob-dir-perm/buildout.cfg
  U   ZODB/branches/patricks-blob-dir-perm/setup.py
  D   ZODB/branches/patricks-blob-dir-perm/src/CHANGES.txt
  D   ZODB/branches/patricks-blob-dir-perm/src/ZEO/
  U   ZODB/branches/patricks-blob-dir-perm/src/ZODB/scripts/README.txt
  U   ZODB/branches/patricks-blob-dir-perm/src/ZODB/tests/testConfig.py

-=-
Copied: ZODB/branches/patricks-blob-dir-perm/CHANGES.txt (from rev 128022, ZODB/trunk/CHANGES.txt)
===================================================================
--- ZODB/branches/patricks-blob-dir-perm/CHANGES.txt	                        (rev 0)
+++ ZODB/branches/patricks-blob-dir-perm/CHANGES.txt	2012-10-16 19:52:10 UTC (rev 128023)
@@ -0,0 +1,376 @@
+================
+ Change History
+================
+
+4.0.0a1 (2012-??-??)
+=====================
+
+New Features
+------------
+
+- The ``persistent`` package is now released as a separate distribution,
+  on which ZODB now depends.
+
+- ZODB no longer depends on zope.event.  It now uses ZODB.event, which
+  uses zope.event if it is installed.  You can override
+  ZODB.event.notify to provide your own event handling, although
+  zope.event is recommended.
+
+- BTrees allowed object keys with insane comparison. (Comparison
+  inherited from object, which compares based on in-process address.)
+  Now BTrees raise TypeError if an attempt is made to save a key with
+  comparison inherited from object. (This doesn't apply to old-style
+  class instances.)
+
+- Storage servers now emit Serving and Closed events so subscribers
+  can discover addresses when dynamic port assignment (bind to port 0)
+  is used. This could, for example, be used to update address
+  information in a ZooKeeper database.
+
+- Client storagers have a method, new_addr, that can be used to change
+  the server address(es). This can be used, for example, to update a
+  dynamically determined server address from information in a
+  ZooKeeper database.
+
+Bugs Fixed
+----------
+
+- Ensured that the export file and index file created by ``repozo`` share
+  the same timestamp.
+
+  https://bugs.launchpad.net/zodb/+bug/993350
+
+- Pinned the ``transaction`` and ``manuel`` dependencies to Python 2.5-
+  compatible versions when installing under Python 2.5.
+
+3.10.5 (2011-11-19)
+===================
+
+Bugs Fixed
+----------
+
+- Conflict resolution failed when state included cross-database
+  persistent references with classes that couldn't be imported.
+
+3.10.4 (2011-11-17)
+===================
+
+Bugs Fixed
+----------
+
+- Conflict resolution failed when state included persistent references
+  with classes that couldn't be imported.
+
+3.10.3 (2011-04-12)
+===================
+
+Bugs Fixed
+----------
+
+- "activity monitor not updated for subconnections when connection
+  returned to pool"
+
+  https://bugs.launchpad.net/zodb/+bug/737198
+
+- "Blob temp file get's removed before it should",
+  https://bugs.launchpad.net/zodb/+bug/595378
+
+  A way this to happen is that a transaction is aborted after the
+  commit process has started. I don't know how this would happen in
+  the wild.
+
+  In 3.10.3, the ZEO tpc_abort call to the server is changed to be
+  synchronous, which should address this case. Maybe there's another
+  case.
+
+
+Performance enhancements
+------------------------
+
+- Improved ZEO client cache implementation to make it less likely to
+  evict objects that are being used.
+
+- Small (possibly negligable) reduction in CPU in ZEO storage servers
+  to service object loads and in networking code.
+
+3.10.2 (2011-02-12)
+===================
+
+Bugs Fixed
+----------
+
+- 3.10 introduced an optimization to try to address BTree conflict
+  errors arrising for basing BTree keys on object ids. The
+  optimization caused object ids allocated in aborted transactions to
+  be reused. Unfortunately, this optimzation led to some rather
+  severe failures in some applications.  The symptom is a conflict
+  error in which one of the serials mentioned is zero.  This
+  optimization has been removed.
+
+  See (for example): https://bugs.launchpad.net/zodb/+bug/665452
+
+- ZEO server transaction timeouts weren't logged as critical.
+
+  https://bugs.launchpad.net/zodb/+bug/670986
+
+3.10.1 (2010-10-27)
+===================
+
+Bugs Fixed
+----------
+
+- When a transaction rolled back a savepoint after adding objects and
+  subsequently added more objects and committed, an error could be
+  raised "ValueError: A different object already has the same oid"
+  causing the transaction to fail. Worse, this could leave a database
+  in a state where subsequent transactions in the same process would
+  fail.
+
+  https://bugs.launchpad.net/zodb/+bug/665452
+
+- Unix domain sockets didn't work for ZEO (since the addition of IPv6
+  support). https://bugs.launchpad.net/zodb/+bug/663259
+
+- Removed a missfeature that can cause performance problems when using
+  an external garbage collector with ZEO.  When objects were deleted
+  from a storage, invalidations were sent to clients. This makes no
+  sense.  It's wildly unlikely that the other connections/clients have
+  copies of the garbage.  In normal storage garbage collection, we
+  don't send invalidations. There's no reason to send them when an
+  external garbage collector is used.
+
+- ZEO client cache simulation misshandled invalidations
+  causing incorrect statistics and errors.
+
+3.10.0 (2010-10-08)
+===================
+
+New Features
+------------
+
+- There are a number of performance enhancements for ZEO storage
+  servers.
+
+- FileStorage indexes use a new format. They are saved and loaded much
+  faster and take less space. Old indexes can still be read, but new
+  indexes won't be readable by older versions of ZODB.
+
+- The API for undoing multiple transactions has changed.  To undo
+  multiple transactions in a single transaction, pass a list of
+  transaction identifiers to a database's undoMultiple method. Calling a
+  database's undo method multiple times in the same transaction now
+  raises an exception.
+
+- The ZEO protocol for undo has changed.  The only user-visible
+  consequence of this is that when ZODB 3.10 ZEO servers won't support
+  undo for older clients.
+
+- The storage API (IStorage) has been tightened. Now, storages should
+  raise a StorageTransactionError when invalid transactions are passed
+  to tpc_begin, tpc_vote, or tpc_finish.
+
+- ZEO clients (``ClientStorage`` instances) now work in forked processes,
+  including those created via ``multiprocessing.Process`` instances.
+
+- Broken objects now provide the IBroken interface.
+
+- As a convenience, you can now pass an integer port as an address to
+  the ZEO ClientStorage constructor.
+
+- As a convenience, there's a new ``client`` function in the ZEO
+  package for constructing a ClientStorage instance.  It takes the
+  same arguments as the ClientStorage constructor.
+
+- DemoStorages now accept constructor athuments, close_base_on_close
+  and close_changes_on_close, to control whether underlying storages
+  are closed when the DemoStorage is closed.
+
+  https://bugs.launchpad.net/zodb/+bug/118512
+
+- Removed the dependency on zope.proxy.
+
+- Removed support for the _p_independent mini framework, which was
+  made moot by the introduction of multi-version concurrency control
+  several years ago.
+
+- Added support for the transaction retry convenience
+  (transaction-manager attempts method) introduced in the
+  ``transaction`` 1.1.0 release.
+
+- Enhanced the database opening conveniences:
+
+  - You can now pass storage keyword arguments to ZODB.DB and
+    ZODB.connection.
+
+  - You can now pass None (rather than a storage or file name) to get
+    a database with a mapping storage.
+
+- Databases now warn when committing very large records (> 16MB).
+  This is to try to warn people of likely design mistakes.  There is a
+  new option (large_record_size/large-record-size) to control the
+  record size at which the warning is issued.
+
+- Added support for wrapper storages that transform pickle data.
+  Applications for this include compression and encryption.  An
+  example wrapper storage implementation, ZODB.tests.hexstorage, was
+  included for testing.
+
+  It is important that storage implementations not assume that
+  storages contain pickles.  Renamed IStorageDB to IStorageWrapper and
+  expanded it to provide methods for transforming and untransforming
+  data records.  Storages implementations should use these methods to
+  get pickle data from stored records.
+
+- Deprecated ZODB.interfaces.StorageStopIteration.  Storage
+  iterator implementations should just raise StopIteration, which
+  means they can now be implemented as generators.
+
+- The filestorage packer configuration option noe accepts values of
+  the form ``modname:expression``, allowing the use of packer
+  factories with options.
+
+- Added a new API that allows applications to make sure that current
+  data are read. For example, with::
+
+    self._p_jar.readCurrent(ob)
+
+  A conflict error will be raised if the version of ob read by the
+  transaction isn't current when the transaction is committed.
+
+  Normally, ZODB only assures that objects read are consistent, but not
+  necessarily up to date.  Checking whether an object is up to date is
+  important when information read from one object is used to update
+  another.
+
+  BTrees are an important case of reading one object to update
+  another.  Internal nodes are read to decide which leave notes are
+  updated when a BTree is updated.  BTrees now use this new API to
+  make sure that internal nodes are up to date on updates.
+
+- When transactions are aborted, new object ids allocated during the
+  transaction are saved and used in subsequent transactions. This can
+  help in situations where object ids are used as BTree keys and the
+  sequential allocation of object ids leads to conflict errors.
+
+- ZEO servers now support a server_status method for for getting
+  information on the number of clients, lock requests and general
+  statistics.
+
+- ZEO clients now support a client_label constructor argument and
+  client-label configuration-file option to specify a label for a
+  client in server logs. This makes it easier to identify specific
+  clients corresponding to server log entries, especially when there
+  are multiple clients originating from the same machine.
+
+- Improved ZEO server commit lock logging.  Now, locking activity is
+  logged at the debug level until the number of waiting lock requests
+  gets above 3.  Log at the critical level when the number of waiting
+  lock requests gets above 9.
+
+- The file-storage backup script, repozo, will now create a backup
+  index file if an output file name is given via the --output/-o
+  option.
+
+- Added a '--kill-old-on-full' argument to the repozo backup options:
+  if passed, remove any older full or incremental backup files from the
+  repository after doing a full backup.
+  (https://bugs.launchpad.net/zope2/+bug/143158)
+
+- The mkzeoinst script has been moved to a separate project:
+
+    http://pypi.python.org/pypi/zope.mkzeoinstance
+
+  and is no-longer included with ZODB.
+
+- Removed untested unsupported dbmstorage fossile.
+
+- ZEO servers no longer log their pids in every log message. It's just
+  not interesting. :)
+
+Bugs fixed
+----------
+
+- When a pool timeout was specified for a database and old connections
+  were removed due to timing out, an error occured due to a bug in the
+  connection cleanup logic.
+
+- When multi-database connections were no longer used and cleaned up,
+  their subconnections weren't cleaned up properly.
+
+- ZEO didn't work with IPv6 addrsses.
+  Added IPv6 support contributed by Martin v. Löwis.
+
+- A file storage bug could cause ZEO clients to have incorrect
+  information about current object revisions after reconnecting to a
+  database server.
+
+- Updated the 'repozo --kill-old-on-full' option to remove any '.index'
+  files corresponding to backups being removed.
+
+- ZEO extension methods failed when a client reconnected to a
+  storage. (https://bugs.launchpad.net/zodb/+bug/143344)
+
+- Clarified the return Value for lastTransaction in the case when
+  there aren't any transactions.  Now a string of 8 nulls (aka "z64")
+  is specified.
+
+- Setting _p_changed on a blob wo actually writing anything caused an
+  error. (https://bugs.launchpad.net/zodb/+bug/440234)
+
+- The verbose mode of the fstest was broken.
+  (https://bugs.launchpad.net/zodb/+bug/475996)
+
+- Object ids created in a savepoint that is rolled back wren't being
+  reused. (https://bugs.launchpad.net/zodb/+bug/588389)
+
+- Database connections didn't invalidate cache entries when conflict
+  errors were raised in response to checkCurrentSerialInTransaction
+  errors. Normally, this shouldn't be a problem, since there should be
+  pending invalidations for these oids which will cause the object to
+  be invalidated. There have been issues with ZEO persistent cache
+  management that have caused out of date data to remain in the cache.
+  (It's possible that the last of these were addressed in the
+  3.10.0b5.) Invalidating read data when there is a conflict error
+  provides some extra insurance.
+
+- The interface, ZODB.interfaces.IStorage was incorrect. The store
+  method should never return a sequence of oid and serial pairs.
+
+- When a demo storage push method was used to create a new demo
+  storage and the new storage was closed, the original was
+  (incorrectly) closed.
+
+- There were numerous bugs in the ZEO cache tracing and analysis code.
+  Cache simulation, while not perfect, seems to be much more accurate
+  now than it was before.
+
+  The ZEO cache trace statistics and simulation scripts have been
+  given more descriptive names and moved to the ZEO scripts package.
+
+- BTree sets and tree sets didn't correctly check values passed to
+  update or to constructors, causing Python to exit under certain
+  circumstances.
+
+- Fixed bug in copying a BTrees.Length instance.
+  (https://bugs.launchpad.net/zodb/+bug/516653)
+
+- Fixed a serious bug that caused cache failures when run
+  with Python optimization turned on.
+
+  https://bugs.launchpad.net/zodb/+bug/544305
+
+- When using using a ClientStorage in a Storage server, there was a
+  threading bug that caused clients to get disconnected.
+
+- On Mac OS X, clients that connected and disconnected quickly could
+  cause a ZEO server to stop accepting connections, due to a failure
+  to catch errors in the initial part of the connection process.
+
+  The failure to properly handle exceptions while accepting
+  connections is potentially problematic on other platforms.
+
+  Fixes: https://bugs.launchpad.net/zodb/+bug/135108
+
+- Object state management wasn't done correctly when classes
+  implemented custom _p_deavtivate methods.
+  (https://bugs.launchpad.net/zodb/+bug/185066)

Modified: ZODB/branches/patricks-blob-dir-perm/buildout.cfg
===================================================================
--- ZODB/branches/patricks-blob-dir-perm/buildout.cfg	2012-10-16 15:15:49 UTC (rev 128022)
+++ ZODB/branches/patricks-blob-dir-perm/buildout.cfg	2012-10-16 19:52:10 UTC (rev 128023)
@@ -7,12 +7,12 @@
 
 [versions]
 zc.recipe.testrunner = 1.3.0
-persistent = 4.0.0
 
 [test]
 recipe = zc.recipe.testrunner
 eggs =
-    ZODB3 [test]
+    persistent
+    ZODB [test]
 initialization =
   import os, tempfile
   try: os.mkdir('tmp')

Modified: ZODB/branches/patricks-blob-dir-perm/setup.py
===================================================================
--- ZODB/branches/patricks-blob-dir-perm/setup.py	2012-10-16 15:15:49 UTC (rev 128022)
+++ ZODB/branches/patricks-blob-dir-perm/setup.py	2012-10-16 19:52:10 UTC (rev 128023)
@@ -20,7 +20,7 @@
 interface, rich transaction support, and undo.
 """
 
-VERSION = "3.11dev"
+VERSION = "4.0.0dev"
 
 from ez_setup import use_setuptools
 use_setuptools()
@@ -130,7 +130,6 @@
     import logging
     import pkg_resources
     import unittest
-    import ZEO.ClientStorage
 
     class NullHandler(logging.Handler):
         level = 50
@@ -142,11 +141,10 @@
 
     suite = unittest.TestSuite()
     base = pkg_resources.working_set.find(
-        pkg_resources.Requirement.parse('ZODB3')).location
+        pkg_resources.Requirement.parse('ZODB')).location
     for dirpath, dirnames, filenames in os.walk(base):
         if os.path.basename(dirpath) == 'tests':
             for filename in filenames:
-                if filename != 'testZEO.py': continue
                 if filename.endswith('.py') and filename.startswith('test'):
                     mod = __import__(
                         _modname(dirpath, base, os.path.splitext(filename)[0]),
@@ -169,11 +167,11 @@
     ("\n".join(doclines[2:]) + "\n\n" +
      ".. contents::\n\n" +
      read_file("README.txt")  + "\n\n" +
-     read_file("src", "CHANGES.txt")
+     read_file("CHANGES.txt")
     ).decode('latin-1').replace(u'L\xf6wis', '|Lowis|')
     )+ '''\n\n.. |Lowis| unicode:: L \\xf6 wis\n'''
 
-setup(name="ZODB3",
+setup(name="ZODB",
       version=VERSION,
       setup_requires=['persistent'],
       maintainer="Zope Foundation and Contributors",
@@ -189,6 +187,10 @@
       test_suite="__main__.alltests", # to support "setup.py test"
       tests_require = ['zope.testing', manuel_version],
       extras_require = dict(test=['zope.testing', manuel_version]),
+      # XXX: We don't really want to install these headers;  we would
+      #      prefer just including them so that folks can build from an sdist.
+      headers = ['include/persistent/cPersistence.h',
+                 'include/persistent/ring.h'],
       install_requires = [
         transaction_version,
         'persistent',
@@ -205,10 +207,6 @@
       fsrefs = ZODB.scripts.fsrefs:main
       fstail = ZODB.scripts.fstail:Main
       repozo = ZODB.scripts.repozo:main
-      zeopack = ZEO.scripts.zeopack:main
-      runzeo = ZEO.runzeo:main
-      zeopasswd = ZEO.zeopasswd:main
-      zeoctl = ZEO.zeoctl:main
       """,
       include_package_data = True,
       )

Deleted: ZODB/branches/patricks-blob-dir-perm/src/CHANGES.txt
===================================================================
--- ZODB/branches/patricks-blob-dir-perm/src/CHANGES.txt	2012-10-16 15:15:49 UTC (rev 128022)
+++ ZODB/branches/patricks-blob-dir-perm/src/CHANGES.txt	2012-10-16 19:52:10 UTC (rev 128023)
@@ -1,376 +0,0 @@
-================
- Change History
-================
-
-3.11.0a1 (2011-??-??)
-=====================
-
-New Features
-------------
-
-- The ``persistent`` package is now released as a separate distribution,
-  on which ZODB now depends.
-
-- ZODB no longer depends on zope.event.  It now uses ZODB.event, which
-  uses zope.event if it is installed.  You can override
-  ZODB.event.notify to provide your own event handling, although
-  zope.event is recommended.
-
-- BTrees allowed object keys with insane comparison. (Comparison
-  inherited from object, which compares based on in-process address.)
-  Now BTrees raise TypeError if an attempt is made to save a key with
-  comparison inherited from object. (This doesn't apply to old-style
-  class instances.)
-
-- Storage servers now emit Serving and Closed events so subscribers
-  can discover addresses when dynamic port assignment (bind to port 0)
-  is used. This could, for example, be used to update address
-  information in a ZooKeeper database.
-
-- Client storagers have a method, new_addr, that can be used to change
-  the server address(es). This can be used, for example, to update a
-  dynamically determined server address from information in a
-  ZooKeeper database.
-
-Bugs Fixed
-----------
-
-- Ensured that the export file and index file created by ``repozo`` share
-  the same timestamp.
-
-  https://bugs.launchpad.net/zodb/+bug/993350
-
-- Pinned the ``transaction`` and ``manuel`` dependencies to Python 2.5-
-  compatible versions when installing under Python 2.5.
-
-3.10.5 (2011-11-19)
-===================
-
-Bugs Fixed
-----------
-
-- Conflict resolution failed when state included cross-database
-  persistent references with classes that couldn't be imported.
-
-3.10.4 (2011-11-17)
-===================
-
-Bugs Fixed
-----------
-
-- Conflict resolution failed when state included persistent references
-  with classes that couldn't be imported.
-
-3.10.3 (2011-04-12)
-===================
-
-Bugs Fixed
-----------
-
-- "activity monitor not updated for subconnections when connection
-  returned to pool"
-
-  https://bugs.launchpad.net/zodb/+bug/737198
-
-- "Blob temp file get's removed before it should",
-  https://bugs.launchpad.net/zodb/+bug/595378
-
-  A way this to happen is that a transaction is aborted after the
-  commit process has started. I don't know how this would happen in
-  the wild.
-
-  In 3.10.3, the ZEO tpc_abort call to the server is changed to be
-  synchronous, which should address this case. Maybe there's another
-  case.
-
-
-Performance enhancements
-------------------------
-
-- Improved ZEO client cache implementation to make it less likely to
-  evict objects that are being used.
-
-- Small (possibly negligable) reduction in CPU in ZEO storage servers
-  to service object loads and in networking code.
-
-3.10.2 (2011-02-12)
-===================
-
-Bugs Fixed
-----------
-
-- 3.10 introduced an optimization to try to address BTree conflict
-  errors arrising for basing BTree keys on object ids. The
-  optimization caused object ids allocated in aborted transactions to
-  be reused. Unfortunately, this optimzation led to some rather
-  severe failures in some applications.  The symptom is a conflict
-  error in which one of the serials mentioned is zero.  This
-  optimization has been removed.
-
-  See (for example): https://bugs.launchpad.net/zodb/+bug/665452
-
-- ZEO server transaction timeouts weren't logged as critical.
-
-  https://bugs.launchpad.net/zodb/+bug/670986
-
-3.10.1 (2010-10-27)
-===================
-
-Bugs Fixed
-----------
-
-- When a transaction rolled back a savepoint after adding objects and
-  subsequently added more objects and committed, an error could be
-  raised "ValueError: A different object already has the same oid"
-  causing the transaction to fail. Worse, this could leave a database
-  in a state where subsequent transactions in the same process would
-  fail.
-
-  https://bugs.launchpad.net/zodb/+bug/665452
-
-- Unix domain sockets didn't work for ZEO (since the addition of IPv6
-  support). https://bugs.launchpad.net/zodb/+bug/663259
-
-- Removed a missfeature that can cause performance problems when using
-  an external garbage collector with ZEO.  When objects were deleted
-  from a storage, invalidations were sent to clients. This makes no
-  sense.  It's wildly unlikely that the other connections/clients have
-  copies of the garbage.  In normal storage garbage collection, we
-  don't send invalidations. There's no reason to send them when an
-  external garbage collector is used.
-
-- ZEO client cache simulation misshandled invalidations
-  causing incorrect statistics and errors.
-
-3.10.0 (2010-10-08)
-===================
-
-New Features
-------------
-
-- There are a number of performance enhancements for ZEO storage
-  servers.
-
-- FileStorage indexes use a new format. They are saved and loaded much
-  faster and take less space. Old indexes can still be read, but new
-  indexes won't be readable by older versions of ZODB.
-
-- The API for undoing multiple transactions has changed.  To undo
-  multiple transactions in a single transaction, pass a list of
-  transaction identifiers to a database's undoMultiple method. Calling a
-  database's undo method multiple times in the same transaction now
-  raises an exception.
-
-- The ZEO protocol for undo has changed.  The only user-visible
-  consequence of this is that when ZODB 3.10 ZEO servers won't support
-  undo for older clients.
-
-- The storage API (IStorage) has been tightened. Now, storages should
-  raise a StorageTransactionError when invalid transactions are passed
-  to tpc_begin, tpc_vote, or tpc_finish.
-
-- ZEO clients (``ClientStorage`` instances) now work in forked processes,
-  including those created via ``multiprocessing.Process`` instances.
-
-- Broken objects now provide the IBroken interface.
-
-- As a convenience, you can now pass an integer port as an address to
-  the ZEO ClientStorage constructor.
-
-- As a convenience, there's a new ``client`` function in the ZEO
-  package for constructing a ClientStorage instance.  It takes the
-  same arguments as the ClientStorage constructor.
-
-- DemoStorages now accept constructor athuments, close_base_on_close
-  and close_changes_on_close, to control whether underlying storages
-  are closed when the DemoStorage is closed.
-
-  https://bugs.launchpad.net/zodb/+bug/118512
-
-- Removed the dependency on zope.proxy.
-
-- Removed support for the _p_independent mini framework, which was
-  made moot by the introduction of multi-version concurrency control
-  several years ago.
-
-- Added support for the transaction retry convenience
-  (transaction-manager attempts method) introduced in the
-  ``transaction`` 1.1.0 release.
-
-- Enhanced the database opening conveniences:
-
-  - You can now pass storage keyword arguments to ZODB.DB and
-    ZODB.connection.
-
-  - You can now pass None (rather than a storage or file name) to get
-    a database with a mapping storage.
-
-- Databases now warn when committing very large records (> 16MB).
-  This is to try to warn people of likely design mistakes.  There is a
-  new option (large_record_size/large-record-size) to control the
-  record size at which the warning is issued.
-
-- Added support for wrapper storages that transform pickle data.
-  Applications for this include compression and encryption.  An
-  example wrapper storage implementation, ZODB.tests.hexstorage, was
-  included for testing.
-
-  It is important that storage implementations not assume that
-  storages contain pickles.  Renamed IStorageDB to IStorageWrapper and
-  expanded it to provide methods for transforming and untransforming
-  data records.  Storages implementations should use these methods to
-  get pickle data from stored records.
-
-- Deprecated ZODB.interfaces.StorageStopIteration.  Storage
-  iterator implementations should just raise StopIteration, which
-  means they can now be implemented as generators.
-
-- The filestorage packer configuration option noe accepts values of
-  the form ``modname:expression``, allowing the use of packer
-  factories with options.
-
-- Added a new API that allows applications to make sure that current
-  data are read. For example, with::
-
-    self._p_jar.readCurrent(ob)
-
-  A conflict error will be raised if the version of ob read by the
-  transaction isn't current when the transaction is committed.
-
-  Normally, ZODB only assures that objects read are consistent, but not
-  necessarily up to date.  Checking whether an object is up to date is
-  important when information read from one object is used to update
-  another.
-
-  BTrees are an important case of reading one object to update
-  another.  Internal nodes are read to decide which leave notes are
-  updated when a BTree is updated.  BTrees now use this new API to
-  make sure that internal nodes are up to date on updates.
-
-- When transactions are aborted, new object ids allocated during the
-  transaction are saved and used in subsequent transactions. This can
-  help in situations where object ids are used as BTree keys and the
-  sequential allocation of object ids leads to conflict errors.
-
-- ZEO servers now support a server_status method for for getting
-  information on the number of clients, lock requests and general
-  statistics.
-
-- ZEO clients now support a client_label constructor argument and
-  client-label configuration-file option to specify a label for a
-  client in server logs. This makes it easier to identify specific
-  clients corresponding to server log entries, especially when there
-  are multiple clients originating from the same machine.
-
-- Improved ZEO server commit lock logging.  Now, locking activity is
-  logged at the debug level until the number of waiting lock requests
-  gets above 3.  Log at the critical level when the number of waiting
-  lock requests gets above 9.
-
-- The file-storage backup script, repozo, will now create a backup
-  index file if an output file name is given via the --output/-o
-  option.
-
-- Added a '--kill-old-on-full' argument to the repozo backup options:
-  if passed, remove any older full or incremental backup files from the
-  repository after doing a full backup.
-  (https://bugs.launchpad.net/zope2/+bug/143158)
-
-- The mkzeoinst script has been moved to a separate project:
-
-    http://pypi.python.org/pypi/zope.mkzeoinstance
-
-  and is no-longer included with ZODB.
-
-- Removed untested unsupported dbmstorage fossile.
-
-- ZEO servers no longer log their pids in every log message. It's just
-  not interesting. :)
-
-Bugs fixed
-----------
-
-- When a pool timeout was specified for a database and old connections
-  were removed due to timing out, an error occured due to a bug in the
-  connection cleanup logic.
-
-- When multi-database connections were no longer used and cleaned up,
-  their subconnections weren't cleaned up properly.
-
-- ZEO didn't work with IPv6 addrsses.
-  Added IPv6 support contributed by Martin v. Löwis.
-
-- A file storage bug could cause ZEO clients to have incorrect
-  information about current object revisions after reconnecting to a
-  database server.
-
-- Updated the 'repozo --kill-old-on-full' option to remove any '.index'
-  files corresponding to backups being removed.
-
-- ZEO extension methods failed when a client reconnected to a
-  storage. (https://bugs.launchpad.net/zodb/+bug/143344)
-
-- Clarified the return Value for lastTransaction in the case when
-  there aren't any transactions.  Now a string of 8 nulls (aka "z64")
-  is specified.
-
-- Setting _p_changed on a blob wo actually writing anything caused an
-  error. (https://bugs.launchpad.net/zodb/+bug/440234)
-
-- The verbose mode of the fstest was broken.
-  (https://bugs.launchpad.net/zodb/+bug/475996)
-
-- Object ids created in a savepoint that is rolled back wren't being
-  reused. (https://bugs.launchpad.net/zodb/+bug/588389)
-
-- Database connections didn't invalidate cache entries when conflict
-  errors were raised in response to checkCurrentSerialInTransaction
-  errors. Normally, this shouldn't be a problem, since there should be
-  pending invalidations for these oids which will cause the object to
-  be invalidated. There have been issues with ZEO persistent cache
-  management that have caused out of date data to remain in the cache.
-  (It's possible that the last of these were addressed in the
-  3.10.0b5.) Invalidating read data when there is a conflict error
-  provides some extra insurance.
-
-- The interface, ZODB.interfaces.IStorage was incorrect. The store
-  method should never return a sequence of oid and serial pairs.
-
-- When a demo storage push method was used to create a new demo
-  storage and the new storage was closed, the original was
-  (incorrectly) closed.
-
-- There were numerous bugs in the ZEO cache tracing and analysis code.
-  Cache simulation, while not perfect, seems to be much more accurate
-  now than it was before.
-
-  The ZEO cache trace statistics and simulation scripts have been
-  given more descriptive names and moved to the ZEO scripts package.
-
-- BTree sets and tree sets didn't correctly check values passed to
-  update or to constructors, causing Python to exit under certain
-  circumstances.
-
-- Fixed bug in copying a BTrees.Length instance.
-  (https://bugs.launchpad.net/zodb/+bug/516653)
-
-- Fixed a serious bug that caused cache failures when run
-  with Python optimization turned on.
-
-  https://bugs.launchpad.net/zodb/+bug/544305
-
-- When using using a ClientStorage in a Storage server, there was a
-  threading bug that caused clients to get disconnected.
-
-- On Mac OS X, clients that connected and disconnected quickly could
-  cause a ZEO server to stop accepting connections, due to a failure
-  to catch errors in the initial part of the connection process.
-
-  The failure to properly handle exceptions while accepting
-  connections is potentially problematic on other platforms.
-
-  Fixes: https://bugs.launchpad.net/zodb/+bug/135108
-
-- Object state management wasn't done correctly when classes
-  implemented custom _p_deavtivate methods.
-  (https://bugs.launchpad.net/zodb/+bug/185066)

Modified: ZODB/branches/patricks-blob-dir-perm/src/ZODB/scripts/README.txt
===================================================================
--- ZODB/branches/patricks-blob-dir-perm/src/ZODB/scripts/README.txt	2012-10-16 15:15:49 UTC (rev 128022)
+++ ZODB/branches/patricks-blob-dir-perm/src/ZODB/scripts/README.txt	2012-10-16 19:52:10 UTC (rev 128023)
@@ -72,15 +72,6 @@
 size of object, including all reachable subobjects.
 
 
-parsezeolog.py -- parse BLATHER logs from ZEO server
-
-This script may be obsolete.  It has not been tested against the
-current log output of the ZEO server.
-
-Reports on the time and size of transactions committed by a ZEO
-server, by inspecting log messages at BLATHER level.
-
-
 repozo.py -- incremental backup utility for FileStorage
 
 Run the script with the -h option to see usage details.

Modified: ZODB/branches/patricks-blob-dir-perm/src/ZODB/tests/testConfig.py
===================================================================
--- ZODB/branches/patricks-blob-dir-perm/src/ZODB/tests/testConfig.py	2012-10-16 15:15:49 UTC (rev 128022)
+++ ZODB/branches/patricks-blob-dir-perm/src/ZODB/tests/testConfig.py	2012-10-16 19:52:10 UTC (rev 128023)
@@ -96,45 +96,6 @@
         self._test(cfg)
 
 
-class ZEOConfigTest(ConfigTestBase):
-    def test_zeo_config(self):
-        # We're looking for a port that doesn't exist so a
-        # connection attempt will fail.  Instead of elaborate
-        # logic to loop over a port calculation, we'll just pick a
-        # simple "random", likely to not-exist port number and add
-        # an elaborate comment explaining this instead.  Go ahead,
-        # grep for 9.
-        from ZEO.ClientStorage import ClientDisconnected
-        import ZConfig
-        from ZODB.config import getDbSchema
-        from StringIO import StringIO
-        cfg = """
-        <zodb>
-          <zeoclient>
-            server localhost:56897
-            wait false
-          </zeoclient>
-        </zodb>
-        """
-        config, handle = ZConfig.loadConfigFile(getDbSchema(), StringIO(cfg))
-        self.assertEqual(config.database[0].config.storage.config.blob_dir,
-                         None)
-        self.assertRaises(ClientDisconnected, self._test, cfg)
-
-        cfg = """
-        <zodb>
-          <zeoclient>
-            blob-dir blobs
-            server localhost:56897
-            wait false
-          </zeoclient>
-        </zodb>
-        """
-        config, handle = ZConfig.loadConfigFile(getDbSchema(), StringIO(cfg))
-        self.assertEqual(config.database[0].config.storage.config.blob_dir,
-                         'blobs')
-        self.assertRaises(ClientDisconnected, self._test, cfg)
-
 def database_xrefs_config():
     r"""
     >>> db = ZODB.config.databaseFromString(
@@ -227,7 +188,6 @@
     suite.addTest(doctest.DocTestSuite(
         setUp=ZODB.tests.util.setUp, tearDown=ZODB.tests.util.tearDown))
     suite.addTest(unittest.makeSuite(ZODBConfigTest))
-    suite.addTest(unittest.makeSuite(ZEOConfigTest))
     return suite
 
 



More information about the Zodb-checkins mailing list