[Checkins] [zopefoundation/ZEO] 4f7f5d: Start of asyncio-based ZEO client implementation.

GitHub noreply at github.com
Sat Aug 13 23:36:47 CEST 2016


  Branch: refs/heads/ZEO5
  Home:   https://github.com/zopefoundation/ZEO
  Commit: 4f7f5d3f423a68393de52dfd9f5b459bd04929d8
      https://github.com/zopefoundation/ZEO/commit/4f7f5d3f423a68393de52dfd9f5b459bd04929d8
  Author: Jim Fulton <jim at zope.com>
  Date:   2015-12-13 (Sun, 13 Dec 2015)

  Changed paths:
    A src/ZEO/asyncio.py

  Log Message:
  -----------
  Start of asyncio-based ZEO client implementation.

Much left to do, but this is a nice little spike.


  Commit: de0300d9c9fd62646d076ee1abb55f544ed7eabd
      https://github.com/zopefoundation/ZEO/commit/de0300d9c9fd62646d076ee1abb55f544ed7eabd
  Author: Jim Fulton <jim at zope.com>
  Date:   2015-12-13 (Sun, 13 Dec 2015)

  Changed paths:
    A asyncio-todo.rst

  Log Message:
  -----------
  todos


  Commit: 7fb7b96b73542c960f15308d959e0b1d3d269944
      https://github.com/zopefoundation/ZEO/commit/7fb7b96b73542c960f15308d959e0b1d3d269944
  Author: Jim Fulton <jim at zope.com>
  Date:   2015-12-27 (Sun, 27 Dec 2015)

  Changed paths:
    M src/ZEO/StorageServer.py

  Log Message:
  -----------
  Noted that getInvalidations is stupid. :(


  Commit: 08703051c30f52e55b9e42fa552d3e00a38fc4eb
      https://github.com/zopefoundation/ZEO/commit/08703051c30f52e55b9e42fa552d3e00a38fc4eb
  Author: Jim Fulton <jim at zope.com>
  Date:   2015-12-27 (Sun, 27 Dec 2015)

  Changed paths:
    M src/ZEO/interfaces.py

  Log Message:
  -----------
  documented client cache contract


  Commit: cbf756c74dfd96eeb6df040c743d991777f2c6ae
      https://github.com/zopefoundation/ZEO/commit/cbf756c74dfd96eeb6df040c743d991777f2c6ae
  Author: Jim Fulton <jim at zope.com>
  Date:   2015-12-27 (Sun, 27 Dec 2015)

  Changed paths:
    R src/ZEO/asyncio.py
    A src/ZEO/asyncio/__init__.py
    A src/ZEO/asyncio/adapters.py
    A src/ZEO/asyncio/client.py
    A src/ZEO/asyncio/testing.py
    A src/ZEO/asyncio/tests.py

  Log Message:
  -----------
  Hardened asyncio interface

- Moved cache into async thread to avoid lots of locking.

- Setup delegation to storage.

- Provide thread wrapper that runs the async protocol in a thread.


  Commit: a2a34a88650f50c7759782601e307439258ff3f2
      https://github.com/zopefoundation/ZEO/commit/a2a34a88650f50c7759782601e307439258ff3f2
  Author: Jim Fulton <jim at aledade.com>
  Date:   2016-01-17 (Sun, 17 Jan 2016)

  Changed paths:
    M src/ZEO/interfaces.py

  Log Message:
  -----------
  Added missing len


  Commit: e0c6416175be674ebac760614c389e4f7be487a3
      https://github.com/zopefoundation/ZEO/commit/e0c6416175be674ebac760614c389e4f7be487a3
  Author: Jim Fulton <jim at aledade.com>
  Date:   2016-01-17 (Sun, 17 Jan 2016)

  Changed paths:
    M src/ZEO/cache.py

  Log Message:
  -----------
  No-longer need loks, since we're only accessed from the asyncio thread.


  Commit: 107f1077438a49d6b810d710fdae48571a3ce92b
      https://github.com/zopefoundation/ZEO/commit/107f1077438a49d6b810d710fdae48571a3ce92b
  Author: Jim Fulton <jim at aledade.com>
  Date:   2016-01-17 (Sun, 17 Jan 2016)

  Changed paths:
    R src/ZEO/asyncio/adapters.py
    M src/ZEO/asyncio/client.py
    M src/ZEO/asyncio/testing.py
    M src/ZEO/asyncio/tests.py

  Log Message:
  -----------
  Updated the asyncio to support multiple addresses and read-only fallback

Also got rid of the adapter machinery. It didn't buy enough to justify
the wrapping.


  Commit: e302ff45c5daa5a23c6959f15e9e7f369293c2f5
      https://github.com/zopefoundation/ZEO/commit/e302ff45c5daa5a23c6959f15e9e7f369293c2f5
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-02 (Mon, 02 May 2016)

  Changed paths:
    M src/ZEO/asyncio/client.py

  Log Message:
  -----------
  Some refactoring

Renamed connection_timeout to connect_poll and use it when reconnecting.

Optimized hanfline of first messagem, as we did in zrpc, because it
only occurs once. :)

More/better comments.

Move loop argument to front of constructor arguments.

Added close/close_threadsafe to wait for connection on close.

Added is_connected.

Added new_addr.


  Commit: b470bb653e9b752bb0d188c341cb9dc702969d5b
      https://github.com/zopefoundation/ZEO/commit/b470bb653e9b752bb0d188c341cb9dc702969d5b
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-18 (Wed, 18 May 2016)

  Changed paths:
    A src/ZEO/ordering.rst

  Log Message:
  -----------
  added notes on invalidation and load ordering


  Commit: 4cfe366227682f502ddd806d5203380e1e5c6757
      https://github.com/zopefoundation/ZEO/commit/4cfe366227682f502ddd806d5203380e1e5c6757
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-18 (Wed, 18 May 2016)

  Changed paths:
    M src/ZEO/ordering.rst

  Log Message:
  -----------
  refinements (including spelling and considering allowing tpc_finish and loads to be in flight at once.


  Commit: 7e5b78fcfc965f28d6d13ec4c60ae2e1968af5c6
      https://github.com/zopefoundation/ZEO/commit/7e5b78fcfc965f28d6d13ec4c60ae2e1968af5c6
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-18 (Wed, 18 May 2016)

  Changed paths:
    M src/ZEO/asyncio/client.py
    M src/ZEO/asyncio/testing.py
    M src/ZEO/asyncio/tests.py

  Log Message:
  -----------
  Async changes driven by ClientStorage integration

- Fixed tpc_finish:

  - Use tid from server to update cache.

  - Accept and call callback function.

- Implemented flow control

- Added connection/disconnection notification (to client storage).

- implemented get_peername.

- implemented is_read_only

- renamed callAsync to async (death to Camels!)


  Commit: b6ec0ecab67181327942539a3bcb81caaa1867bd
      https://github.com/zopefoundation/ZEO/commit/b6ec0ecab67181327942539a3bcb81caaa1867bd
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-19 (Thu, 19 May 2016)

  Changed paths:
    M src/ZEO/asyncio/client.py
    M src/ZEO/asyncio/tests.py

  Log Message:
  -----------
  Added protocol negotiation and test fixes


  Commit: bdbc36dd929d8dcb37041fefc3e175aec4d9a919
      https://github.com/zopefoundation/ZEO/commit/bdbc36dd929d8dcb37041fefc3e175aec4d9a919
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-21 (Sat, 21 May 2016)

  Changed paths:
    M src/ZEO/asyncio/client.py
    M src/ZEO/asyncio/tests.py

  Log Message:
  -----------
  Async changes:

- Issue with notify_connected, ClientStorage wants to make requests in
  response to being notified.  This is problematic because
  synchronsouse calls cause deadlock in this situation as do
  asyncronous calls done in a multi-threaded fashion.

  - Call get_info from io thread during startup, because
    notify_connected wants it.

  - Added an same-thread asyncronous API.

  - Added comment warning of this issue.

  - Added a little more logging.

- fixed an ordering issue when protocol is disconnected. It should
  notify the client before it cleans up it's futures to prevent
  getting more.

- Expose protocol_version to client so it can adjust it's behavior to
  the .

- More logging


  Commit: 3f31236b2f725965ca095574d2d64b7467fdf175
      https://github.com/zopefoundation/ZEO/commit/3f31236b2f725965ca095574d2d64b7467fdf175
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-24 (Tue, 24 May 2016)

  Changed paths:
    M setup.py
    M src/ZEO/ClientStorage.py
    M src/ZEO/Exceptions.py
    R src/ZEO/ServerStub.py
    M src/ZEO/StorageServer.py
    M src/ZEO/TransactionBuffer.py
    M src/ZEO/asyncio/client.py
    M src/ZEO/asyncio/testing.py
    M src/ZEO/tests/CommitLockTests.py
    M src/ZEO/tests/ConnectionTests.py
    M src/ZEO/tests/IterationTests.py
    M src/ZEO/tests/ThreadTests.py
    R src/ZEO/tests/auth_plaintext.py
    R src/ZEO/tests/testAuth.py
    M src/ZEO/tests/testZEO.py
    M src/ZEO/tests/zeoserver.py

  Log Message:
  -----------
  Checkpointing....

Many tests passing. Quite a few still failing.


  Commit: cc333941473eb70db3a2d8959db30ccb7e0fd0bb
      https://github.com/zopefoundation/ZEO/commit/cc333941473eb70db3a2d8959db30ccb7e0fd0bb
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-25 (Wed, 25 May 2016)

  Changed paths:
    M src/ZEO/ClientStorage.py
    M src/ZEO/TransactionBuffer.py
    M src/ZEO/asyncio/client.py
    M src/ZEO/asyncio/tests.py
    M src/ZEO/tests/drop_cache_rather_than_verify.txt
    M src/ZEO/tests/forker.py
    M src/ZEO/tests/testZEO.py
    M src/ZEO/tests/zeo-fan-out.test

  Log Message:
  -----------
  Lots of changes while integrating wth ClientStorage

- testZEO tests now pass

- async tests now pass again

  Probably need to write more async tests to reflect changes.
  (Or maybe the ZEO tests that drove tem are enough.)

- dropped heartbeat tests, which were insane. Will add simpler test
  when I add heartbeats to the async implementation.


  Commit: e2e9e5ee31b0cf203d7698b34527e351bbaca8b2
      https://github.com/zopefoundation/ZEO/commit/e2e9e5ee31b0cf203d7698b34527e351bbaca8b2
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-26 (Thu, 26 May 2016)

  Changed paths:
    M src/ZEO/tests/testTransactionBuffer.py

  Log Message:
  -----------
  Updated for transaction buffer changes

Don't test obsolete method ``invalidate``. It's not used anymore in
master and not present on this (asyncio) branch.

Removed the reuable tests because transaction buffers are no-longer reused.


  Commit: c3fb0f5f0133ce0c7c774b7c123c69cac350b663
      https://github.com/zopefoundation/ZEO/commit/c3fb0f5f0133ce0c7c774b7c123c69cac350b663
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-26 (Thu, 26 May 2016)

  Changed paths:
    M src/ZEO/tests/test_cache.py

  Log Message:
  -----------
  The cache is no-longer required to be thread safe.

Because it's only accessed by the asyncio thread.


  Commit: f656c5b2c8992d0e50808724d4495cdc5e1d62fe
      https://github.com/zopefoundation/ZEO/commit/f656c5b2c8992d0e50808724d4495cdc5e1d62fe
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-26 (Thu, 26 May 2016)

  Changed paths:
    M src/ZEO/asyncio/client.py
    M src/ZEO/asyncio/tests.py

  Log Message:
  -----------
  Fixed: on lost connections, pending futures weren't completed with ClientDisconected errors.

To make matters worse, when the other site closes a connection, None
is passed to protocol connection_lost methods, which was fouling up
sornstream error detection.


  Commit: b79c7216d0bbd6b150e9b1586a4c9cd36def09f9
      https://github.com/zopefoundation/ZEO/commit/b79c7216d0bbd6b150e9b1586a4c9cd36def09f9
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-26 (Thu, 26 May 2016)

  Changed paths:
    M src/ZEO/asyncio/client.py
    M src/ZEO/asyncio/tests.py

  Log Message:
  -----------
  If we time out on call (or initial connect) because we're disconnected, raiser ClientDisconnected.


  Commit: 6134baabc6c4ac923f6e9413cfb2e0759b761796
      https://github.com/zopefoundation/ZEO/commit/6134baabc6c4ac923f6e9413cfb2e0759b761796
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-26 (Thu, 26 May 2016)

  Changed paths:
    M src/ZEO/asyncio/client.py
    M src/ZEO/asyncio/tests.py

  Log Message:
  -----------
  Fixed read-only fallback.

We were sending lastTransaction requests while register requests were
in-flight.  If register failed, then the lastTransaction request was
invalid, causing the connection to be closed. :(

When we update the server, we'll have register return lastTransaction
and probably info, since the client wants that information on connect.


  Commit: 1cc3ceb5bd32d3452d3507c117552c736318ad4e
      https://github.com/zopefoundation/ZEO/commit/1cc3ceb5bd32d3452d3507c117552c736318ad4e
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-26 (Thu, 26 May 2016)

  Changed paths:
    M src/ZEO/asyncio/testing.py

  Log Message:
  -----------
  Added a base class for creating asyncion API stubs


  Commit: 01d7417316b8feeaaa3b3bab8e3bef17be5bf94b
      https://github.com/zopefoundation/ZEO/commit/01d7417316b8feeaaa3b3bab8e3bef17be5bf94b
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-26 (Thu, 26 May 2016)

  Changed paths:
    M src/ZEO/ClientStorage.py
    M src/ZEO/tests/ConnectionTests.py
    M src/ZEO/tests/testConversionSupport.py

  Log Message:
  -----------
  Fixed more tests


  Commit: c536ed31cbd8c31992121fa42e6433446bf74ef3
      https://github.com/zopefoundation/ZEO/commit/c536ed31cbd8c31992121fa42e6433446bf74ef3
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-26 (Thu, 26 May 2016)

  Changed paths:
    M src/ZEO/asyncio/client.py

  Log Message:
  -----------
  save cache verification status for tests


  Commit: a4eca036ca98c14f6bb6c677a12ddee18ae414e4
      https://github.com/zopefoundation/ZEO/commit/a4eca036ca98c14f6bb6c677a12ddee18ae414e4
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-26 (Thu, 26 May 2016)

  Changed paths:
    M src/ZEO/tests/ConnectionTests.py

  Log Message:
  -----------
  fixed more tests


  Commit: ae4d9496eb611b737f77ebd298da50d1c3c8b873
      https://github.com/zopefoundation/ZEO/commit/ae4d9496eb611b737f77ebd298da50d1c3c8b873
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-26 (Thu, 26 May 2016)

  Changed paths:
    M src/ZEO/asyncio/client.py

  Log Message:
  -----------
  eliminate a needless layer of futures

And make waiting for reconnect a little easier.


  Commit: b2b1d6e5f6f1f12aaaed35bf397c43db48f6cf5f
      https://github.com/zopefoundation/ZEO/commit/b2b1d6e5f6f1f12aaaed35bf397c43db48f6cf5f
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-26 (Thu, 26 May 2016)

  Changed paths:
    M src/ZEO/ClientStorage.py
    M src/ZEO/asyncio/client.py

  Log Message:
  -----------
  saneify ClientStorage/asyncio wait api


  Commit: c07c23e6342745215b1122855c80b8810f8a2993
      https://github.com/zopefoundation/ZEO/commit/c07c23e6342745215b1122855c80b8810f8a2993
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-27 (Fri, 27 May 2016)

  Changed paths:
    M src/ZEO/ClientStorage.py

  Log Message:
  -----------
  Finish allowing transactions to be reused, because tests

Need to check for None as data value.


  Commit: 6f7a54d300282f54596a3a6446814c8a7e6f730f
      https://github.com/zopefoundation/ZEO/commit/6f7a54d300282f54596a3a6446814c8a7e6f730f
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-27 (Fri, 27 May 2016)

  Changed paths:
    M src/ZEO/tests/testConnection.py

  Log Message:
  -----------
  Updateed for new underware


  Commit: 85721ab8e259ea77c21f0faf3f3d0696e79b54da
      https://github.com/zopefoundation/ZEO/commit/85721ab8e259ea77c21f0faf3f3d0696e79b54da
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-27 (Fri, 27 May 2016)

  Changed paths:
    M src/ZEO/asyncio/client.py

  Log Message:
  -----------
  Move wait up to client-runner, because it doesn't depend on ClientThread.


  Commit: 73c35ff82cfac2a750b2453bc782ceebdb9bf014
      https://github.com/zopefoundation/ZEO/commit/73c35ff82cfac2a750b2453bc782ceebdb9bf014
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-27 (Fri, 27 May 2016)

  Changed paths:
    M src/ZEO/asyncio/testing.py

  Log Message:
  -----------
  Need a wait stub.


  Commit: eda1bb0880d2c18d549d022de7025cc40e574052
      https://github.com/zopefoundation/ZEO/commit/eda1bb0880d2c18d549d022de7025cc40e574052
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-27 (Fri, 27 May 2016)

  Changed paths:
    M src/ZEO/ClientStorage.py
    M src/ZEO/tests/client-config.test

  Log Message:
  -----------
  Several old configuration options are ignored.

We'll eventially deprecate the old zeo configuration, as it's
implemented in the wrong package. :) A new implementation will provide
poll-interval, however, there's not much point in configuring that.


  Commit: 8e1d0ce4ab1e7e9c14c0605e9a21fa62a888a6dd
      https://github.com/zopefoundation/ZEO/commit/8e1d0ce4ab1e7e9c14c0605e9a21fa62a888a6dd
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-27 (Fri, 27 May 2016)

  Changed paths:
    M src/ZEO/tests/protocols.test

  Log Message:
  -----------
  Updated for new underware and new higher minimum protocol


  Commit: 8c25d2bf920208ee6a1f350affa5d46e38ca58d2
      https://github.com/zopefoundation/ZEO/commit/8c25d2bf920208ee6a1f350affa5d46e38ca58d2
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-27 (Fri, 27 May 2016)

  Changed paths:
    M src/ZEO/tests/invalidation-age.txt

  Log Message:
  -----------
  Use less prittle way to get cache-verification status

And also, we no longer do old-style cache verification.


  Commit: 0eceaf66e8c7da4ca0f70c0a4e540065c3feec2a
      https://github.com/zopefoundation/ZEO/commit/0eceaf66e8c7da4ca0f70c0a4e540065c3feec2a
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-29 (Sun, 29 May 2016)

  Changed paths:
    M src/ZEO/ClientStorage.py
    M src/ZEO/asyncio/client.py
    M src/ZEO/tests/new_addr.test

  Log Message:
  -----------
  Fixed new_addr()

When changing addresses (think ZooKeeper :) ), we needed to be more
careful about current connection status. If we're still trying to
connect, we should stop and start over with the new addresses.


  Commit: 357379f1ed8e29267571088fffdc23322b906200
      https://github.com/zopefoundation/ZEO/commit/357379f1ed8e29267571088fffdc23322b906200
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-29 (Sun, 29 May 2016)

  Changed paths:
    M src/ZEO/ClientStorage.py
    M src/ZEO/TransactionBuffer.py

  Log Message:
  -----------
  Server doesn't call serialnos for deleted objects


  Commit: b0f317b75028ddf261639694ca5a401207757180
      https://github.com/zopefoundation/ZEO/commit/b0f317b75028ddf261639694ca5a401207757180
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-29 (Sun, 29 May 2016)

  Changed paths:
    M src/ZEO/asyncio/client.py

  Log Message:
  -----------
  fixed weird timeout default and added some missing plumbing

Timeout default was False, which must have resulted from an editing
error, but we failed to pass it through where it was needed
anyway. Fixed now.


  Commit: 9d489c681c631b404cc4a0b850192eccd9051e78
      https://github.com/zopefoundation/ZEO/commit/9d489c681c631b404cc4a0b850192eccd9051e78
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-29 (Sun, 29 May 2016)

  Changed paths:
    M src/ZEO/ClientStorage.py

  Log Message:
  -----------
  Allow a timeout to be passed to tpc_abort for tests

Some test timeouts are very low to make the tests go less slow, but
sometimes we need to wait longer.


  Commit: 6d8f1c28f699537873acbf65cd9be89cff5b1d08
      https://github.com/zopefoundation/ZEO/commit/6d8f1c28f699537873acbf65cd9be89cff5b1d08
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-29 (Sun, 29 May 2016)

  Changed paths:
    M src/ZEO/tests/ConnectionTests.py

  Log Message:
  -----------
  wait longer for abort after disconnect.

Because normally the tests are much less patient than real life.


  Commit: 9e0f98f9345540237859f8402b3339d185f19daf
      https://github.com/zopefoundation/ZEO/commit/9e0f98f9345540237859f8402b3339d185f19daf
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-29 (Sun, 29 May 2016)

  Changed paths:
    M src/ZEO/tests/testZEO.py

  Log Message:
  -----------
  Gaaaa, doctest error matching is too brittle sometimes...


  Commit: 4833183f495a013aa16d58613e1f2d041e56f39b
      https://github.com/zopefoundation/ZEO/commit/4833183f495a013aa16d58613e1f2d041e56f39b
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-30 (Mon, 30 May 2016)

  Changed paths:
    M src/ZEO/asyncio/client.py
    M src/ZEO/asyncio/tests.py

  Log Message:
  -----------
  Fixed a bug in low-level data input handling

In ZEO.asyncio.client.Protocol.data_received, the logic was broken if
there we unhandled errors, for example in calling client storage methods.


  Commit: 53007b4abc8617f349e5aaddaeb7f0147fce87b9
      https://github.com/zopefoundation/ZEO/commit/53007b4abc8617f349e5aaddaeb7f0147fce87b9
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-30 (Mon, 30 May 2016)

  Changed paths:
    M src/ZEO/asyncio/client.py
    M src/ZEO/asyncio/testing.py
    M src/ZEO/asyncio/tests.py

  Log Message:
  -----------
  Added (back) heartbeats from client to server


  Commit: a62c62a542cdb0795ef3e1fddce1445cc158d8cc
      https://github.com/zopefoundation/ZEO/commit/a62c62a542cdb0795ef3e1fddce1445cc158d8cc
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-30 (Mon, 30 May 2016)

  Changed paths:
    M src/ZEO/tests/zeo-fan-out.test

  Log Message:
  -----------
  Added some logic to prevent errors getting blob data

These errors were actually hidden by the test, but were annoying when
debug logging was enabled.


  Commit: 24c6bfe8c7a38f1de10d80c264859a473ec30188
      https://github.com/zopefoundation/ZEO/commit/24c6bfe8c7a38f1de10d80c264859a473ec30188
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-30 (Mon, 30 May 2016)

  Changed paths:
    M src/ZEO/tests/forker.py

  Log Message:
  -----------
  added a little debug helper

To turn on debug logging.  A lot of interesting information helpful
when debugging network-implementation issues is logged (because
threads).


  Commit: f64c9a88e61961fbe8c4ccf938ffeff0e24c32c5
      https://github.com/zopefoundation/ZEO/commit/f64c9a88e61961fbe8c4ccf938ffeff0e24c32c5
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-30 (Mon, 30 May 2016)

  Changed paths:
    M setup.py

  Log Message:
  -----------
  version


  Commit: 7b81de196c8ea4c9e86152729a3d6300c2df0170
      https://github.com/zopefoundation/ZEO/commit/7b81de196c8ea4c9e86152729a3d6300c2df0170
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-31 (Tue, 31 May 2016)

  Changed paths:
    M setup.py
    M tox.ini

  Log Message:
  -----------
  Update meta data to indicate lack of Py2 support


  Commit: eef2b3d7c0ba0f4d3e5a7b05e28cf28248d5c31f
      https://github.com/zopefoundation/ZEO/commit/eef2b3d7c0ba0f4d3e5a7b05e28cf28248d5c31f
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-31 (Tue, 31 May 2016)

  Changed paths:
    M .travis.yml
    M CHANGES.rst
    M setup.py
    M tox.ini

  Log Message:
  -----------
  merged master/ZEO5


  Commit: 667b23f645684af30ec30a7af8d501b98cb40eb7
      https://github.com/zopefoundation/ZEO/commit/667b23f645684af30ec30a7af8d501b98cb40eb7
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-05-31 (Tue, 31 May 2016)

  Changed paths:
    M .travis.yml

  Log Message:
  -----------
  Update to reflect lack of Py2 support


  Commit: 6b8003ce5eea5819c87246fcccbfad0a761ee7e3
      https://github.com/zopefoundation/ZEO/commit/6b8003ce5eea5819c87246fcccbfad0a761ee7e3
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-01 (Wed, 01 Jun 2016)

  Changed paths:
    M src/ZEO/asyncio/client.py

  Log Message:
  -----------
  Summary: Fixed: misshandled protocol disconnect during connection setup
If a protocol was disconnected while registering, maybe because the
server was still starting, the disconnection was handled correctly by
the Client, because the protocol attribute wasn't set, the connection
wasn't retried.


  Commit: 74044c8bac1236a57819ea3b73ee7c98966ec8e4
      https://github.com/zopefoundation/ZEO/commit/74044c8bac1236a57819ea3b73ee7c98966ec8e4
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-01 (Wed, 01 Jun 2016)

  Changed paths:
    M src/ZEO/asyncio/client.py

  Log Message:
  -----------
  Fixed: failure of get_info() call during setup caused Clients to close themselves.


  Commit: fbbd96552aa9545944ca15cfe28bf4cd57acf9e6
      https://github.com/zopefoundation/ZEO/commit/fbbd96552aa9545944ca15cfe28bf4cd57acf9e6
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-01 (Wed, 01 Jun 2016)

  Changed paths:
    M src/ZEO/asyncio/client.py

  Log Message:
  -----------
  convert '' to 'localhost' when connecting

Otherwise, we may fail to connect on some platforms.


  Commit: 47a1ab430cee26c83f4a96c8ac3b5939ce595763
      https://github.com/zopefoundation/ZEO/commit/47a1ab430cee26c83f4a96c8ac3b5939ce595763
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-01 (Wed, 01 Jun 2016)

  Changed paths:
    M .travis.yml

  Log Message:
  -----------
  Be more verbose when running tests to try to keep travis from thinking something died.


  Commit: 2ee87333a5bae8642a53fcda9a9986128c10803e
      https://github.com/zopefoundation/ZEO/commit/2ee87333a5bae8642a53fcda9a9986128c10803e
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-02 (Thu, 02 Jun 2016)

  Changed paths:
    M .travis.yml

  Log Message:
  -----------
  Try without multiple threads


  Commit: 07d258d1c2611ca35fd6d633e10499edb8dc888b
      https://github.com/zopefoundation/ZEO/commit/07d258d1c2611ca35fd6d633e10499edb8dc888b
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-02 (Thu, 02 Jun 2016)

  Changed paths:
    M src/ZEO/tests/ConnectionTests.py

  Log Message:
  -----------
  Try using longer timeout (default 30s)

To see if we can get tests to pass in travis.


  Commit: 296608833ea0a955caa5ee3f207bc864b5bf2b65
      https://github.com/zopefoundation/ZEO/commit/296608833ea0a955caa5ee3f207bc864b5bf2b65
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-02 (Thu, 02 Jun 2016)

  Changed paths:
    M src/ZEO/tests/testZEO.py
    R src/ZEO/zrpc/client.py

  Log Message:
  -----------
  Removed unneeded zrpc.client

Removed an odd test that tested for an implementation-specific
(afaict) regression.


  Commit: d50d9823080d031df267def9c53d6b9f410531cc
      https://github.com/zopefoundation/ZEO/commit/d50d9823080d031df267def9c53d6b9f410531cc
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-02 (Thu, 02 Jun 2016)

  Changed paths:
    M src/ZEO/zrpc/server.py

  Log Message:
  -----------
  Retry bind to deal with address in use errors


  Commit: da4d4ce1e2e6acf2553b6c3962107e6c2ce74bb9
      https://github.com/zopefoundation/ZEO/commit/da4d4ce1e2e6acf2553b6c3962107e6c2ce74bb9
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-02 (Thu, 02 Jun 2016)

  Changed paths:
    M src/ZEO/ClientStorage.py
    M src/ZEO/tests/ConnectionTests.py

  Log Message:
  -----------
  Use a timeout argument in a test to avoid waiting too long when demonstrating ClientDisconnected errors


  Commit: ec370c85daf5e2b63c056ad8b23b54142efb9b3c
      https://github.com/zopefoundation/ZEO/commit/ec370c85daf5e2b63c056ad8b23b54142efb9b3c
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-06 (Mon, 06 Jun 2016)

  Changed paths:
    M src/ZEO/cache.py
    M src/ZEO/tests/test_cache.py

  Log Message:
  -----------
  Fixed: the ZEO cache loadBefore method failed to utilize current data.


  Commit: c5e6574083ee9eb66bc9b547c89e5ec797fe18d0
      https://github.com/zopefoundation/ZEO/commit/c5e6574083ee9eb66bc9b547c89e5ec797fe18d0
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-06 (Mon, 06 Jun 2016)

  Changed paths:
    M CHANGES.rst
    M src/ZEO/ClientStorage.py
    M src/ZEO/zrpc/connection.py

  Log Message:
  -----------
  Changed loadBefore to operate more like load behaved, especially
  with regard to the load lock.  This allowes ZEO to work with the
  upcoming ZODB 5, which used loadbefore rather than load.

  Reimplemented load using loadBefore, this testing loadBefore
  extensively via existing tests.


  Commit: e5141646066895ee726d75c31b30a47aabc07d7d
      https://github.com/zopefoundation/ZEO/commit/e5141646066895ee726d75c31b30a47aabc07d7d
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-06 (Mon, 06 Jun 2016)

  Changed paths:
    M CHANGES.rst

  Log Message:
  -----------
  typo


  Commit: 14adf5ab79624297f72b9fb9604a3c3ec17fcf91
      https://github.com/zopefoundation/ZEO/commit/14adf5ab79624297f72b9fb9604a3c3ec17fcf91
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-06 (Mon, 06 Jun 2016)

  Changed paths:
    M src/ZEO/ClientStorage.py

  Log Message:
  -----------
  Fixed, _load_oid wasn't cleared if loadBefore returned None.


  Commit: 0bde3265f2a1917bf8c6dadd697f6885c208aacd
      https://github.com/zopefoundation/ZEO/commit/0bde3265f2a1917bf8c6dadd697f6885c208aacd
  Author: Jim Fulton <jim at jimfulton.info>
  Date:   2016-06-07 (Tue, 07 Jun 2016)

  Changed paths:
    M CHANGES.rst
    M src/ZEO/ClientStorage.py
    M src/ZEO/cache.py
    M src/ZEO/tests/test_cache.py
    M src/ZEO/zrpc/connection.py

  Log Message:
  -----------
  Merge pull request #23 from zopefoundation/load-uses-loadBefore

Load uses load before


  Commit: c98c1d796f1f2e9763d326501cbb56912b07a92d
      https://github.com/zopefoundation/ZEO/commit/c98c1d796f1f2e9763d326501cbb56912b07a92d
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-07 (Tue, 07 Jun 2016)

  Changed paths:
    M src/ZEO/zrpc/client.py

  Log Message:
  -----------
  Fix #22


  Commit: 8f39958fd800ebbeb7ce041dda7ca822e07563ae
      https://github.com/zopefoundation/ZEO/commit/8f39958fd800ebbeb7ce041dda7ca822e07563ae
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-07 (Tue, 07 Jun 2016)

  Changed paths:
    M .travis.yml

  Log Message:
  -----------
  traviiiiiiiiis


  Commit: 2e63eb474eaf4e6daf140000e7b1a5e4e9a0b7d1
      https://github.com/zopefoundation/ZEO/commit/2e63eb474eaf4e6daf140000e7b1a5e4e9a0b7d1
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-07 (Tue, 07 Jun 2016)

  Changed paths:
    M src/ZEO/tests/testZEO.py

  Log Message:
  -----------
  Make client_asyncore_thread_has_name less brittle.


  Commit: 6d6537c6282de403545cb61623aec1cb51442478
      https://github.com/zopefoundation/ZEO/commit/6d6537c6282de403545cb61623aec1cb51442478
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-07 (Tue, 07 Jun 2016)

  Changed paths:
    M src/ZEO/tests/ConnectionTests.py

  Log Message:
  -----------
  got rid of an unnecessary wait_until

that was making a test failure hard to interpret.


  Commit: ec718f5a57599b7b8aa33b94804aceecefe6d2f9
      https://github.com/zopefoundation/ZEO/commit/ec718f5a57599b7b8aa33b94804aceecefe6d2f9
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-07 (Tue, 07 Jun 2016)

  Changed paths:
    M src/ZEO/tests/ConnectionTests.py

  Log Message:
  -----------
  Fixed insideous test failure

A test was counting on a cache being written to, but it wasn't because
the storage got an invalidation later than expected (on suitably slow
machines, like travis and an AWS dev machine of mine).


  Commit: 8e715a86c68771d96f3ae4dcbe7b830412de9f67
      https://github.com/zopefoundation/ZEO/commit/8e715a86c68771d96f3ae4dcbe7b830412de9f67
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M .travis.yml

  Log Message:
  -----------
  flail at osx travis support


  Commit: f66e1f6c14e333fc9274a0514eeb7de9ff34952f
      https://github.com/zopefoundation/ZEO/commit/f66e1f6c14e333fc9274a0514eeb7de9ff34952f
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M src/ZEO/tests/ConnectionTests.py

  Log Message:
  -----------
  Merge branch 'fix22' of github.com:zopefoundation/ZEO into fix22


  Commit: 283f6f54240a81f6853f196f53aa42a1cc835078
      https://github.com/zopefoundation/ZEO/commit/283f6f54240a81f6853f196f53aa42a1cc835078
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M src/ZEO/zrpc/server.py

  Log Message:
  -----------
  If bind fails, presumably because address already in use, retry

traviiiiiiiiis


  Commit: 2e176d80aab74947cbf869a95b7fbc8ca822a44a
      https://github.com/zopefoundation/ZEO/commit/2e176d80aab74947cbf869a95b7fbc8ca822a44a
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M .travis.yml

  Log Message:
  -----------
  revert osx support


  Commit: 17c463255544e8fc6f94cbe41ceb76851ba28b5c
      https://github.com/zopefoundation/ZEO/commit/17c463255544e8fc6f94cbe41ceb76851ba28b5c
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M .travis.yml

  Log Message:
  -----------
  reverting addition of osx didn't help

Adding osx back.

Also adding back -j99, in hopes of getting quicker runs and making
travis nor hate us so much.  But then, we'll probably get more
failures. Maybe the best option will be to just make test pass even
when starved. :(


  Commit: dfc334a059151cc99a4beeec24ccb918a9e4e4a3
      https://github.com/zopefoundation/ZEO/commit/dfc334a059151cc99a4beeec24ccb918a9e4e4a3
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M src/ZEO/zrpc/server.py

  Log Message:
  -----------
  fixed copy-paste error I should have tested locally before giving to travis


  Commit: 01294186b8c4778083b9b8317dd7a4a9bfa56da7
      https://github.com/zopefoundation/ZEO/commit/01294186b8c4778083b9b8317dd7a4a9bfa56da7
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M .travis.yml

  Log Message:
  -----------
  pypy3 is a no-no for ZEO until Python 3.3


  Commit: 9ad706320a11e6b884650c161441e0c03ad4cc26
      https://github.com/zopefoundation/ZEO/commit/9ad706320a11e6b884650c161441e0c03ad4cc26
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-08 (Wed, 08 Jun 2016)

  Changed paths:
    M src/ZEO/tests/forker.py

  Log Message:
  -----------
  wait much longer for servers to start cuz address already in use


  Commit: 6d05cc16d55840b3230db5fe3d6de9d124084f89
      https://github.com/zopefoundation/ZEO/commit/6d05cc16d55840b3230db5fe3d6de9d124084f89
  Author: Jim Fulton <jim at jimfulton.info>
  Date:   2016-06-09 (Thu, 09 Jun 2016)

  Changed paths:
    M .travis.yml
    M src/ZEO/tests/ConnectionTests.py
    M src/ZEO/tests/forker.py
    M src/ZEO/tests/testZEO.py
    M src/ZEO/zrpc/client.py
    M src/ZEO/zrpc/server.py

  Log Message:
  -----------
  Merge pull request #24 from zopefoundation/fix22

Fix #22


  Commit: e63c72758b643fc921724507a70b710a82b23212
      https://github.com/zopefoundation/ZEO/commit/e63c72758b643fc921724507a70b710a82b23212
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-09 (Thu, 09 Jun 2016)

  Changed paths:
    M src/ZEO/ClientStorage.py

  Log Message:
  -----------
  Fixed: cache lastTid wasn't set when doing full verification


  Commit: d957ff3e02e8f74b761ff1139bbac31f3b220061
      https://github.com/zopefoundation/ZEO/commit/d957ff3e02e8f74b761ff1139bbac31f3b220061
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-09 (Thu, 09 Jun 2016)

  Changed paths:
    M src/ZEO/tests/testZEO.py

  Log Message:
  -----------
  added a connection close

To avoid an error on tearDown.


  Commit: 20f81caa953a81c8e3a90d9b77a54a99d9113463
      https://github.com/zopefoundation/ZEO/commit/20f81caa953a81c8e3a90d9b77a54a99d9113463
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-09 (Thu, 09 Jun 2016)

  Changed paths:
    M src/ZEO/ClientStorage.py

  Log Message:
  -----------
  require the storage lock in lastTransaction.

This is required (or maybe strongly implied) by the IStorage interface.

Also, rearrange the order of operations in _process_invalidations.

Each of these changes avoid a potential race when a connection starts
a transaction while invalidateTransaction is being called. Basically,
we don't want a connection to get a lastTransaction corresponding to
invalidations it hasn't processed.

This neither fixes nor provokes any test failures. :) The need for
this change was discovered via code inspection. It's hard to see how
to test the race without getting being insanely whitebox.


  Commit: b793437a4f63aaf634d685539a3ac32895e7c728
      https://github.com/zopefoundation/ZEO/commit/b793437a4f63aaf634d685539a3ac32895e7c728
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-15 (Wed, 15 Jun 2016)

  Changed paths:
    M src/ZEO/ClientStorage.py

  Log Message:
  -----------
  remove a race when checking whether we need to update the cache tid after verification.


  Commit: 2952501bda3dffe98043bc7b4bda82a717312658
      https://github.com/zopefoundation/ZEO/commit/2952501bda3dffe98043bc7b4bda82a717312658
  Author: Jim Fulton <jim at jimfulton.info>
  Date:   2016-06-15 (Wed, 15 Jun 2016)

  Changed paths:
    M src/ZEO/ClientStorage.py
    M src/ZEO/tests/testZEO.py

  Log Message:
  -----------
  Merge pull request #25 from zopefoundation/zodb5

Zodb5


  Commit: 11b3091394e92fa769967c107446caf14ee385bf
      https://github.com/zopefoundation/ZEO/commit/11b3091394e92fa769967c107446caf14ee385bf
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-15 (Wed, 15 Jun 2016)

  Changed paths:
    M src/ZEO/tests/IterationTests.py
    M src/ZEO/tests/testZEO.py

  Log Message:
  -----------
  Changed tests to not depend on ZODB underware


  Commit: e6b136a4ad64cae0d7af5a826279c6ecb2d450d2
      https://github.com/zopefoundation/ZEO/commit/e6b136a4ad64cae0d7af5a826279c6ecb2d450d2
  Author: Jim Fulton <jim at jimfulton.info>
  Date:   2016-06-15 (Wed, 15 Jun 2016)

  Changed paths:
    M src/ZEO/tests/IterationTests.py
    M src/ZEO/tests/testZEO.py

  Log Message:
  -----------
  Merge pull request #26 from zopefoundation/zodb5

Changed tests to not depend on ZODB underware


  Commit: 7a1a3804f103550be7050e46f45e797836fd2439
      https://github.com/zopefoundation/ZEO/commit/7a1a3804f103550be7050e46f45e797836fd2439
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-15 (Wed, 15 Jun 2016)

  Changed paths:
    M CHANGES.rst
    M setup.py

  Log Message:
  -----------
  4.2.0


  Commit: 2f6919671e1299aab9edda7ae54573b728c58d5c
      https://github.com/zopefoundation/ZEO/commit/2f6919671e1299aab9edda7ae54573b728c58d5c
  Author: Tres Seaver <tseaver at palladion.com>
  Date:   2016-06-16 (Thu, 16 Jun 2016)

  Changed paths:
    M src/ZEO/ClientStorage.py

  Log Message:
  -----------
  Close opened-file leak in blob cache size check.

Closes #27.


  Commit: a7a5fab75ac6f8ef09d4948961176ee71669a676
      https://github.com/zopefoundation/ZEO/commit/a7a5fab75ac6f8ef09d4948961176ee71669a676
  Author: Jim Fulton <jim at jimfulton.info>
  Date:   2016-06-16 (Thu, 16 Jun 2016)

  Changed paths:
    M src/ZEO/ClientStorage.py

  Log Message:
  -----------
  Merge pull request #28 from zopefoundation/27-fix_file_leak

Close opened-file leak in blob cache size check.


  Commit: dcbeab41af6d8f3486b8c8aa56634133a3fe27ae
      https://github.com/zopefoundation/ZEO/commit/dcbeab41af6d8f3486b8c8aa56634133a3fe27ae
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-17 (Fri, 17 Jun 2016)

  Changed paths:
    M .travis.yml
    M CHANGES.rst
    M setup.py
    M src/ZEO/ClientStorage.py
    M src/ZEO/cache.py
    M src/ZEO/tests/ConnectionTests.py
    M src/ZEO/tests/IterationTests.py
    M src/ZEO/tests/forker.py
    M src/ZEO/tests/testZEO.py
    M src/ZEO/tests/test_cache.py
    M src/ZEO/zrpc/connection.py
    M src/ZEO/zrpc/server.py

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/master' into asyncio

Conflicts:
	.travis.yml
	setup.py
	src/ZEO/ClientStorage.py
	src/ZEO/cache.py
	src/ZEO/tests/testZEO.py
	src/ZEO/zrpc/client.py
	src/ZEO/zrpc/server.py

Also, removed load from the asyncion client implementation, since it
isn't used anymore.


  Commit: 8c3b6ee05702455c12a49af9163ab17cfd115fd1
      https://github.com/zopefoundation/ZEO/commit/8c3b6ee05702455c12a49af9163ab17cfd115fd1
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-17 (Fri, 17 Jun 2016)

  Changed paths:
    M src/ZEO/ClientStorage.py
    M src/ZEO/asyncio/client.py
    M src/ZEO/asyncio/tests.py
    M src/ZEO/tests/testZEO.py

  Log Message:
  -----------
  Oh git -- rest of last commit


  Commit: 5c7b71571dcedfd75d9d9cc4563e06c2482f91a3
      https://github.com/zopefoundation/ZEO/commit/5c7b71571dcedfd75d9d9cc4563e06c2482f91a3
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-17 (Fri, 17 Jun 2016)

  Changed paths:
    R src/ZEO/tests/registerDB.test

  Log Message:
  -----------
  Removed a test that was so white box (and brittle) it was blinding.

What it was testing is more sanely tested by the zeo-fan-out test.


  Commit: a94d9b50e4dffcc3f8a6c4fe5f4dc15a87ae41da
      https://github.com/zopefoundation/ZEO/commit/a94d9b50e4dffcc3f8a6c4fe5f4dc15a87ae41da
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-18 (Sat, 18 Jun 2016)

  Changed paths:
    M src/ZEO/tests/testZEO.py

  Log Message:
  -----------
  finish removing test


  Commit: e1e8558d81639c3d656874a3f74810eadb957b12
      https://github.com/zopefoundation/ZEO/commit/e1e8558d81639c3d656874a3f74810eadb957b12
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-19 (Sun, 19 Jun 2016)

  Changed paths:
    M CHANGES.rst
    M src/ZEO/ClientStorage.py
    M src/ZEO/StorageServer.py
    M src/ZEO/__init__.py
    A src/ZEO/acceptor.py
    A src/ZEO/asyncio/base.py
    M src/ZEO/asyncio/client.py
    A src/ZEO/asyncio/marshal.py
    A src/ZEO/asyncio/server.py
    M src/ZEO/asyncio/testing.py
    M src/ZEO/asyncio/tests.py
    R src/ZEO/auth/__init__.py
    R src/ZEO/auth/auth_digest.py
    R src/ZEO/auth/base.py
    R src/ZEO/auth/hmac.py
    M src/ZEO/component.xml
    M src/ZEO/interfaces.py
    M src/ZEO/monitor.py
    M src/ZEO/ordering.rst
    M src/ZEO/runzeo.py
    M src/ZEO/scripts/zeoserverlog.py
    A src/ZEO/shortrepr.py
    M src/ZEO/tests/ConnectionTests.py
    M src/ZEO/tests/drop_cache_rather_than_verify.txt
    M src/ZEO/tests/forker.py
    M src/ZEO/tests/protocols.test
    M src/ZEO/tests/servertesting.py
    M src/ZEO/tests/testConnection.py
    M src/ZEO/tests/testConversionSupport.py
    R src/ZEO/tests/testMonitor.py
    M src/ZEO/tests/testZEO.py
    M src/ZEO/tests/testZEO2.py
    R src/ZEO/tests/zeoserver.py
    R src/ZEO/zrpc/__init__.py
    R src/ZEO/zrpc/_hmac.py
    R src/ZEO/zrpc/connection.py
    R src/ZEO/zrpc/error.py
    R src/ZEO/zrpc/log.py
    R src/ZEO/zrpc/marshal.py
    R src/ZEO/zrpc/server.py
    R src/ZEO/zrpc/smac.py
    R src/ZEO/zrpc/trigger.py

  Log Message:
  -----------
  Implemented ZEO servers with asyncio.


  Commit: 594c8c9ba9b4be3945abfa6a83b2dcb2fa217846
      https://github.com/zopefoundation/ZEO/commit/594c8c9ba9b4be3945abfa6a83b2dcb2fa217846
  Author: Jim Fulton <jim at jimfulton.info>
  Date:   2016-06-19 (Sun, 19 Jun 2016)

  Changed paths:
    M CHANGES.rst
    M src/ZEO/ClientStorage.py
    M src/ZEO/StorageServer.py
    M src/ZEO/__init__.py
    A src/ZEO/acceptor.py
    A src/ZEO/asyncio/base.py
    M src/ZEO/asyncio/client.py
    A src/ZEO/asyncio/marshal.py
    A src/ZEO/asyncio/server.py
    M src/ZEO/asyncio/testing.py
    M src/ZEO/asyncio/tests.py
    R src/ZEO/auth/__init__.py
    R src/ZEO/auth/auth_digest.py
    R src/ZEO/auth/base.py
    R src/ZEO/auth/hmac.py
    M src/ZEO/component.xml
    M src/ZEO/interfaces.py
    M src/ZEO/monitor.py
    M src/ZEO/ordering.rst
    M src/ZEO/runzeo.py
    M src/ZEO/scripts/zeoserverlog.py
    A src/ZEO/shortrepr.py
    M src/ZEO/tests/ConnectionTests.py
    M src/ZEO/tests/drop_cache_rather_than_verify.txt
    M src/ZEO/tests/forker.py
    M src/ZEO/tests/protocols.test
    R src/ZEO/tests/registerDB.test
    M src/ZEO/tests/servertesting.py
    M src/ZEO/tests/testConnection.py
    M src/ZEO/tests/testConversionSupport.py
    R src/ZEO/tests/testMonitor.py
    M src/ZEO/tests/testZEO.py
    M src/ZEO/tests/testZEO2.py
    R src/ZEO/tests/zeoserver.py
    R src/ZEO/zrpc/__init__.py
    R src/ZEO/zrpc/_hmac.py
    R src/ZEO/zrpc/connection.py
    R src/ZEO/zrpc/error.py
    R src/ZEO/zrpc/log.py
    R src/ZEO/zrpc/marshal.py
    R src/ZEO/zrpc/server.py
    R src/ZEO/zrpc/smac.py
    R src/ZEO/zrpc/trigger.py

  Log Message:
  -----------
  Merge pull request #29 from zopefoundation/asyncio-server

Asyncio server


  Commit: 0783f6cd74e3b04f657cb86dc89bbdcfe1ea7624
      https://github.com/zopefoundation/ZEO/commit/0783f6cd74e3b04f657cb86dc89bbdcfe1ea7624
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-20 (Mon, 20 Jun 2016)

  Changed paths:
    M src/ZEO/acceptor.py
    M src/ZEO/tests/forker.py

  Log Message:
  -----------
  Use a very short loop timeout when testing

To allow test servers to shut down in a timely manner.

Also, some more debug logging.


  Commit: f640adb06b49cbe467609771b8c58705a950f5eb
      https://github.com/zopefoundation/ZEO/commit/f640adb06b49cbe467609771b8c58705a950f5eb
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-20 (Mon, 20 Jun 2016)

  Changed paths:
    M src/ZEO/StorageServer.py
    M src/ZEO/asyncio/server.py

  Log Message:
  -----------
  Mo debug logging


  Commit: 52baf1e60e2b21d009ec289b344505fef086606a
      https://github.com/zopefoundation/ZEO/commit/52baf1e60e2b21d009ec289b344505fef086606a
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-20 (Mon, 20 Jun 2016)

  Changed paths:
    M src/ZEO/ordering.rst

  Log Message:
  -----------
  Updated for recent decisions and clasrified some things.


  Commit: e3d21226d6e11ccfdba9d78e3812d4b4f677d61c
      https://github.com/zopefoundation/ZEO/commit/e3d21226d6e11ccfdba9d78e3812d4b4f677d61c
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-20 (Mon, 20 Jun 2016)

  Changed paths:
    M src/ZEO/ordering.rst

  Log Message:
  -----------
  Merge branch 'asyncio' of github.com:zopefoundation/ZEO into asyncio


  Commit: 8d7b1cebc28ca86015f900787b8b215db117c7b6
      https://github.com/zopefoundation/ZEO/commit/8d7b1cebc28ca86015f900787b8b215db117c7b6
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-20 (Mon, 20 Jun 2016)

  Changed paths:
    M src/ZEO/StorageServer.py

  Log Message:
  -----------
  Fixed: were sending out of date size info on commit

Because we were computing the size info in the commit callback, which
might be before before the inderlying data were committed.  This caused the computation to be wrong in some cases.

Instead we get and send the size information after committing.


  Commit: 197733f72cd8be2337f19cd25aba5481dea81bc8
      https://github.com/zopefoundation/ZEO/commit/197733f72cd8be2337f19cd25aba5481dea81bc8
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-20 (Mon, 20 Jun 2016)

  Changed paths:
    M setup.py

  Log Message:
  -----------
  Require ZODB 5


  Commit: 01cda6b4a0887223db6b547ccde1befc531ff161
      https://github.com/zopefoundation/ZEO/commit/01cda6b4a0887223db6b547ccde1befc531ff161
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-21 (Tue, 21 Jun 2016)

  Changed paths:
    M .travis.yml

  Log Message:
  -----------
  Run tests in parallel

So travis doesn't hate us.


  Commit: 838769661a79db31e10847e705676e05cd5cdb00
      https://github.com/zopefoundation/ZEO/commit/838769661a79db31e10847e705676e05cd5cdb00
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-22 (Wed, 22 Jun 2016)

  Changed paths:
    A doc/README.rst

  Log Message:
  -----------
  Major update, featuring SSL suppprt


  Commit: bfcd269590aa4bbce1a933565a9d006b400d9fce
      https://github.com/zopefoundation/ZEO/commit/bfcd269590aa4bbce1a933565a9d006b400d9fce
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-22 (Wed, 22 Jun 2016)

  Changed paths:
    M doc/README.rst

  Log Message:
  -----------
  It's soo hard to not put =s in zconfigs


  Commit: 7b41e01a382f2deb89c05c7a33f0e4fbba92d1d3
      https://github.com/zopefoundation/ZEO/commit/7b41e01a382f2deb89c05c7a33f0e4fbba92d1d3
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-22 (Wed, 22 Jun 2016)

  Changed paths:
    M doc/README.rst

  Log Message:
  -----------
  rst fix


  Commit: dc00be9003401427f7d5536c9a77bc6ffa5e07b3
      https://github.com/zopefoundation/ZEO/commit/dc00be9003401427f7d5536c9a77bc6ffa5e07b3
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-22 (Wed, 22 Jun 2016)

  Changed paths:
    M doc/README.rst

  Log Message:
  -----------
  emphasize need or import


  Commit: e22f0af67ffca3bcbe9abc1f70450f1041e3d622
      https://github.com/zopefoundation/ZEO/commit/e22f0af67ffca3bcbe9abc1f70450f1041e3d622
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-22 (Wed, 22 Jun 2016)

  Changed paths:
    A src/ZEO/zconfig.py

  Log Message:
  -----------
  First cut at code for setting up ssl contexts


  Commit: 2fdc0283a79bccc488cf19d5ac219f4bb9931256
      https://github.com/zopefoundation/ZEO/commit/2fdc0283a79bccc488cf19d5ac219f4bb9931256
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-23 (Thu, 23 Jun 2016)

  Changed paths:
    M doc/README.rst
    R doc/zeo.txt
    M setup.py
    M src/ZEO/ClientStorage.py
    M src/ZEO/StorageServer.py
    M src/ZEO/acceptor.py
    M src/ZEO/asyncio/client.py
    M src/ZEO/component.xml
    M src/ZEO/runzeo.py
    M src/ZEO/schema.xml
    A src/ZEO/server.xml
    A src/ZEO/tests/client.pem
    A src/ZEO/tests/client_key.pem
    M src/ZEO/tests/forker.py
    A src/ZEO/tests/server.pem
    A src/ZEO/tests/server_key.pem
    A src/ZEO/tests/serverpw.pem
    A src/ZEO/tests/serverpw_key.pem
    M src/ZEO/tests/testConfig.py
    M src/ZEO/zconfig.py

  Log Message:
  -----------
  initial ssl implementation (more tests coming)


  Commit: 9f97ea8d2c0f18f3e1c792f3488ee108df90e148
      https://github.com/zopefoundation/ZEO/commit/9f97ea8d2c0f18f3e1c792f3488ee108df90e148
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-24 (Fri, 24 Jun 2016)

  Changed paths:
    M src/ZEO/asyncio/client.py
    M src/ZEO/asyncio/testing.py
    M src/ZEO/tests/CommitLockTests.py
    M src/ZEO/tests/ConnectionTests.py
    M src/ZEO/tests/forker.py
    M src/ZEO/tests/testConfig.py
    M src/ZEO/tests/testConnection.py
    M src/ZEO/tests/testZEO.py
    A src/ZEO/tests/testssl.py

  Log Message:
  -----------
  Finished SSL tests


  Commit: d5f44000e09000d5b14ddcacb055fd8d61659a5e
      https://github.com/zopefoundation/ZEO/commit/d5f44000e09000d5b14ddcacb055fd8d61659a5e
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-24 (Fri, 24 Jun 2016)

  Changed paths:
    M doc/README.rst

  Log Message:
  -----------
  doc fixes


  Commit: fdfc92456e5f00e327dd0b91b6d3f96323576122
      https://github.com/zopefoundation/ZEO/commit/fdfc92456e5f00e327dd0b91b6d3f96323576122
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-24 (Fri, 24 Jun 2016)

  Changed paths:
    M src/ZEO/component.xml
    M src/ZEO/tests/testssl.py
    M src/ZEO/zconfig.py

  Log Message:
  -----------
  client check-hostname by default


  Commit: 5727c7a2e03f05c4ff82533f9e8a67b1ec78e93a
      https://github.com/zopefoundation/ZEO/commit/5727c7a2e03f05c4ff82533f9e8a67b1ec78e93a
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-24 (Fri, 24 Jun 2016)

  Changed paths:
    M src/ZEO/zconfig.py

  Log Message:
  -----------
  Added some verification flags suggested by Julien Muchembled


  Commit: da2e22814d94d458e797fbf8f3ab97e2dd37d8e6
      https://github.com/zopefoundation/ZEO/commit/da2e22814d94d458e797fbf8f3ab97e2dd37d8e6
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-26 (Sun, 26 Jun 2016)

  Changed paths:
    M src/ZEO/StorageServer.py
    R src/ZEO/acceptor.py
    A src/ZEO/asyncio/mtacceptor.py
    M src/ZEO/asyncio/server.py
    M src/ZEO/asyncio/testing.py
    M src/ZEO/tests/testZEO.py
    M src/ZEO/tests/testssl.py

  Log Message:
  -----------
  Refactord the server to be single-threaded to make SSL work on Linux

SSL didn't work on Linux because of an incompatibility between
non-blocking sockerts and SSL (which wasn't an issue on Mac OS X for
some reason).

I decided to try switching the server to use a single thread.  This
led to a performance improvement for zodbshootout and a lower-level
networking test.  I refactored the server listening logic and kept (at
least for now) both the multi-threaded and the single-threaded
version. (The multi-threaded logic can be used by changing a single
import. Tests pass with both.).

I'm a bit worried about the asyncio server. See

  http://bugs.python.org/issue27386

Tests appear to be less stable using asyncio.server on my Mac. :(


  Commit: daca97cb4292ad9a316a1924960a5fbf54d3622b
      https://github.com/zopefoundation/ZEO/commit/daca97cb4292ad9a316a1924960a5fbf54d3622b
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-26 (Sun, 26 Jun 2016)

  Changed paths:
    M src/ZEO/StorageServer.py
    M src/ZEO/asyncio/mtacceptor.py
    M src/ZEO/tests/testZEO.py

  Log Message:
  -----------
  Awful hack to run the server multi-threaded

Because running it single-threaded was unstable, at least in the tests.

See http://bugs.python.org/issue27392


  Commit: fddb6f8527d71e2a2a8ec09293541e4344c3b345
      https://github.com/zopefoundation/ZEO/commit/fddb6f8527d71e2a2a8ec09293541e4344c3b345
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-27 (Mon, 27 Jun 2016)

  Changed paths:
    M src/ZEO/ClientStorage.py

  Log Message:
  -----------
  Fix a race

Where we check for a disconnect, get disconnected and vote


  Commit: 31d41127d7828c0e1938c5de155f742931cc71a1
      https://github.com/zopefoundation/ZEO/commit/31d41127d7828c0e1938c5de155f742931cc71a1
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-27 (Mon, 27 Jun 2016)

  Changed paths:
    M src/ZEO/asyncio/server.py
    M src/ZEO/tests/forker.py

  Log Message:
  -----------
  Refactored the asyncio.Server-based server to be more careful about closing down

It appeared that some tests were failing because servers weren't
closing down.  Modified the test forker module and the server to be
more paranoid about closing the server.

This seems to have helped test stability. (Or maybe I accidentally
fixed something while flailing :)).


  Commit: 7cb6e87c9a5845bbe7a19ba532c340314826b171
      https://github.com/zopefoundation/ZEO/commit/7cb6e87c9a5845bbe7a19ba532c340314826b171
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-27 (Mon, 27 Jun 2016)

  Changed paths:
    M src/ZEO/tests/ConnectionTests.py

  Log Message:
  -----------
  Bind to port 0 some of the time to avoid get_port

And maybe avoid spurious test failures due to port contention.


  Commit: 5fcd383eceb45e410d4267c4997a82f42891512f
      https://github.com/zopefoundation/ZEO/commit/5fcd383eceb45e410d4267c4997a82f42891512f
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-27 (Mon, 27 Jun 2016)

  Changed paths:
    M src/ZEO/tests/testZEO.py

  Log Message:
  -----------
  Split up the misc ZEO test layer

- To make tests run faster with j99, and

- To isolate some tests that often seem to fail spuriously but pass
  when run by themselves.


  Commit: 8d59cba0beb639d7d5d780252c7442e9edd0ea56
      https://github.com/zopefoundation/ZEO/commit/8d59cba0beb639d7d5d780252c7442e9edd0ea56
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-27 (Mon, 27 Jun 2016)

  Changed paths:
    M src/ZEO/StorageServer.py
    M src/ZEO/asyncio/mtacceptor.py
    M src/ZEO/tests/testZEO.py

  Log Message:
  -----------
  Merge branch 'ssl' of github.com:zopefoundation/ZEO into ssl


  Commit: f6d06ae5998f1a7e21a332eff48dafa7c86b1abb
      https://github.com/zopefoundation/ZEO/commit/f6d06ae5998f1a7e21a332eff48dafa7c86b1abb
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-27 (Mon, 27 Jun 2016)

  Changed paths:
    M src/ZEO/StorageServer.py

  Log Message:
  -----------
  Switch back to using asyncio.Server to listen and run in 1 thread


  Commit: f15668b682dbcd935b8d8604583b41b58862951c
      https://github.com/zopefoundation/ZEO/commit/f15668b682dbcd935b8d8604583b41b58862951c
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-28 (Tue, 28 Jun 2016)

  Changed paths:
    M src/ZEO/__init__.py

  Log Message:
  -----------
  Make running server in thread vs process optional


  Commit: 04e491e943c559feb2f5214e627baaf03f2f6461
      https://github.com/zopefoundation/ZEO/commit/04e491e943c559feb2f5214e627baaf03f2f6461
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-28 (Tue, 28 Jun 2016)

  Changed paths:
    M src/ZEO/tests/new_addr.test

  Log Message:
  -----------
  Made new_addr.test more robust


  Commit: 0e06dc4481de1b9aaee8b3dfc99e4dc5fb7c4c98
      https://github.com/zopefoundation/ZEO/commit/0e06dc4481de1b9aaee8b3dfc99e4dc5fb7c4c98
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-28 (Tue, 28 Jun 2016)

  Changed paths:
    M src/ZEO/__init__.py

  Log Message:
  -----------
  doctring fix


  Commit: c429775884afffbea030b4f37370a169624125e8
      https://github.com/zopefoundation/ZEO/commit/c429775884afffbea030b4f37370a169624125e8
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-28 (Tue, 28 Jun 2016)

  Changed paths:
    M src/ZEO/tests/dynamic_server_ports.test

  Log Message:
  -----------
  Made dynamic_server_ports.test more robust


  Commit: f9c5c35e6ba5bdd1bbc343015d1febd9409faa6c
      https://github.com/zopefoundation/ZEO/commit/f9c5c35e6ba5bdd1bbc343015d1febd9409faa6c
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-28 (Tue, 28 Jun 2016)

  Changed paths:
    M src/ZEO/tests/forker.py

  Log Message:
  -----------
  removed some debugging code that shouldn't have been checked in.


  Commit: 11fdfd1e6840a0d8f88522388123629aea154a8a
      https://github.com/zopefoundation/ZEO/commit/11fdfd1e6840a0d8f88522388123629aea154a8a
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-28 (Tue, 28 Jun 2016)

  Changed paths:
    M src/ZEO/tests/ConnectionTests.py

  Log Message:
  -----------
  fixed a test race condition, I hope


  Commit: daed384f6e0f08d231974fbe78d3bba213488fab
      https://github.com/zopefoundation/ZEO/commit/daed384f6e0f08d231974fbe78d3bba213488fab
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-29 (Wed, 29 Jun 2016)

  Changed paths:
    A src/ZEO/asyncio/README.rst
    M src/ZEO/asyncio/mtacceptor.py

  Log Message:
  -----------
  docs


  Commit: 2afe16de552684d89603108c4948287abd54d561
      https://github.com/zopefoundation/ZEO/commit/2afe16de552684d89603108c4948287abd54d561
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-06-29 (Wed, 29 Jun 2016)

  Changed paths:
    M .travis.yml

  Log Message:
  -----------
  travis mac jobs have been queued for more than 3 hours.

I develop on a mac (for better or worse) so I know that mac tests are being run.


  Commit: 48defe9f6bd43b6165988df7c5d36bab6ed4b85f
      https://github.com/zopefoundation/ZEO/commit/48defe9f6bd43b6165988df7c5d36bab6ed4b85f
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-01 (Fri, 01 Jul 2016)

  Changed paths:
    M tox.ini

  Log Message:
  -----------
  Added the mock test dependency

It's a shame that Tox is unable (or unwilling) to get test
dependencies from package meta data. :(


  Commit: 062cbecc273b58ebbebd26eec1e8abae89795d0d
      https://github.com/zopefoundation/ZEO/commit/062cbecc273b58ebbebd26eec1e8abae89795d0d
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-01 (Fri, 01 Jul 2016)

  Changed paths:
    M src/ZEO/ClientStorage.py

  Log Message:
  -----------
  If vote fails with a conflict error, invalidate the corresponding cache entry

This used to happen via the server calling serialnos, but ZEO 5
servers no longer do this.  For the reason for invalidating the cache
entry, see the new comment.


  Commit: 5e6fd05f0ae58eb30179a9ec47c83c5a00bd35d6
      https://github.com/zopefoundation/ZEO/commit/5e6fd05f0ae58eb30179a9ec47c83c5a00bd35d6
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-01 (Fri, 01 Jul 2016)

  Changed paths:
    M src/ZEO/cache.py
    M src/ZEO/interfaces.py

  Log Message:
  -----------
  Make the cache thread safe again. :/

There are some cases where we want to touch the cache outside of the
I/O thread. Including:

- ClientStorage wants to to invalidata cache entries if it gets a
  conflict error in voting.

- loadBefore can probably be optimized by checking the cache in the
  client thread. (This will be safe for loadBefore, because the intent
  in practice is never to load current data.


  Commit: 020a9f8c671ff5af253e8924e2f012b9a891164b
      https://github.com/zopefoundation/ZEO/commit/020a9f8c671ff5af253e8924e2f012b9a891164b
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-01 (Fri, 01 Jul 2016)

  Changed paths:
    M src/ZEO/StorageServer.py
    M src/ZEO/asyncio/server.py
    M src/ZEO/asyncio/tests.py
    M src/ZEO/tests/forker.py
    M src/ZEO/tests/protocols.test
    M src/ZEO/tests/testZEO2.py

  Log Message:
  -----------
  Simplified error handling during vote

ZEO's vote error handling was extremely and weirdly complicated.
There's a hysterical explanation: Originally, the ZEO protocol was
synchronous and mirrored the storage API. That was too slow, so store
was made asynchronous.  But then there was no way to return new
serials, so we added a serialnos client API that the server called
during TPC. This was used both to serials and errors.  Later, tpc_vote
was added, which is a synchronous method. That would have been an
execllent opportunity to fix this, but noooooooooo.

I'd like the server vote logic to get simpler, and we also want to get rid
of serialnos, as it makes it hard to commit multiple transactions at
once on the client.  We can't get rid of serialnos now, because the
client needs to work with old servers.

Of course, nothing is easy. There was a special edge case where if the
client saw an unhandled conflict error, it would invalidate it's cache
for that object, allowing it to eventually recover when caches had
missed invalidations. This required a change to ClientStorage, which
meant that the server wouldn't work with older ZEO versions, which
meant that the server could only support protocol Z5, which in tern
affected protocol-negotiation tests....


  Commit: 2529c25b267b89db96e43703055305b0f77b8c71
      https://github.com/zopefoundation/ZEO/commit/2529c25b267b89db96e43703055305b0f77b8c71
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-02 (Sat, 02 Jul 2016)

  Changed paths:
    M src/ZEO/tests/ConnectionTests.py

  Log Message:
  -----------
  Removed a test that doesn't make sense any more

As it depends on getting serials from stpre or vote


  Commit: 8b4689d59cb14d52940d8e953a8d8ebce06154da
      https://github.com/zopefoundation/ZEO/commit/8b4689d59cb14d52940d8e953a8d8ebce06154da
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-02 (Sat, 02 Jul 2016)

  Changed paths:
    M src/ZEO/ClientStorage.py
    M src/ZEO/StorageServer.py
    M src/ZEO/TransactionBuffer.py
    M src/ZEO/tests/testZEO.py
    M src/ZEO/tests/testZEO2.py

  Log Message:
  -----------
  provide IMultiCommitStorage


  Commit: b76fea7d3dc2827d1288dee5b5ec0dd98c3d096f
      https://github.com/zopefoundation/ZEO/commit/b76fea7d3dc2827d1288dee5b5ec0dd98c3d096f
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-03 (Sun, 03 Jul 2016)

  Changed paths:
    M setup.py
    M src/ZEO/asyncio/__init__.py

  Log Message:
  -----------
  Use uvloop for >= Py3.5


  Commit: 8705602cf9b601792e0da2a481f2dc4fd483d03d
      https://github.com/zopefoundation/ZEO/commit/8705602cf9b601792e0da2a481f2dc4fd483d03d
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-03 (Sun, 03 Jul 2016)

  Changed paths:
    M .travis.yml
    M setup.py
    M src/ZEO/StorageServer.py
    M src/ZEO/asyncio/base.py
    M src/ZEO/asyncio/client.py
    M src/ZEO/asyncio/mtacceptor.py
    M src/ZEO/asyncio/server.py
    M src/ZEO/asyncio/testing.py
    M src/ZEO/asyncio/tests.py
    M src/ZEO/tests/protocols.test
    M src/ZEO/tests/testZEO.py
    M src/ZEO/tests/testZEO2.py

  Log Message:
  -----------
  Python 2.7 support!!!

And holy crap, uncommented some tests that I'd commented early while
working on asyncio and forgot to uncomment before checking in.


  Commit: 02bb6611597b603b5bf485803d33fe82141c5200
      https://github.com/zopefoundation/ZEO/commit/02bb6611597b603b5bf485803d33fe82141c5200
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-05 (Tue, 05 Jul 2016)

  Changed paths:
    M .travis.yml
    A doc/README.rst
    R doc/zeo.txt
    M setup.py
    M src/ZEO/ClientStorage.py
    M src/ZEO/StorageServer.py
    M src/ZEO/__init__.py
    R src/ZEO/acceptor.py
    A src/ZEO/asyncio/README.rst
    M src/ZEO/asyncio/client.py
    A src/ZEO/asyncio/mtacceptor.py
    M src/ZEO/asyncio/server.py
    M src/ZEO/asyncio/testing.py
    M src/ZEO/component.xml
    M src/ZEO/runzeo.py
    M src/ZEO/schema.xml
    A src/ZEO/server.xml
    M src/ZEO/tests/CommitLockTests.py
    M src/ZEO/tests/ConnectionTests.py
    A src/ZEO/tests/client.pem
    A src/ZEO/tests/client_key.pem
    M src/ZEO/tests/dynamic_server_ports.test
    M src/ZEO/tests/forker.py
    M src/ZEO/tests/new_addr.test
    A src/ZEO/tests/server.pem
    A src/ZEO/tests/server_key.pem
    A src/ZEO/tests/serverpw.pem
    A src/ZEO/tests/serverpw_key.pem
    M src/ZEO/tests/testConfig.py
    M src/ZEO/tests/testConnection.py
    M src/ZEO/tests/testZEO.py
    A src/ZEO/tests/testssl.py
    A src/ZEO/zconfig.py
    M tox.ini

  Log Message:
  -----------
  Merge branch 'ssl' into client-side-conflict-resolution

Conflicts:
	src/ZEO/ClientStorage.py


  Commit: 54c31e71bfa51085d6f093d6060bc901c5cdf555
      https://github.com/zopefoundation/ZEO/commit/54c31e71bfa51085d6f093d6060bc901c5cdf555
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-06 (Wed, 06 Jul 2016)

  Changed paths:
    M setup.py

  Log Message:
  -----------
  require newer ZODB needed for tests to pass


  Commit: 3d886d426243655b9f5a2528636e42b5c7662c19
      https://github.com/zopefoundation/ZEO/commit/3d886d426243655b9f5a2528636e42b5c7662c19
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-06 (Wed, 06 Jul 2016)

  Changed paths:
    M src/ZEO/asyncio/base.py

  Log Message:
  -----------
  Try to make sure TCP_NODELAY is set on INET sockets.

This is a nasty work around for: https://bugs.python.org/issue27456

It can't always be applied.  For example, it can't be applied to Linux
SSL sockets using the asyncio-provided loop.


  Commit: b8711838912041078cb0bd1706e57b5c4b678c9e
      https://github.com/zopefoundation/ZEO/commit/b8711838912041078cb0bd1706e57b5c4b678c9e
  Author: Jim Fulton <jim at jimfulton.info>
  Date:   2016-07-06 (Wed, 06 Jul 2016)

  Changed paths:
    M setup.py
    M src/ZEO/ClientStorage.py
    M src/ZEO/StorageServer.py
    M src/ZEO/TransactionBuffer.py
    M src/ZEO/asyncio/server.py
    M src/ZEO/asyncio/tests.py
    M src/ZEO/cache.py
    M src/ZEO/interfaces.py
    M src/ZEO/tests/ConnectionTests.py
    M src/ZEO/tests/forker.py
    M src/ZEO/tests/protocols.test
    M src/ZEO/tests/testZEO.py
    M src/ZEO/tests/testZEO2.py

  Log Message:
  -----------
  Merge pull request #35 from zopefoundation/implement-IMultiCommitStorage

Implement iMultiCommitStorage


  Commit: 2f0021335aabb9501a57b69e1c7ac5266de05624
      https://github.com/zopefoundation/ZEO/commit/2f0021335aabb9501a57b69e1c7ac5266de05624
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-06 (Wed, 06 Jul 2016)

  Changed paths:
    M setup.py
    M src/ZEO/ClientStorage.py
    M src/ZEO/StorageServer.py
    M src/ZEO/TransactionBuffer.py
    M src/ZEO/asyncio/server.py
    M src/ZEO/asyncio/tests.py
    M src/ZEO/cache.py
    M src/ZEO/interfaces.py
    M src/ZEO/tests/ConnectionTests.py
    M src/ZEO/tests/forker.py
    M src/ZEO/tests/protocols.test
    M src/ZEO/tests/testZEO.py
    M src/ZEO/tests/testZEO2.py

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/asyncio' into ssl

Conflicts:
	src/ZEO/ClientStorage.py


  Commit: 22615fb463cd57979a411cc636f30a7965886be4
      https://github.com/zopefoundation/ZEO/commit/22615fb463cd57979a411cc636f30a7965886be4
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-06 (Wed, 06 Jul 2016)

  Changed paths:
    M src/ZEO/StorageServer.py

  Log Message:
  -----------
  removed some unused code


  Commit: accd8c023b4c0aedbbd5d16faf63618095588351
      https://github.com/zopefoundation/ZEO/commit/accd8c023b4c0aedbbd5d16faf63618095588351
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-06 (Wed, 06 Jul 2016)

  Changed paths:
    M src/ZEO/StorageServer.py
    A src/ZEO/tests/test_client_side_conflict_resolution.py
    A src/ZEO/tests/utils.py

  Log Message:
  -----------
  server side


  Commit: dabcb601343869fabd1578ccef1b45e904e61a01
      https://github.com/zopefoundation/ZEO/commit/dabcb601343869fabd1578ccef1b45e904e61a01
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-06 (Wed, 06 Jul 2016)

  Changed paths:
    M src/ZEO/ClientStorage.py
    M src/ZEO/StorageServer.py
    M src/ZEO/TransactionBuffer.py
    M src/ZEO/runzeo.py
    M src/ZEO/server.xml
    M src/ZEO/tests/forker.py
    M src/ZEO/tests/test_client_side_conflict_resolution.py

  Log Message:
  -----------
  client side and server config and tweaks


  Commit: 4cdbf8b15796cfd2757e1737b63b55f412ba83d1
      https://github.com/zopefoundation/ZEO/commit/4cdbf8b15796cfd2757e1737b63b55f412ba83d1
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-06 (Wed, 06 Jul 2016)

  Changed paths:
    M src/ZEO/tests/CommitLockTests.py
    M src/ZEO/tests/ConnectionTests.py
    M src/ZEO/tests/testConversionSupport.py
    M src/ZEO/tests/testZEO.py

  Log Message:
  -----------
  fixed tests


  Commit: 92e49851c8f430c6ff72b4fb4a7e24e0ef391de3
      https://github.com/zopefoundation/ZEO/commit/92e49851c8f430c6ff72b4fb4a7e24e0ef391de3
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-07 (Thu, 07 Jul 2016)

  Changed paths:
    M src/ZEO/tests/forker.py
    M src/ZEO/tests/testZEO.py

  Log Message:
  -----------
  run pre-defined conflict-resolution tests with client-side conflict resolution


  Commit: af1e20040a4609510200eb2f204f74aa9bdd09ae
      https://github.com/zopefoundation/ZEO/commit/af1e20040a4609510200eb2f204f74aa9bdd09ae
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-07 (Thu, 07 Jul 2016)

  Changed paths:
    M src/ZEO/asyncio/base.py

  Log Message:
  -----------
  Cleaner fix.

I'd missed that you could get a transport's socket using get_extra_info.


  Commit: 1eb086dae13b17304f5d4b0614872be3bb4aa447
      https://github.com/zopefoundation/ZEO/commit/1eb086dae13b17304f5d4b0614872be3bb4aa447
  Author: Jim Fulton <jim at jimfulton.info>
  Date:   2016-07-07 (Thu, 07 Jul 2016)

  Changed paths:
    M .travis.yml
    A doc/README.rst
    R doc/zeo.txt
    M setup.py
    M src/ZEO/ClientStorage.py
    M src/ZEO/StorageServer.py
    M src/ZEO/__init__.py
    R src/ZEO/acceptor.py
    A src/ZEO/asyncio/README.rst
    M src/ZEO/asyncio/client.py
    A src/ZEO/asyncio/mtacceptor.py
    M src/ZEO/asyncio/server.py
    M src/ZEO/asyncio/testing.py
    M src/ZEO/component.xml
    M src/ZEO/runzeo.py
    M src/ZEO/schema.xml
    A src/ZEO/server.xml
    M src/ZEO/tests/CommitLockTests.py
    M src/ZEO/tests/ConnectionTests.py
    A src/ZEO/tests/client.pem
    A src/ZEO/tests/client_key.pem
    M src/ZEO/tests/dynamic_server_ports.test
    M src/ZEO/tests/forker.py
    M src/ZEO/tests/new_addr.test
    A src/ZEO/tests/server.pem
    A src/ZEO/tests/server_key.pem
    A src/ZEO/tests/serverpw.pem
    A src/ZEO/tests/serverpw_key.pem
    M src/ZEO/tests/testConfig.py
    M src/ZEO/tests/testConnection.py
    M src/ZEO/tests/testZEO.py
    A src/ZEO/tests/testssl.py
    A src/ZEO/zconfig.py
    M tox.ini

  Log Message:
  -----------
  Merge pull request #32 from zopefoundation/ssl

Add SSL support +

It's sad no reviewer, but I suppose it can be reviewed even after a merge.


  Commit: 5a5320e625fc6899fb3cfcf8d986c13f54848c94
      https://github.com/zopefoundation/ZEO/commit/5a5320e625fc6899fb3cfcf8d986c13f54848c94
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-07 (Thu, 07 Jul 2016)

  Changed paths:
    M setup.py
    M src/ZEO/ClientStorage.py
    M src/ZEO/StorageServer.py

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/asyncio' into client-side-conflict-resolution

Conflicts:
	src/ZEO/ClientStorage.py
	src/ZEO/StorageServer.py


  Commit: 10d7f9ffa115ece8d94e51bbddc601a8d670a69e
      https://github.com/zopefoundation/ZEO/commit/10d7f9ffa115ece8d94e51bbddc601a8d670a69e
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-07 (Thu, 07 Jul 2016)

  Changed paths:
    M src/ZEO/tests/forker.py

  Log Message:
  -----------
  fixed a waitpid call (unrelated to rest of branch, sorry)


  Commit: 70f070e80f5290cf9ba28dc90d96bc27579b98c7
      https://github.com/zopefoundation/ZEO/commit/70f070e80f5290cf9ba28dc90d96bc27579b98c7
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-07 (Thu, 07 Jul 2016)

  Changed paths:
    M src/ZEO/asyncio/testing.py

  Log Message:
  -----------
  need new transport extra

I'm losing my love of stubs. :(


  Commit: fc41070f655a2e77e7e03857eaf1a370a319c18c
      https://github.com/zopefoundation/ZEO/commit/fc41070f655a2e77e7e03857eaf1a370a319c18c
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-07 (Thu, 07 Jul 2016)

  Changed paths:
    M setup.py
    M src/ZEO/ClientStorage.py
    M src/ZEO/StorageServer.py
    M src/ZEO/TransactionBuffer.py
    M src/ZEO/asyncio/server.py
    M src/ZEO/asyncio/tests.py
    M src/ZEO/cache.py
    M src/ZEO/interfaces.py
    M src/ZEO/tests/ConnectionTests.py
    M src/ZEO/tests/forker.py
    M src/ZEO/tests/protocols.test
    M src/ZEO/tests/testZEO.py
    M src/ZEO/tests/testZEO2.py

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/asyncio' into TCP_NODELAY


  Commit: a0fa2fe71d22bc6af2c9b93bfe15847be06d0fe1
      https://github.com/zopefoundation/ZEO/commit/a0fa2fe71d22bc6af2c9b93bfe15847be06d0fe1
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-07 (Thu, 07 Jul 2016)

  Changed paths:
    M src/ZEO/tests/InvalidationTests.py

  Log Message:
  -----------
  Work around bugs in DB root-object initialization

See: https://github.com/zopefoundation/ZODB/issues/84


  Commit: 6fbe47ebe5385732c4d516b339d4f36ad0f2efac
      https://github.com/zopefoundation/ZEO/commit/6fbe47ebe5385732c4d516b339d4f36ad0f2efac
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-07 (Thu, 07 Jul 2016)

  Changed paths:
    M setup.py
    M src/ZEO/ClientStorage.py
    M src/ZEO/StorageServer.py
    M src/ZEO/TransactionBuffer.py
    M src/ZEO/asyncio/server.py
    M src/ZEO/asyncio/tests.py
    M src/ZEO/cache.py
    M src/ZEO/interfaces.py
    M src/ZEO/tests/ConnectionTests.py
    M src/ZEO/tests/forker.py
    M src/ZEO/tests/protocols.test
    M src/ZEO/tests/testZEO.py
    M src/ZEO/tests/testZEO2.py

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/asyncio' into py2

Conflicts:
	setup.py
	src/ZEO/tests/protocols.test


  Commit: bff1a14a161deb4a1b53a8d2e48643baddf5dae7
      https://github.com/zopefoundation/ZEO/commit/bff1a14a161deb4a1b53a8d2e48643baddf5dae7
  Author: Jim Fulton <jim at jimfulton.info>
  Date:   2016-07-07 (Thu, 07 Jul 2016)

  Changed paths:
    M src/ZEO/asyncio/base.py
    M src/ZEO/asyncio/testing.py
    M src/ZEO/tests/InvalidationTests.py

  Log Message:
  -----------
  Merge pull request #37 from zopefoundation/TCP_NODELAY

TCP_NODELAY


  Commit: e5653d437904db4ab5809cef5257541677800c89
      https://github.com/zopefoundation/ZEO/commit/e5653d437904db4ab5809cef5257541677800c89
  Author: Jim Fulton <jim at jimfulton.info>
  Date:   2016-07-07 (Thu, 07 Jul 2016)

  Changed paths:
    M src/ZEO/ClientStorage.py
    M src/ZEO/StorageServer.py
    M src/ZEO/TransactionBuffer.py
    M src/ZEO/runzeo.py
    M src/ZEO/server.xml
    M src/ZEO/tests/CommitLockTests.py
    M src/ZEO/tests/ConnectionTests.py
    M src/ZEO/tests/forker.py
    M src/ZEO/tests/testConversionSupport.py
    M src/ZEO/tests/testZEO.py
    A src/ZEO/tests/test_client_side_conflict_resolution.py
    A src/ZEO/tests/utils.py

  Log Message:
  -----------
  Merge pull request #38 from zopefoundation/client-side-conflict-resolution

Client side conflict resolution


  Commit: e8bec203c38430de3809730901e2698595be6153
      https://github.com/zopefoundation/ZEO/commit/e8bec203c38430de3809730901e2698595be6153
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-07 (Thu, 07 Jul 2016)

  Changed paths:
    M src/ZEO/ClientStorage.py
    M src/ZEO/StorageServer.py
    M src/ZEO/TransactionBuffer.py
    M src/ZEO/asyncio/base.py
    M src/ZEO/asyncio/server.py
    M src/ZEO/asyncio/testing.py
    M src/ZEO/asyncio/tests.py
    M src/ZEO/cache.py
    M src/ZEO/interfaces.py
    M src/ZEO/runzeo.py
    M src/ZEO/server.xml
    M src/ZEO/tests/CommitLockTests.py
    M src/ZEO/tests/ConnectionTests.py
    M src/ZEO/tests/InvalidationTests.py
    M src/ZEO/tests/forker.py
    M src/ZEO/tests/protocols.test
    M src/ZEO/tests/testConversionSupport.py
    M src/ZEO/tests/testZEO.py
    M src/ZEO/tests/testZEO2.py
    A src/ZEO/tests/test_client_side_conflict_resolution.py
    A src/ZEO/tests/utils.py

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/asyncio' into uvloop

Conflicts:
	setup.py


  Commit: 29bf7bc0e97dcbfc99c882c47af15cf0cf1d94c1
      https://github.com/zopefoundation/ZEO/commit/29bf7bc0e97dcbfc99c882c47af15cf0cf1d94c1
  Author: Jim Fulton <jim at jimfulton.info>
  Date:   2016-07-07 (Thu, 07 Jul 2016)

  Changed paths:
    M setup.py
    M src/ZEO/asyncio/__init__.py

  Log Message:
  -----------
  Merge pull request #39 from zopefoundation/uvloop

Uvloop


  Commit: c8873c33f005ab154c15d3a5308d7781c53b6011
      https://github.com/zopefoundation/ZEO/commit/c8873c33f005ab154c15d3a5308d7781c53b6011
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-07 (Thu, 07 Jul 2016)

  Changed paths:
    M setup.py
    M src/ZEO/ClientStorage.py
    M src/ZEO/StorageServer.py
    M src/ZEO/TransactionBuffer.py
    M src/ZEO/asyncio/__init__.py
    M src/ZEO/asyncio/base.py
    M src/ZEO/asyncio/testing.py
    M src/ZEO/runzeo.py
    M src/ZEO/server.xml
    M src/ZEO/tests/CommitLockTests.py
    M src/ZEO/tests/ConnectionTests.py
    M src/ZEO/tests/InvalidationTests.py
    M src/ZEO/tests/forker.py
    M src/ZEO/tests/testConversionSupport.py
    M src/ZEO/tests/testZEO.py
    A src/ZEO/tests/test_client_side_conflict_resolution.py
    A src/ZEO/tests/utils.py

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/asyncio' into py2

Conflicts:
	setup.py
	src/ZEO/asyncio/base.py


  Commit: d9b4573315ff39339eb7c5347739597eabf220f5
      https://github.com/zopefoundation/ZEO/commit/d9b4573315ff39339eb7c5347739597eabf220f5
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-07 (Thu, 07 Jul 2016)

  Changed paths:
    M src/ZEO/tests/testZEO.py

  Log Message:
  -----------
  Update for new commit protocol


  Commit: b86957c1f499a448b4e8ebd39fc356b9f7496dd7
      https://github.com/zopefoundation/ZEO/commit/b86957c1f499a448b4e8ebd39fc356b9f7496dd7
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-07 (Thu, 07 Jul 2016)

  Changed paths:
    M src/ZEO/tests/testZEO2.py

  Log Message:
  -----------
  Python 6ify


  Commit: 7de0a7870f5ed2afa07eaefce7b13fbf26ce6dc7
      https://github.com/zopefoundation/ZEO/commit/7de0a7870f5ed2afa07eaefce7b13fbf26ce6dc7
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-07 (Thu, 07 Jul 2016)

  Changed paths:
    M tox.ini

  Log Message:
  -----------
  include python 2.7


  Commit: c0b96879cf65d7fa89e09e258c2d07b92f7e2811
      https://github.com/zopefoundation/ZEO/commit/c0b96879cf65d7fa89e09e258c2d07b92f7e2811
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-07 (Thu, 07 Jul 2016)

  Changed paths:
    M src/ZEO/tests/testZEO.py

  Log Message:
  -----------
  Stop using get_port in another place, for faster more reliable tests


  Commit: 9b421915c74433dfd743de619d66d20e7c28a846
      https://github.com/zopefoundation/ZEO/commit/9b421915c74433dfd743de619d66d20e7c28a846
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-07 (Thu, 07 Jul 2016)

  Changed paths:
    M src/ZEO/tests/testConfig.py
    M src/ZEO/tests/testssl.py

  Log Message:
  -----------
  Mock asyncio in mockiavellian tests


  Commit: edb198a0a6cf5d4ba161656ecbc24237b6cf6d24
      https://github.com/zopefoundation/ZEO/commit/edb198a0a6cf5d4ba161656ecbc24237b6cf6d24
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-07 (Thu, 07 Jul 2016)

  Changed paths:
    M src/ZEO/asyncio/server.py

  Log Message:
  -----------
  fix asyncio.async call


  Commit: b4ecd30b3c0aeedeec3e98e65ae00705a542ca6c
      https://github.com/zopefoundation/ZEO/commit/b4ecd30b3c0aeedeec3e98e65ae00705a542ca6c
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-07 (Thu, 07 Jul 2016)

  Changed paths:
    M src/ZEO/asyncio/server.py

  Log Message:
  -----------
  simplify acceptor setup logic

After reading run_until_complete doc :)


  Commit: 88c596316ff9ba00d2d4563f871dc3866611aa5a
      https://github.com/zopefoundation/ZEO/commit/88c596316ff9ba00d2d4563f871dc3866611aa5a
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-07 (Thu, 07 Jul 2016)

  Changed paths:
    M src/ZEO/asyncio/client.py
    M src/ZEO/asyncio/server.py

  Log Message:
  -----------
  No need to call set_event_loop, as we carry loops around


  Commit: 694ff8e754127a7da29067f5add9a596d0980134
      https://github.com/zopefoundation/ZEO/commit/694ff8e754127a7da29067f5add9a596d0980134
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-07 (Thu, 07 Jul 2016)

  Changed paths:
    M src/ZEO/tests/forker.py

  Log Message:
  -----------
  better debugging of server startup.


  Commit: 9b8cfe9ebbd58a2c5411ca7907f2d3f6e933d937
      https://github.com/zopefoundation/ZEO/commit/9b8cfe9ebbd58a2c5411ca7907f2d3f6e933d937
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-07 (Thu, 07 Jul 2016)

  Changed paths:
    M setup.py
    M src/ZEO/asyncio/__init__.py

  Log Message:
  -----------
  Give up pn uvloop, for now. whimper


  Commit: 1ce6fd78c8eff4b85aea3156432a6102cf06801c
      https://github.com/zopefoundation/ZEO/commit/1ce6fd78c8eff4b85aea3156432a6102cf06801c
  Author: Jim Fulton <jim at jimfulton.info>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M .travis.yml
    M setup.py
    M src/ZEO/StorageServer.py
    M src/ZEO/asyncio/__init__.py
    M src/ZEO/asyncio/base.py
    M src/ZEO/asyncio/client.py
    M src/ZEO/asyncio/mtacceptor.py
    M src/ZEO/asyncio/server.py
    M src/ZEO/asyncio/testing.py
    M src/ZEO/asyncio/tests.py
    M src/ZEO/tests/forker.py
    M src/ZEO/tests/protocols.test
    M src/ZEO/tests/testConfig.py
    M src/ZEO/tests/testZEO.py
    M src/ZEO/tests/testZEO2.py
    M src/ZEO/tests/testssl.py
    M tox.ini

  Log Message:
  -----------
  Merge pull request #41 from zopefoundation/py2

Python 2 support


  Commit: 7e958f5b3b7346cad86d93ff3ec84aad032349b7
      https://github.com/zopefoundation/ZEO/commit/7e958f5b3b7346cad86d93ff3ec84aad032349b7
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M src/ZEO/tests/ConnectionTests.py
    M src/ZEO/tests/client-config.test
    M src/ZEO/tests/forker.py
    M src/ZEO/tests/testZEO.py
    M src/ZEO/tests/testssl.py

  Log Message:
  -----------
  Use 127.0.0.1 and port 0 in more places


  Commit: 73524dfe7cff33c8666d3a5ad8741b15d03adbc3
      https://github.com/zopefoundation/ZEO/commit/73524dfe7cff33c8666d3a5ad8741b15d03adbc3
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M src/ZEO/tests/forker.py
    M src/ZEO/tests/testZEO.py

  Log Message:
  -----------
  Use 127.0.0.1 and port 0 in more places


  Commit: e605c9758ca621ab70bd672bbd93c0052efebc48
      https://github.com/zopefoundation/ZEO/commit/e605c9758ca621ab70bd672bbd93c0052efebc48
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M README.rst

  Log Message:
  -----------
  add client-conflict-resolution to doc

And move this file to the top of the project, as there was a similar
version ther.


  Commit: ee04b9918b8f4dd6edad3bc6d4060510a469920b
      https://github.com/zopefoundation/ZEO/commit/ee04b9918b8f4dd6edad3bc6d4060510a469920b
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    R doc/README.rst

  Log Message:
  -----------
  Moved to top to replace an almost identical version


  Commit: 90ed6ec959a22c3a1b492b79140f03889b0b7e81
      https://github.com/zopefoundation/ZEO/commit/90ed6ec959a22c3a1b492b79140f03889b0b7e81
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M CHANGES.rst

  Log Message:
  -----------
  5.0.0a0


  Commit: d2095794acbfa2bc767052da833a5db7c4c5bb2c
      https://github.com/zopefoundation/ZEO/commit/d2095794acbfa2bc767052da833a5db7c4c5bb2c
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M setup.py

  Log Message:
  -----------
  fixed and simplified classifier handling


  Commit: 53b465a2f1f1c226ea64bdb6a37e2f20053bdc40
      https://github.com/zopefoundation/ZEO/commit/53b465a2f1f1c226ea64bdb6a37e2f20053bdc40
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M src/ZEO/StorageServer.py
    M src/ZEO/asyncio/mtacceptor.py
    M src/ZEO/tests/testConversionSupport.py
    M src/ZEO/tests/testZEO2.py

  Log Message:
  -----------
  Simplify server commit-lock management


  Commit: 2aa6f3d8ef3bae7236c39e8f48dccb78c11359d0
      https://github.com/zopefoundation/ZEO/commit/2aa6f3d8ef3bae7236c39e8f48dccb78c11359d0
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M src/ZEO/StorageServer.py

  Log Message:
  -----------
  removed unused attr


  Commit: 9ef630e2ec16fd7e7077dccc4dec6efaf5875cf8
      https://github.com/zopefoundation/ZEO/commit/9ef630e2ec16fd7e7077dccc4dec6efaf5875cf8
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-08 (Fri, 08 Jul 2016)

  Changed paths:
    M src/ZEO/tests/testZEO2.py

  Log Message:
  -----------
  fixed test


  Commit: ab158e86d1ce73f4a9e0a6905fd5c9b48c8f2b33
      https://github.com/zopefoundation/ZEO/commit/ab158e86d1ce73f4a9e0a6905fd5c9b48c8f2b33
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-09 (Sat, 09 Jul 2016)

  Changed paths:
    M src/ZEO/asyncio/server.py

  Log Message:
  -----------
  Handle setting results on Delays who'd protocol were never set

Because races


  Commit: d4a4a7665c98ae2b04d0325675505ed3dd6cb991
      https://github.com/zopefoundation/ZEO/commit/d4a4a7665c98ae2b04d0325675505ed3dd6cb991
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-09 (Sat, 09 Jul 2016)

  Changed paths:
    M src/ZEO/tests/forker.py

  Log Message:
  -----------
  Allow control over server debug logging via an environment variable


  Commit: f4bcea77162efd9306003a872ec5ad448e2463c1
      https://github.com/zopefoundation/ZEO/commit/f4bcea77162efd9306003a872ec5ad448e2463c1
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-09 (Sat, 09 Jul 2016)

  Changed paths:
    M src/ZEO/StorageServer.py
    M src/ZEO/asyncio/mtacceptor.py
    M src/ZEO/tests/testConversionSupport.py
    M src/ZEO/tests/testZEO2.py

  Log Message:
  -----------
  Internal refactoring of the commit lock manager

In working on the next iteration of the lock manager to provide
object-level locking, I realized:

- It was saner let all waiting try to get locks when locks are
  released, at least in the more complicated logic to follow.

- We really do almost certianly want a multi-threaded server, even if
  it doesn't run faster (still an open question), because otherwise,
  big commits will completely block loads.

- We don't really want to hold the lock-manager lock while calling the
  callback.  Again, this really only matters if we have a
  multi-threaded server, but it also feels like a matter of hygiene :)

I decided to rework this branch:

- Don't hold lock-manager internal lock when calling the callnack.

- When releasing the lock, use call_soon_threadsafe to let all waiting
  have a chance to get the lock.

- A little bit of factoring to DRY. (This factoring will be much more
  useful in the follow-on branch.

This rework restores the workability of the thread-per-client model.


  Commit: 37c667891267415a88eb16fe9490b04f2233fa4d
      https://github.com/zopefoundation/ZEO/commit/37c667891267415a88eb16fe9490b04f2233fa4d
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-14 (Thu, 14 Jul 2016)

  Changed paths:
    M src/ZEO/asyncio/client.py
    M src/ZEO/asyncio/tests.py

  Log Message:
  -----------
  When calling loadBefore, collapse outstanding calls.

IOW, if there's an outstanding call is made for a given oid and tid,
and another call is made, the second call will use the result of the
outstanding call, rather than making another call to the server.


  Commit: 1a38d378c81d0db07f377db2350702332436fb08
      https://github.com/zopefoundation/ZEO/commit/1a38d378c81d0db07f377db2350702332436fb08
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-14 (Thu, 14 Jul 2016)

  Changed paths:
    M src/ZEO/ClientStorage.py
    M src/ZEO/asyncio/client.py
    M src/ZEO/tests/testZEO2.py

  Log Message:
  -----------
  Added a prefetch method.


  Commit: bcf292e5f8d0e2460a57beec9439395d1105e6b8
      https://github.com/zopefoundation/ZEO/commit/bcf292e5f8d0e2460a57beec9439395d1105e6b8
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-16 (Sat, 16 Jul 2016)

  Changed paths:
    M src/ZEO/tests/testssl.py

  Log Message:
  -----------
  allow client cert paths to be passed into client_ssl

Also added a comment with a reminder for how to create self-signed certs.

Useful for playing with ssl configurations.


  Commit: b0366fa274ba9cc71de3725e39cd19e6c8082c75
      https://github.com/zopefoundation/ZEO/commit/b0366fa274ba9cc71de3725e39cd19e6c8082c75
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-16 (Sat, 16 Jul 2016)

  Changed paths:
    M src/ZEO/StorageServer.py

  Log Message:
  -----------
  Save server ssl parameter for inspection in dev

Useful for playing with ssl configurations.


  Commit: 3c52590957677e339cd4710c1543d9b680ac6446
      https://github.com/zopefoundation/ZEO/commit/3c52590957677e339cd4710c1543d9b680ac6446
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-16 (Sat, 16 Jul 2016)

  Changed paths:
    M src/ZEO/tests/forker.py

  Log Message:
  -----------
  Save created server as global when running test/dev servers

Useful for playing with ssl configurations and generally for being
able to inspect server state in development and testing.

This only makes sense when running the server in a thread, of course.


  Commit: b6df02cbcd80d5af1cd0407bc29b7941a76b7f44
      https://github.com/zopefoundation/ZEO/commit/b6df02cbcd80d5af1cd0407bc29b7941a76b7f44
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-16 (Sat, 16 Jul 2016)

  Changed paths:
    M src/ZEO/tests/testZEO2.py

  Log Message:
  -----------
  make sure I lose a race


  Commit: db9d3da56572f128325a296859d9316445d24c46
      https://github.com/zopefoundation/ZEO/commit/db9d3da56572f128325a296859d9316445d24c46
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-16 (Sat, 16 Jul 2016)

  Changed paths:
    M src/ZEO/asyncio/tests.py

  Log Message:
  -----------
  removed uneeded import


  Commit: f96776b396c9ee2af33319318a8d7beee4ca2286
      https://github.com/zopefoundation/ZEO/commit/f96776b396c9ee2af33319318a8d7beee4ca2286
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-16 (Sat, 16 Jul 2016)

  Changed paths:
    M src/ZEO/asyncio/client.py

  Log Message:
  -----------
  Changed load_before and preftech to use generators rather than callbacks


  Commit: 7cdcc01348bf6066b1dd6b13ee36e3451d4b299f
      https://github.com/zopefoundation/ZEO/commit/7cdcc01348bf6066b1dd6b13ee36e3451d4b299f
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-17 (Sun, 17 Jul 2016)

  Changed paths:
    M src/ZEO/asyncio/client.py
    M src/ZEO/asyncio/tests.py

  Log Message:
  -----------
  Updated connect/verify to use generators


  Commit: 09d8df62e4e781b293eeedd8d9ecc61a5faa5e51
      https://github.com/zopefoundation/ZEO/commit/09d8df62e4e781b293eeedd8d9ecc61a5faa5e51
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-17 (Sun, 17 Jul 2016)

  Changed paths:
    M src/ZEO/asyncio/client.py

  Log Message:
  -----------
  Converted the last promise to a generator

Bye bye Promise.

Also fixed a comment.


  Commit: 508ba1389434e9416c382cf866f517c57f164c74
      https://github.com/zopefoundation/ZEO/commit/508ba1389434e9416c382cf866f517c57f164c74
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-18 (Mon, 18 Jul 2016)

  Changed paths:
    M src/ZEO/StorageServer.py

  Log Message:
  -----------
  Extension methods aren't supported sny more


  Commit: 80f6a4bebf9363e0ffe1b9010b32e574c51c4234
      https://github.com/zopefoundation/ZEO/commit/80f6a4bebf9363e0ffe1b9010b32e574c51c4234
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-18 (Mon, 18 Jul 2016)

  Changed paths:
    M src/ZEO/ClientStorage.py
    M src/ZEO/StorageServer.py
    M src/ZEO/interfaces.py

  Log Message:
  -----------
  wish to be rid of getTid


  Commit: dd2d97cd059036205b11712304d467ad1136a62e
      https://github.com/zopefoundation/ZEO/commit/dd2d97cd059036205b11712304d467ad1136a62e
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-18 (Mon, 18 Jul 2016)

  Changed paths:
    M src/ZEO/StorageServer.py

  Log Message:
  -----------
  load and loadEX are no more


  Commit: 031ab976c4ed7497963cf9929a48d482e9d06e5c
      https://github.com/zopefoundation/ZEO/commit/031ab976c4ed7497963cf9929a48d482e9d06e5c
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-18 (Mon, 18 Jul 2016)

  Changed paths:
    M CHANGES.rst
    M src/ZEO/tests/testssl.py
    M src/ZEO/zconfig.py

  Log Message:
  -----------
  Fixed: SSL clients of servers with signed certs didn't load default
certs and were unable to connect.


  Commit: 745c1b151ce6bc01e66244d16044a0731a1a1c5d
      https://github.com/zopefoundation/ZEO/commit/745c1b151ce6bc01e66244d16044a0731a1a1c5d
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-18 (Mon, 18 Jul 2016)

  Changed paths:
    M src/ZEO/asyncio/mtacceptor.py

  Log Message:
  -----------
  Use newer asyncio to connect accepted sockets (if available).

The new api will be in Python 3.6, and hopefullt, in uvloop soon.

When binding to port 0, make sure we set our address to a 2-tuple, because
IPV6 4-tuples confuse ClientStorage.


  Commit: 00eb2075b493daa43b8eb512408959a8c9ef6904
      https://github.com/zopefoundation/ZEO/commit/00eb2075b493daa43b8eb512408959a8c9ef6904
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-18 (Mon, 18 Jul 2016)

  Changed paths:
    M src/ZEO/StorageServer.py

  Log Message:
  -----------
  Provide an environment variable to allow mtacceptor to be used

Mainly for tests.

Also, add a constructor option to use a custom acceptor.


  Commit: b971495a7dfcb694a82e8d1113a65e4784be00b7
      https://github.com/zopefoundation/ZEO/commit/b971495a7dfcb694a82e8d1113a65e4784be00b7
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-18 (Mon, 18 Jul 2016)

  Changed paths:
    M .travis.yml

  Log Message:
  -----------
  Test with mtacceptor too on Python 3.

(There seems to be a resource issue with Python 2, that I might run
down some time.)


  Commit: 671a5fb85700c5c4e34414af3ec4f07bdc11e9c6
      https://github.com/zopefoundation/ZEO/commit/671a5fb85700c5c4e34414af3ec4f07bdc11e9c6
  Author: Jim Fulton <jim at jimfulton.info>
  Date:   2016-07-19 (Tue, 19 Jul 2016)

  Changed paths:
    M src/ZEO/ClientStorage.py
    M src/ZEO/asyncio/client.py
    M src/ZEO/asyncio/tests.py
    M src/ZEO/tests/testZEO2.py

  Log Message:
  -----------
  Merge pull request #48 from zopefoundation/prefetch

Optimizations, featuring prefetch


  Commit: 51a631139fa510a2771569847871742c13d84a9d
      https://github.com/zopefoundation/ZEO/commit/51a631139fa510a2771569847871742c13d84a9d
  Author: Jim Fulton <jim at jimfulton.info>
  Date:   2016-07-19 (Tue, 19 Jul 2016)

  Changed paths:
    M src/ZEO/ClientStorage.py
    M src/ZEO/StorageServer.py
    M src/ZEO/interfaces.py

  Log Message:
  -----------
  Merge pull request #50 from zopefoundation/asyncio-cleanups

Asyncio cleanups


  Commit: 815f39d1080786e64e5bd588c2e7a8d6fa3674a9
      https://github.com/zopefoundation/ZEO/commit/815f39d1080786e64e5bd588c2e7a8d6fa3674a9
  Author: Jim Fulton <jim at jimfulton.info>
  Date:   2016-07-19 (Tue, 19 Jul 2016)

  Changed paths:
    M CHANGES.rst
    M src/ZEO/tests/testssl.py
    M src/ZEO/zconfig.py

  Log Message:
  -----------
  Merge pull request #51 from zopefoundation/load-default-cert-for-client-of-signed-server

Fixed: SSL clients of servers with signed certs didn't load default


  Commit: 3d02129b227252c866e4d0b2b454cb7f336a2b4a
      https://github.com/zopefoundation/ZEO/commit/3d02129b227252c866e4d0b2b454cb7f336a2b4a
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-19 (Tue, 19 Jul 2016)

  Changed paths:
    M CHANGES.rst
    M src/ZEO/ClientStorage.py
    M src/ZEO/StorageServer.py
    M src/ZEO/asyncio/client.py
    M src/ZEO/asyncio/tests.py
    M src/ZEO/interfaces.py
    M src/ZEO/tests/forker.py
    M src/ZEO/tests/testZEO2.py
    M src/ZEO/tests/testssl.py
    M src/ZEO/zconfig.py

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/asyncio' into simplify-server-commit-lock-management

Conflicts:
	src/ZEO/StorageServer.py


  Commit: a9330b7ed6ef7a04fc018e6a11e00a34e0da9dcc
      https://github.com/zopefoundation/ZEO/commit/a9330b7ed6ef7a04fc018e6a11e00a34e0da9dcc
  Author: Jim Fulton <jim at jimfulton.info>
  Date:   2016-07-19 (Tue, 19 Jul 2016)

  Changed paths:
    M src/ZEO/StorageServer.py
    M src/ZEO/asyncio/mtacceptor.py
    M src/ZEO/asyncio/server.py
    M src/ZEO/tests/forker.py
    M src/ZEO/tests/testConversionSupport.py
    M src/ZEO/tests/testZEO2.py

  Log Message:
  -----------
  Merge pull request #44 from zopefoundation/simplify-server-commit-lock-management

Simplify server commit lock management


  Commit: d825f1586a2f91e00f22c6ebb7772a79d8ed7a14
      https://github.com/zopefoundation/ZEO/commit/d825f1586a2f91e00f22c6ebb7772a79d8ed7a14
  Author: Jim Fulton <jim at jimfulton.info>
  Date:   2016-07-19 (Tue, 19 Jul 2016)

  Changed paths:
    M .travis.yml
    M src/ZEO/StorageServer.py
    M src/ZEO/asyncio/mtacceptor.py

  Log Message:
  -----------
  Merge pull request #52 from zopefoundation/rehabilitate-mtacceptor

Rehabilitate mtacceptor


  Commit: dfb0ad2d9240e6a4c8ec27e508c570d9ee404135
      https://github.com/zopefoundation/ZEO/commit/dfb0ad2d9240e6a4c8ec27e508c570d9ee404135
  Author: Jim Fulton <jim at jimfulton.info>
  Date:   2016-07-19 (Tue, 19 Jul 2016)

  Changed paths:
    M src/ZEO/tests/ConnectionTests.py
    M src/ZEO/tests/client-config.test
    M src/ZEO/tests/forker.py
    M src/ZEO/tests/testZEO.py
    M src/ZEO/tests/testssl.py

  Log Message:
  -----------
  Merge pull request #42 from zopefoundation/test-cleanuo-2016-7-8

Test cleanup 2016 7 8


  Commit: b17240d146830d095cd5d2febb6f042b4d151011
      https://github.com/zopefoundation/ZEO/commit/b17240d146830d095cd5d2febb6f042b4d151011
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-20 (Wed, 20 Jul 2016)

  Changed paths:
    M src/ZEO/StorageServer.py

  Log Message:
  -----------
  removed an invalid assertion

That was causing test failutes when using the multi-threaded server.


  Commit: 8b93f49196e2baa4ea91f2142be91cc242afd398
      https://github.com/zopefoundation/ZEO/commit/8b93f49196e2baa4ea91f2142be91cc242afd398
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-20 (Wed, 20 Jul 2016)

  Changed paths:
    M src/ZEO/tests/testZEO2.py

  Log Message:
  -----------
  made a test less subject to spurious failure


  Commit: 6b43b6131704c89e2e905b2307c45f1c953f2003
      https://github.com/zopefoundation/ZEO/commit/6b43b6131704c89e2e905b2307c45f1c953f2003
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-21 (Thu, 21 Jul 2016)

  Changed paths:
    M .travis.yml

  Log Message:
  -----------
  Try to understand wtf with a test on travis for Python 2.7


  Commit: 29327911abfb9e1b3d55d24ace106abac64315f1
      https://github.com/zopefoundation/ZEO/commit/29327911abfb9e1b3d55d24ace106abac64315f1
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-21 (Thu, 21 Jul 2016)

  Changed paths:
    M src/ZEO/tests/testZEO.py

  Log Message:
  -----------
  experimenting with travis


  Commit: 9a689833e148312862fa9faaf98adf282c3cb39a
      https://github.com/zopefoundation/ZEO/commit/9a689833e148312862fa9faaf98adf282c3cb39a
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-21 (Thu, 21 Jul 2016)

  Changed paths:
    M src/ZEO/tests/testZEO.py

  Log Message:
  -----------
  revert test after experiment.


  Commit: ede23fd40956713aa34e305cb0b7f200f7ef4e52
      https://github.com/zopefoundation/ZEO/commit/ede23fd40956713aa34e305cb0b7f200f7ef4e52
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-21 (Thu, 21 Jul 2016)

  Changed paths:
    M src/ZEO/asyncio/client.py

  Log Message:
  -----------
  use 127.0.0.1 rather than localhost


  Commit: 77bce36cc61419d18bcc172529e46307f9efc061
      https://github.com/zopefoundation/ZEO/commit/77bce36cc61419d18bcc172529e46307f9efc061
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-21 (Thu, 21 Jul 2016)

  Changed paths:
    M setup.py

  Log Message:
  -----------
  need at least 2.7.9 for ssl


  Commit: 935628a9c59e09b50cbd22cef71552a74f4d5236
      https://github.com/zopefoundation/ZEO/commit/935628a9c59e09b50cbd22cef71552a74f4d5236
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-21 (Thu, 21 Jul 2016)

  Changed paths:
    M .travis.yml

  Log Message:
  -----------
  go back to running all the tests


  Commit: 5251481ecc158e212e0ecd4b9b2e6b7ad02be9d9
      https://github.com/zopefoundation/ZEO/commit/5251481ecc158e212e0ecd4b9b2e6b7ad02be9d9
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-21 (Thu, 21 Jul 2016)

  Changed paths:
    M src/ZEO/tests/testZEO2.py

  Log Message:
  -----------
  try to make test more stable


  Commit: 5ab0c3fbbe6ca2f0901c5609d4e6cdc5544f38d7
      https://github.com/zopefoundation/ZEO/commit/5ab0c3fbbe6ca2f0901c5609d4e6cdc5544f38d7
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-21 (Thu, 21 Jul 2016)

  Changed paths:
    M src/ZEO/tests/testZEO2.py

  Log Message:
  -----------
  try to make test more stable


  Commit: 7af91457cac7135e98e49da7e2520ee0535ea737
      https://github.com/zopefoundation/ZEO/commit/7af91457cac7135e98e49da7e2520ee0535ea737
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-21 (Thu, 21 Jul 2016)

  Changed paths:
    M CHANGES.rst
    M setup.py

  Log Message:
  -----------
  5.0.0a1


  Commit: 03498c057edbeede4d1c60889ac0142283b03c0e
      https://github.com/zopefoundation/ZEO/commit/03498c057edbeede4d1c60889ac0142283b03c0e
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-28 (Thu, 28 Jul 2016)

  Changed paths:
    M src/ZEO/ClientStorage.py
    M src/ZEO/StorageServer.py
    M src/ZEO/TransactionBuffer.py
    M src/ZEO/asyncio/client.py
    M src/ZEO/tests/Cache.py
    M src/ZEO/tests/ConnectionTests.py
    M src/ZEO/tests/testTransactionBuffer.py
    M src/ZEO/tests/testZEO.py

  Log Message:
  -----------
  Numerous fixes in response to: https://github.com/zopefoundation/ZODB/pull/93


  Commit: c8f1c523f6cd9fd1c485a7b9f88ff365b6d1f35a
      https://github.com/zopefoundation/ZEO/commit/c8f1c523f6cd9fd1c485a7b9f88ff365b6d1f35a
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-28 (Thu, 28 Jul 2016)

  Changed paths:
    M src/ZEO/StorageServer.py

  Log Message:
  -----------
  Send invalidations even when empty

If a transaction only adds objects (like the transaction that ZODB.DB
uses to create the root objects, we still need to send invalidations so clients see the new tid, because MVCC.


  Commit: 02943acd619579b7c87ceb92a3d219ac5c35ad32
      https://github.com/zopefoundation/ZEO/commit/02943acd619579b7c87ceb92a3d219ac5c35ad32
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-28 (Thu, 28 Jul 2016)

  Changed paths:
    M src/ZEO/StorageServer.py
    M src/ZEO/asyncio/server.py
    M src/ZEO/tests/testConversionSupport.py
    M src/ZEO/tests/testZEO.py
    M src/ZEO/tests/utils.py

  Log Message:
  -----------
  Storage-server cleanups

Especially splitting the method used to send invalidations and info,
since we no-longer send both in the same call.


  Commit: dbb066d2c9022f03fab799bf3cfbda2f3c1a4a4c
      https://github.com/zopefoundation/ZEO/commit/dbb066d2c9022f03fab799bf3cfbda2f3c1a4a4c
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-28 (Thu, 28 Jul 2016)

  Changed paths:
    M CHANGES.rst
    M src/ZEO/ClientStorage.py
    M src/ZEO/asyncio/client.py

  Log Message:
  -----------
  Added the ability to pass credentials when creating client storages.

This is experimental in that passing credentials will cause
connections to an ordinary ZEO server to fail, but it facilitates
experimentation with custom ZEO servers. Doing this with custom ZEO
clients would have been awkward due to the many levels of
composition involved.

In the future, we expect to support server security plugins that
consume credentials for authentication (typically over SSL).

Note that credentials are opaque to ZEO. They can be any object with
a true value.  The client mearly passes them to the server, which
will someday pass them to a plugin.


  Commit: 9fda3635800bcc46f525c5190a30e97a2520e059
      https://github.com/zopefoundation/ZEO/commit/9fda3635800bcc46f525c5190a30e97a2520e059
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-28 (Thu, 28 Jul 2016)

  Changed paths:
    A src/ZEO/tests/test_client_credentials.py

  Log Message:
  -----------
  let's include the test in the PR, shall we?


  Commit: b398e7447cb116c86594dd5a92d1cbeea96bed95
      https://github.com/zopefoundation/ZEO/commit/b398e7447cb116c86594dd5a92d1cbeea96bed95
  Author: Jim Fulton <jim at jimfulton.info>
  Date:   2016-07-30 (Sat, 30 Jul 2016)

  Changed paths:
    M CHANGES.rst
    M src/ZEO/ClientStorage.py
    M src/ZEO/asyncio/client.py
    A src/ZEO/tests/test_client_credentials.py

  Log Message:
  -----------
  Merge pull request #53 from zopefoundation/client-credentials

Added the ability to pass credentials when creating client storages.


  Commit: 4e056cd15658ecfb2ac0a77066ee942d1e67dd67
      https://github.com/zopefoundation/ZEO/commit/4e056cd15658ecfb2ac0a77066ee942d1e67dd67
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-30 (Sat, 30 Jul 2016)

  Changed paths:
    M CHANGES.rst
    M setup.py

  Log Message:
  -----------
  5.0.0a2


  Commit: 64635ddb450c47116ec0c31774266b4e4793d4d9
      https://github.com/zopefoundation/ZEO/commit/64635ddb450c47116ec0c31774266b4e4793d4d9
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-02 (Tue, 02 Aug 2016)

  Changed paths:
    M src/ZEO/tests/testZEO2.py

  Log Message:
  -----------
  Make test a little more flexible to hopefully avoid spurious failures


  Commit: 96659e2c28f52e42d93a5edd164390cf7b61dcd0
      https://github.com/zopefoundation/ZEO/commit/96659e2c28f52e42d93a5edd164390cf7b61dcd0
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-02 (Tue, 02 Aug 2016)

  Changed paths:
    M src/ZEO/ClientStorage.py
    M src/ZEO/asyncio/tests.py
    M src/ZEO/tests/testZEO.py

  Log Message:
  -----------
  use ZODB.utils.maxtid rather than z64


  Commit: b08a718ba89142ee25da0492514dd8fc34256c98
      https://github.com/zopefoundation/ZEO/commit/b08a718ba89142ee25da0492514dd8fc34256c98
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-02 (Tue, 02 Aug 2016)

  Changed paths:
    M .travis.yml
    M src/ZEO/ClientStorage.py
    M src/ZEO/TransactionBuffer.py
    M src/ZEO/asyncio/client.py
    A src/ZEO/tests/ZEO4/README.rst
    A src/ZEO/tests/ZEO4/StorageServer.py
    A src/ZEO/tests/ZEO4/__init__.py
    A src/ZEO/tests/ZEO4/auth/__init__.py
    A src/ZEO/tests/ZEO4/auth/auth_digest.py
    A src/ZEO/tests/ZEO4/auth/base.py
    A src/ZEO/tests/ZEO4/auth/hmac.py
    A src/ZEO/tests/ZEO4/component.xml
    A src/ZEO/tests/ZEO4/hash.py
    A src/ZEO/tests/ZEO4/monitor.py
    A src/ZEO/tests/ZEO4/runzeo.py
    A src/ZEO/tests/ZEO4/schema.xml
    A src/ZEO/tests/ZEO4/zrpc/__init__.py
    A src/ZEO/tests/ZEO4/zrpc/_hmac.py
    A src/ZEO/tests/ZEO4/zrpc/client.py
    A src/ZEO/tests/ZEO4/zrpc/connection.py
    A src/ZEO/tests/ZEO4/zrpc/error.py
    A src/ZEO/tests/ZEO4/zrpc/log.py
    A src/ZEO/tests/ZEO4/zrpc/marshal.py
    A src/ZEO/tests/ZEO4/zrpc/server.py
    A src/ZEO/tests/ZEO4/zrpc/smac.py
    A src/ZEO/tests/ZEO4/zrpc/trigger.py
    M src/ZEO/tests/forker.py
    M src/ZEO/tests/testConnection.py
    M src/ZEO/tests/testZEO.py
    M src/ZEO/tests/test_client_credentials.py
    M src/ZEO/tests/test_client_side_conflict_resolution.py
    M src/ZEO/tests/testssl.py

  Log Message:
  -----------
  Make sure the ZEO 5 client works with the ZEO 4 server

Added an option to test the ZEO 5 client against the ZEO 4
server. This involved making a copy of the ZEO 4 server in
ZEO.tests.ZEO4 and disabling tests of ZEO5-specific features.

Testing revealed bugs in support for ZEO 4 servers, which were fixed.


  Commit: 42516476d5f1bf336d438eaa0e62dddb07ec1612
      https://github.com/zopefoundation/ZEO/commit/42516476d5f1bf336d438eaa0e62dddb07ec1612
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-02 (Tue, 02 Aug 2016)

  Changed paths:
    M CHANGES.rst

  Log Message:
  -----------
  Make sure the ZEO 5 client works with the ZEO 4 server

Added an option to test the ZEO 5 client against the ZEO 4
server. This involved making a copy of the ZEO 4 server in
ZEO.tests.ZEO4 and disabling tests of ZEO5-specific features.

Testing revealed bugs in support for ZEO 4 servers, which were fixed.


  Commit: 7cb600519cf6ce76de90c2c187451371dce7fb80
      https://github.com/zopefoundation/ZEO/commit/7cb600519cf6ce76de90c2c187451371dce7fb80
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-03 (Wed, 03 Aug 2016)

  Changed paths:
    M src/ZEO/tests/forker.py

  Log Message:
  -----------
  use a "threadless" multi-processing queue

To avoid spew about threads being left behind by tests.  The normal
multi-processing.Queue uses a thread to send data and the machinery
for stopping this thread seems to be buggy (or inscrutable) on Linux,
causing test runner spew that made output hard to interpret.


  Commit: 9d765e8d2e0ff2faa54b07175b360c2f8e261fb5
      https://github.com/zopefoundation/ZEO/commit/9d765e8d2e0ff2faa54b07175b360c2f8e261fb5
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-03 (Wed, 03 Aug 2016)

  Changed paths:
    M src/ZEO/tests/ZEO4/StorageServer.py
    M src/ZEO/tests/forker.py

  Log Message:
  -----------
  Added a timeout argument to the ZEO4 server (copy)

It turns out the ZEO4 server doesn't shutdown cleanly in tests without
a shorter timeout (like the one I added for ZEO5).

For now, this is just in the copy used in the ZEO5 tests.  If I have
to updatre the copy at some point (hopefully not), then I'll add this
to ZEO4 proper.


  Commit: c7a96bae0c931a4f3f760caa729317467ca963c7
      https://github.com/zopefoundation/ZEO/commit/c7a96bae0c931a4f3f760caa729317467ca963c7
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-03 (Wed, 03 Aug 2016)

  Changed paths:
    M src/ZEO/tests/testConnection.py

  Log Message:
  -----------
  Don't print server log on error and import ZEO

The later seems to be necessary when running the test multiple times
in a test run (as I did while debugging a test failure).


  Commit: 5ba506e7f173370377feb6761b532f86e7681f4d
      https://github.com/zopefoundation/ZEO/commit/5ba506e7f173370377feb6761b532f86e7681f4d
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-03 (Wed, 03 Aug 2016)

  Changed paths:
    M src/ZEO/asyncio/client.py

  Log Message:
  -----------
  Fixed a bug handling ZEO4 invalidations during cache verification

ZEO4 servers can send invalidations out of order with
``getInvalidations`` results, presumably because ``getInvalidations``
didn't get the commit lock.  ZEO4 clients worked around this (maybe
not directly) by queuing invalidations during cache verification.
ZEO5 servers don't send invalidations out of order with
``getInvalidations`` calls and the ZEO5 client didn't need an
invalidation queue, except they do need one to work correctly with
ZEO4 servers. :/


  Commit: 765c3b9f43742c364d754873baa793eda6ff4afc
      https://github.com/zopefoundation/ZEO/commit/765c3b9f43742c364d754873baa793eda6ff4afc
  Author: Jim Fulton <jim at jimfulton.info>
  Date:   2016-08-04 (Thu, 04 Aug 2016)

  Changed paths:
    M .travis.yml
    M CHANGES.rst
    M src/ZEO/ClientStorage.py
    M src/ZEO/TransactionBuffer.py
    M src/ZEO/asyncio/client.py
    A src/ZEO/tests/ZEO4/README.rst
    A src/ZEO/tests/ZEO4/StorageServer.py
    A src/ZEO/tests/ZEO4/__init__.py
    A src/ZEO/tests/ZEO4/auth/__init__.py
    A src/ZEO/tests/ZEO4/auth/auth_digest.py
    A src/ZEO/tests/ZEO4/auth/base.py
    A src/ZEO/tests/ZEO4/auth/hmac.py
    A src/ZEO/tests/ZEO4/component.xml
    A src/ZEO/tests/ZEO4/hash.py
    A src/ZEO/tests/ZEO4/monitor.py
    A src/ZEO/tests/ZEO4/runzeo.py
    A src/ZEO/tests/ZEO4/schema.xml
    A src/ZEO/tests/ZEO4/zrpc/__init__.py
    A src/ZEO/tests/ZEO4/zrpc/_hmac.py
    A src/ZEO/tests/ZEO4/zrpc/client.py
    A src/ZEO/tests/ZEO4/zrpc/connection.py
    A src/ZEO/tests/ZEO4/zrpc/error.py
    A src/ZEO/tests/ZEO4/zrpc/log.py
    A src/ZEO/tests/ZEO4/zrpc/marshal.py
    A src/ZEO/tests/ZEO4/zrpc/server.py
    A src/ZEO/tests/ZEO4/zrpc/smac.py
    A src/ZEO/tests/ZEO4/zrpc/trigger.py
    M src/ZEO/tests/forker.py
    M src/ZEO/tests/testConnection.py
    M src/ZEO/tests/testZEO.py
    M src/ZEO/tests/test_client_credentials.py
    M src/ZEO/tests/test_client_side_conflict_resolution.py
    M src/ZEO/tests/testssl.py

  Log Message:
  -----------
  Merge pull request #54 from zopefoundation/zeo4-server-support

Zeo4 server support


  Commit: 98ac50ebf74ae594e4963077cd6728d7d0e2f243
      https://github.com/zopefoundation/ZEO/commit/98ac50ebf74ae594e4963077cd6728d7d0e2f243
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-04 (Thu, 04 Aug 2016)

  Changed paths:
    M CHANGES.rst
    M src/ZEO/Exceptions.py
    M src/ZEO/tests/testZEO.py

  Log Message:
  -----------
  Client disconnect errors are now transient errors.  When
  applications retry jobs that raise transient errors, jobs (e.g. web
  requests) with disconnect errors will be retried. Together with
  blocking synchronous ZEO server calls for a limited time while
  disconnected, this change should allow brief disconnections due to
  server restart to avoid generating client-visible errors (e.g. 500
  web responses).


  Commit: e08b9c591aa8a51b89bdef1155a4293bc1ee1260
      https://github.com/zopefoundation/ZEO/commit/e08b9c591aa8a51b89bdef1155a4293bc1ee1260
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-04 (Thu, 04 Aug 2016)

  Changed paths:
    M src/ZEO/tests/ZEO4/StorageServer.py

  Log Message:
  -----------
  Need to define ResolvedSerial ourselves

Because ZODB 5 no-longer does


  Commit: 9613f09b4de582b91423bd96472e8721010e30af
      https://github.com/zopefoundation/ZEO/commit/9613f09b4de582b91423bd96472e8721010e30af
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-04 (Thu, 04 Aug 2016)

  Changed paths:
    M src/ZEO/tests/zeo-fan-out.test

  Log Message:
  -----------
  Work around a ZEO4 server bug in an edge case.


  Commit: deaa913cc4b39b2f67a5cf11a02ee962302d9f85
      https://github.com/zopefoundation/ZEO/commit/deaa913cc4b39b2f67a5cf11a02ee962302d9f85
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-04 (Thu, 04 Aug 2016)

  Changed paths:
    M CHANGES.rst
    M README.rst
    M src/ZEO/ClientStorage.py
    M src/ZEO/StorageServer.py
    M src/ZEO/component.xml
    M src/ZEO/tests/ConnectionTests.py
    M src/ZEO/tests/testConfig.py
    M src/ZEO/zconfig.py

  Log Message:
  -----------
  Added a ClientStorage server-sync configuration option and
server_sync constructor argument to force a server round trip at
the beginning of transactions to wait for any outstanding
invalidations at the start of the transaction to be delivered.


  Commit: c2d864fe9621016b03c0a4a2eee1f28aed5bfa79
      https://github.com/zopefoundation/ZEO/commit/c2d864fe9621016b03c0a4a2eee1f28aed5bfa79
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-04 (Thu, 04 Aug 2016)

  Changed paths:
    A src/ZEO/tests/test_sync.py

  Log Message:
  -----------
  fixed, ZEO5 uses a differenbt internal attribute to store ZEOStorages


  Commit: 1387d8501d163f70a04e25d5f2bf3dbe7b0b58d7
      https://github.com/zopefoundation/ZEO/commit/1387d8501d163f70a04e25d5f2bf3dbe7b0b58d7
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-04 (Thu, 04 Aug 2016)

  Changed paths:
    M CHANGES.rst
    M src/ZEO/StorageServer.py
    M src/ZEO/tests/testZEO.py

  Log Message:
  -----------
  - The ZEO server register method now returns the storage last
  transaction, allowing the client to avoid an extra round trip during
  cache verification.


  Commit: a07f8af378d14f0c20c3a92de1598edba7e31ce6
      https://github.com/zopefoundation/ZEO/commit/a07f8af378d14f0c20c3a92de1598edba7e31ce6
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-04 (Thu, 04 Aug 2016)

  Changed paths:
    M README.rst
    M src/ZEO/tests/forker.py

  Log Message:
  -----------
  Immediately(ish) remove temporary config files created for ad hoc servers

They're annoying. :)


  Commit: 8366ba1d8388432bbf07d3489b9355eb616917a0
      https://github.com/zopefoundation/ZEO/commit/8366ba1d8388432bbf07d3489b9355eb616917a0
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-04 (Thu, 04 Aug 2016)

  Changed paths:
    M README.rst
    M src/ZEO/tests/ZEO4/StorageServer.py
    M src/ZEO/tests/forker.py
    M src/ZEO/tests/zeo-fan-out.test

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/asyncio' into ClientDisconnected-is-transient


  Commit: 5a927e27949371af705e82fccd118c5f3e707803
      https://github.com/zopefoundation/ZEO/commit/5a927e27949371af705e82fccd118c5f3e707803
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-04 (Thu, 04 Aug 2016)

  Changed paths:
    M .travis.yml

  Log Message:
  -----------
  See if we can speed the travis builds with caching

And slightly with pip installing buildout (rather than bootstrapping).


  Commit: 3ae6ff6dfc57cb4461613f8e55ce60c599fe4fca
      https://github.com/zopefoundation/ZEO/commit/3ae6ff6dfc57cb4461613f8e55ce60c599fe4fca
  Author: Jim Fulton <jim at jimfulton.info>
  Date:   2016-08-05 (Fri, 05 Aug 2016)

  Changed paths:
    M .travis.yml
    M CHANGES.rst
    M src/ZEO/Exceptions.py
    M src/ZEO/tests/testZEO.py

  Log Message:
  -----------
  Merge pull request #61 from zopefoundation/ClientDisconnected-is-transient

Client disconnect errors are now transient errors.

Apparently, travis doesn't want to test this branch. :(


  Commit: 2d8e7153561b0aa47f49beaa915c3edbdd671125
      https://github.com/zopefoundation/ZEO/commit/2d8e7153561b0aa47f49beaa915c3edbdd671125
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-05 (Fri, 05 Aug 2016)

  Changed paths:
    M .travis.yml
    M CHANGES.rst
    M README.rst
    M src/ZEO/Exceptions.py
    M src/ZEO/tests/forker.py
    M src/ZEO/tests/testZEO.py

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/asyncio' into register-returns-last-transaction

Conflicts:
	CHANGES.rst


  Commit: 6b85a572ec39d593fcaa339bf80a7cad1830e254
      https://github.com/zopefoundation/ZEO/commit/6b85a572ec39d593fcaa339bf80a7cad1830e254
  Author: Jim Fulton <jim at jimfulton.info>
  Date:   2016-08-05 (Fri, 05 Aug 2016)

  Changed paths:
    M CHANGES.rst
    M src/ZEO/StorageServer.py
    M src/ZEO/tests/testZEO.py

  Log Message:
  -----------
  Merge pull request #64 from zopefoundation/register-returns-last-transaction

- The ZEO server register method now returns the storage last transaction


  Commit: d0d8a855d697fc84b0d86a616ba5907edc581053
      https://github.com/zopefoundation/ZEO/commit/d0d8a855d697fc84b0d86a616ba5907edc581053
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-05 (Fri, 05 Aug 2016)

  Changed paths:
    M .travis.yml
    M CHANGES.rst
    M README.rst
    M src/ZEO/Exceptions.py
    M src/ZEO/StorageServer.py
    M src/ZEO/tests/forker.py
    M src/ZEO/tests/testZEO.py

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/asyncio' into server-sync

Conflicts:
	CHANGES.rst


  Commit: d9ef8853412e9ef54a607aeb6928531daa932e7a
      https://github.com/zopefoundation/ZEO/commit/d9ef8853412e9ef54a607aeb6928531daa932e7a
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-05 (Fri, 05 Aug 2016)

  Changed paths:
    M .travis.yml

  Log Message:
  -----------
  Did I screw up travis?  Let's see if I can make it start running again


  Commit: fd755510379ef9bcfd9b2c89a4f93f11a1051957
      https://github.com/zopefoundation/ZEO/commit/fd755510379ef9bcfd9b2c89a4f93f11a1051957
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-05 (Fri, 05 Aug 2016)

  Changed paths:
    M .travis.yml

  Log Message:
  -----------
  try caching again, off on a separate branch.


  Commit: 0fafa40a6d0f77192e2a32b5f18a774783fce446
      https://github.com/zopefoundation/ZEO/commit/0fafa40a6d0f77192e2a32b5f18a774783fce446
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-05 (Fri, 05 Aug 2016)

  Changed paths:
    M src/ZEO/tests/forker.py

  Log Message:
  -----------
  Try harder not to error (and fail tests) when shutting down servers


  Commit: 7eedfd75948b68469a4e7783b6ccc3fce794721d
      https://github.com/zopefoundation/ZEO/commit/7eedfd75948b68469a4e7783b6ccc3fce794721d
  Author: Jim Fulton <jim at jimfulton.info>
  Date:   2016-08-05 (Fri, 05 Aug 2016)

  Changed paths:
    M .travis.yml
    M src/ZEO/tests/forker.py

  Log Message:
  -----------
  Merge pull request #65 from zopefoundation/travis-caching

try caching again, off on a separate branch.


  Commit: b67cfa10dec2b1c845acfb5cba038598ac9eb3fc
      https://github.com/zopefoundation/ZEO/commit/b67cfa10dec2b1c845acfb5cba038598ac9eb3fc
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-05 (Fri, 05 Aug 2016)

  Changed paths:
    M .travis.yml
    M src/ZEO/tests/forker.py

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/asyncio' into server-sync


  Commit: fd8e334f135f7ec8b875b8103c0673a5b9db76f1
      https://github.com/zopefoundation/ZEO/commit/fd8e334f135f7ec8b875b8103c0673a5b9db76f1
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-05 (Fri, 05 Aug 2016)

  Changed paths:
    M src/ZEO/ClientStorage.py

  Log Message:
  -----------
  Fixed stipid race


  Commit: c087f63426407e65344f53a337401fb5e1f32214
      https://github.com/zopefoundation/ZEO/commit/c087f63426407e65344f53a337401fb5e1f32214
  Author: Jim Fulton <jim at jimfulton.info>
  Date:   2016-08-08 (Mon, 08 Aug 2016)

  Changed paths:
    M CHANGES.rst
    M README.rst
    M src/ZEO/ClientStorage.py
    M src/ZEO/StorageServer.py
    M src/ZEO/component.xml
    M src/ZEO/tests/ConnectionTests.py
    M src/ZEO/tests/testConfig.py
    A src/ZEO/tests/test_sync.py
    M src/ZEO/zconfig.py

  Log Message:
  -----------
  Merge pull request #63 from zopefoundation/server-sync

Server sync


  Commit: 6e683133c8b792ab25b1d1bc9e2d6c1afb02638a
      https://github.com/zopefoundation/ZEO/commit/6e683133c8b792ab25b1d1bc9e2d6c1afb02638a
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-08 (Mon, 08 Aug 2016)

  Changed paths:
    M src/ZEO/Exceptions.py
    M src/ZEO/asyncio/client.py
    M src/ZEO/asyncio/server.py

  Log Message:
  -----------
  Don't pickle errors.

Don't send errors as pickles. Send error names and class dict or arguments.

This is a step toward eliminating instance pickles from the ZEO protocol.

This is much messier than I'd like it to be because of the way both
python and ZEO handle exceptions.


  Commit: 2c7a04f7ad886667951f76a8648844c0ad6c3666
      https://github.com/zopefoundation/ZEO/commit/2c7a04f7ad886667951f76a8648844c0ad6c3666
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-08 (Mon, 08 Aug 2016)

  Changed paths:
    M src/ZEO/asyncio/client.py

  Log Message:
  -----------
  standard exceptions live in different places in Python 2 and Python 3.


  Commit: 772221b87da9b8dac874deb39b599e71b55e3478
      https://github.com/zopefoundation/ZEO/commit/772221b87da9b8dac874deb39b599e71b55e3478
  Author: Jim Fulton <jim at jimfulton.info>
  Date:   2016-08-08 (Mon, 08 Aug 2016)

  Changed paths:
    M src/ZEO/Exceptions.py
    M src/ZEO/asyncio/client.py
    M src/ZEO/asyncio/server.py

  Log Message:
  -----------
  Merge pull request #69 from zopefoundation/dont-pickle-errors

Dont pickle errors


  Commit: bb8bc99e4b061229605f6935fd8cce7a542f5c01
      https://github.com/zopefoundation/ZEO/commit/bb8bc99e4b061229605f6935fd8cce7a542f5c01
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-08 (Mon, 08 Aug 2016)

  Changed paths:
    M buildout.cfg

  Log Message:
  -----------
  Add a hook for specifying extra extras (e.g. uvloop) when running the buildout


  Commit: cf3abed49219d943dfa7777d8d2b1c88c4e19a70
      https://github.com/zopefoundation/ZEO/commit/cf3abed49219d943dfa7777d8d2b1c88c4e19a70
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-08 (Mon, 08 Aug 2016)

  Changed paths:
    M setup.py

  Log Message:
  -----------
  Added a uvloop extra.


  Commit: 6c163072825e57e5a97b518b6e9fce74e0526aaa
      https://github.com/zopefoundation/ZEO/commit/6c163072825e57e5a97b518b6e9fce74e0526aaa
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-08 (Mon, 08 Aug 2016)

  Changed paths:
    M .travis.yml
    M src/ZEO/asyncio/client.py
    M src/ZEO/tests/testssl.py

  Log Message:
  -----------
  Optionally use uvloop for clients

uvloop is a bit faster than the standard asyncion event loop.

Unfortunately, there's an issue with the ZEO tests and using uvloop in
the ZEO server:

  https://github.com/MagicStack/uvloop/issues/39

Fortunately, most of the performamce benefits of using uvloop seems to
be in the client.

For now, we'll just use ivloop on the client side, as the incremental
effort of using it in the server aren't worth futher wrestling with
the tests. (I spent quite a bit of time just narrowing down the cause
of the test issue.)

With this PR, if uvloop can be imported, it will be used for the
client. (uvloop requires Python 3.5 or later and doesn't support Windows.)


  Commit: e459238dac407fb128c875b2fe6b1a132a2fb18a
      https://github.com/zopefoundation/ZEO/commit/e459238dac407fb128c875b2fe6b1a132a2fb18a
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-08 (Mon, 08 Aug 2016)

  Changed paths:
    M src/ZEO/asyncio/client.py

  Log Message:
  -----------
  double-check travis UVLOOP hackery


  Commit: 417b4b611c5c3514c1c9b626fb621aa33674ea33
      https://github.com/zopefoundation/ZEO/commit/417b4b611c5c3514c1c9b626fb621aa33674ea33
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-08 (Mon, 08 Aug 2016)

  Changed paths:
    M src/ZEO/asyncio/client.py

  Log Message:
  -----------
  Yup, the uvloop travis hack worked :)


  Commit: f7a7c6a77e8ce44accd9f4c18a2ad0d1e9a90876
      https://github.com/zopefoundation/ZEO/commit/f7a7c6a77e8ce44accd9f4c18a2ad0d1e9a90876
  Author: Jim Fulton <jim at jimfulton.info>
  Date:   2016-08-08 (Mon, 08 Aug 2016)

  Changed paths:
    M .travis.yml
    M buildout.cfg
    M setup.py
    M src/ZEO/asyncio/client.py
    M src/ZEO/tests/testssl.py

  Log Message:
  -----------
  Merge pull request #70 from zopefoundation/uvloop

Uvloop


  Commit: 6e13bbe85cc6fb646f9f6c4ee124f5848d2ccce9
      https://github.com/zopefoundation/ZEO/commit/6e13bbe85cc6fb646f9f6c4ee124f5848d2ccce9
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-08 (Mon, 08 Aug 2016)

  Changed paths:
    M CHANGES.rst
    M src/ZEO/tests/ConnectionTests.py
    M src/ZEO/tests/forker.py
    M src/ZEO/tests/testZEO.py

  Log Message:
  -----------
  When creating an ad hoc server, a log file isn't created by
  default. You must pass a log option specifying a log file name.


  Commit: 28914ad24ab474a43a9b1fd4fa8efda4b821655a
      https://github.com/zopefoundation/ZEO/commit/28914ad24ab474a43a9b1fd4fa8efda4b821655a
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-09 (Tue, 09 Aug 2016)

  Changed paths:
    M src/ZEO/asyncio/server.py
    M src/ZEO/nagios.rst
    M src/ZEO/tests/drop_cache_rather_than_verify.txt
    M src/ZEO/tests/new_addr.test
    M src/ZEO/tests/testConfig.py
    M src/ZEO/tests/testZEO.py
    M src/ZEO/tests/testZEO2.py
    M src/ZEO/tests/test_client_credentials.py
    M src/ZEO/tests/test_client_side_conflict_resolution.py
    M src/ZEO/tests/testssl.py
    A src/ZEO/tests/threaded.py

  Log Message:
  -----------
  Use uvloop in the single-threaded server

To accomplish this, it was necessary to rearrange the tests so that
tests that ran servers in threads rather than using multiprocessing
into their own layer.  This is due to a bug currently in uvloop that
prevents using running uvloop servers in a process and in subprocesses
created with multiprocessing:

https://github.com/MagicStack/uvloop/issues/39

To run the tests with uvloop installed, it's necessary to use the
``-j`` option to run layers in separate processes.


  Commit: cc26ec3886567fea47d3fdef4d2b08117aa48311
      https://github.com/zopefoundation/ZEO/commit/cc26ec3886567fea47d3fdef4d2b08117aa48311
  Author: Jim Fulton <jim at jimfulton.info>
  Date:   2016-08-09 (Tue, 09 Aug 2016)

  Changed paths:
    M CHANGES.rst
    M src/ZEO/tests/ConnectionTests.py
    M src/ZEO/tests/forker.py
    M src/ZEO/tests/testZEO.py

  Log Message:
  -----------
  Merge pull request #71 from zopefoundation/optional-ad-hoc-log

When creating an ad hoc server, a log file isn't created by default


  Commit: 49bc8e4649b0114855e336b857aba7f9bd743ac9
      https://github.com/zopefoundation/ZEO/commit/49bc8e4649b0114855e336b857aba7f9bd743ac9
  Author: Jim Fulton <jim at jimfulton.info>
  Date:   2016-08-09 (Tue, 09 Aug 2016)

  Changed paths:
    M src/ZEO/asyncio/server.py
    M src/ZEO/nagios.rst
    M src/ZEO/tests/drop_cache_rather_than_verify.txt
    M src/ZEO/tests/new_addr.test
    M src/ZEO/tests/testConfig.py
    M src/ZEO/tests/testZEO.py
    M src/ZEO/tests/testZEO2.py
    M src/ZEO/tests/test_client_credentials.py
    M src/ZEO/tests/test_client_side_conflict_resolution.py
    M src/ZEO/tests/testssl.py
    A src/ZEO/tests/threaded.py

  Log Message:
  -----------
  Merge pull request #72 from zopefoundation/uvloop-server

Use uvloop in the single-threaded server


  Commit: c2e8905251e4e6f0155b9a56ab2ecf809dce421f
      https://github.com/zopefoundation/ZEO/commit/c2e8905251e4e6f0155b9a56ab2ecf809dce421f
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-10 (Wed, 10 Aug 2016)

  Changed paths:
    M setup.py
    M src/ZEO/asyncio/client.py
    M src/ZEO/asyncio/mtacceptor.py
    M src/ZEO/asyncio/server.py

  Log Message:
  -----------
  Got uvloop working with the mtacceptor
thanks to the new connect_accepted_socket API.

Abstracted the code that supports using asyncio vs trollius vs uvloop


  Commit: e439b578157aee47583b71e2512ad806c842efb1
      https://github.com/zopefoundation/ZEO/commit/e439b578157aee47583b71e2512ad806c842efb1
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-08-11 (Thu, 11 Aug 2016)

  Changed paths:
    A src/ZEO/asyncio/compat.py

  Log Message:
  -----------
  Forgot to add this before :(


  Commit: beb5086586cc4a2b2f6f77c123e17a6aaf1da011
      https://github.com/zopefoundation/ZEO/commit/beb5086586cc4a2b2f6f77c123e17a6aaf1da011
  Author: Jim Fulton <jim at jimfulton.info>
  Date:   2016-08-13 (Sat, 13 Aug 2016)

  Changed paths:
    M setup.py
    M src/ZEO/asyncio/client.py
    A src/ZEO/asyncio/compat.py
    M src/ZEO/asyncio/mtacceptor.py
    M src/ZEO/asyncio/server.py

  Log Message:
  -----------
  Merge pull request #73 from zopefoundation/uvloop-support-in-mtacceotor

Got uvloop working with the mtacceptor


  Commit: f4eeb59800ffda1cd1ee76d3b6aacd988233b2ca
      https://github.com/zopefoundation/ZEO/commit/f4eeb59800ffda1cd1ee76d3b6aacd988233b2ca
  Author: Jim Fulton <jim at jimfulton.info>
  Date:   2016-08-13 (Sat, 13 Aug 2016)

  Changed paths:
    M .travis.yml
    M CHANGES.rst
    M README.rst
    A asyncio-todo.rst
    M buildout.cfg
    R doc/zeo.txt
    M setup.py
    M src/ZEO/ClientStorage.py
    M src/ZEO/Exceptions.py
    R src/ZEO/ServerStub.py
    M src/ZEO/StorageServer.py
    M src/ZEO/TransactionBuffer.py
    M src/ZEO/__init__.py
    A src/ZEO/asyncio/README.rst
    A src/ZEO/asyncio/__init__.py
    A src/ZEO/asyncio/base.py
    A src/ZEO/asyncio/client.py
    A src/ZEO/asyncio/compat.py
    A src/ZEO/asyncio/marshal.py
    A src/ZEO/asyncio/mtacceptor.py
    A src/ZEO/asyncio/server.py
    A src/ZEO/asyncio/testing.py
    A src/ZEO/asyncio/tests.py
    R src/ZEO/auth/__init__.py
    R src/ZEO/auth/auth_digest.py
    R src/ZEO/auth/base.py
    R src/ZEO/auth/hmac.py
    M src/ZEO/cache.py
    M src/ZEO/component.xml
    M src/ZEO/interfaces.py
    M src/ZEO/monitor.py
    M src/ZEO/nagios.rst
    A src/ZEO/ordering.rst
    M src/ZEO/runzeo.py
    M src/ZEO/schema.xml
    M src/ZEO/scripts/zeoserverlog.py
    A src/ZEO/server.xml
    A src/ZEO/shortrepr.py
    M src/ZEO/tests/Cache.py
    M src/ZEO/tests/CommitLockTests.py
    M src/ZEO/tests/ConnectionTests.py
    M src/ZEO/tests/InvalidationTests.py
    M src/ZEO/tests/IterationTests.py
    M src/ZEO/tests/ThreadTests.py
    A src/ZEO/tests/ZEO4/README.rst
    A src/ZEO/tests/ZEO4/StorageServer.py
    A src/ZEO/tests/ZEO4/__init__.py
    A src/ZEO/tests/ZEO4/auth/__init__.py
    A src/ZEO/tests/ZEO4/auth/auth_digest.py
    A src/ZEO/tests/ZEO4/auth/base.py
    A src/ZEO/tests/ZEO4/auth/hmac.py
    A src/ZEO/tests/ZEO4/component.xml
    A src/ZEO/tests/ZEO4/hash.py
    A src/ZEO/tests/ZEO4/monitor.py
    A src/ZEO/tests/ZEO4/runzeo.py
    A src/ZEO/tests/ZEO4/schema.xml
    A src/ZEO/tests/ZEO4/zrpc/__init__.py
    A src/ZEO/tests/ZEO4/zrpc/_hmac.py
    A src/ZEO/tests/ZEO4/zrpc/client.py
    A src/ZEO/tests/ZEO4/zrpc/connection.py
    A src/ZEO/tests/ZEO4/zrpc/error.py
    A src/ZEO/tests/ZEO4/zrpc/log.py
    A src/ZEO/tests/ZEO4/zrpc/marshal.py
    A src/ZEO/tests/ZEO4/zrpc/server.py
    A src/ZEO/tests/ZEO4/zrpc/smac.py
    A src/ZEO/tests/ZEO4/zrpc/trigger.py
    R src/ZEO/tests/auth_plaintext.py
    M src/ZEO/tests/client-config.test
    A src/ZEO/tests/client.pem
    A src/ZEO/tests/client_key.pem
    M src/ZEO/tests/drop_cache_rather_than_verify.txt
    M src/ZEO/tests/dynamic_server_ports.test
    M src/ZEO/tests/forker.py
    M src/ZEO/tests/invalidation-age.txt
    M src/ZEO/tests/new_addr.test
    M src/ZEO/tests/protocols.test
    R src/ZEO/tests/registerDB.test
    A src/ZEO/tests/server.pem
    A src/ZEO/tests/server_key.pem
    A src/ZEO/tests/serverpw.pem
    A src/ZEO/tests/serverpw_key.pem
    M src/ZEO/tests/servertesting.py
    R src/ZEO/tests/testAuth.py
    M src/ZEO/tests/testConfig.py
    M src/ZEO/tests/testConnection.py
    M src/ZEO/tests/testConversionSupport.py
    R src/ZEO/tests/testMonitor.py
    M src/ZEO/tests/testTransactionBuffer.py
    M src/ZEO/tests/testZEO.py
    M src/ZEO/tests/testZEO2.py
    M src/ZEO/tests/test_cache.py
    A src/ZEO/tests/test_client_credentials.py
    A src/ZEO/tests/test_client_side_conflict_resolution.py
    A src/ZEO/tests/test_sync.py
    A src/ZEO/tests/testssl.py
    A src/ZEO/tests/threaded.py
    A src/ZEO/tests/utils.py
    M src/ZEO/tests/zeo-fan-out.test
    R src/ZEO/tests/zeoserver.py
    A src/ZEO/zconfig.py
    R src/ZEO/zrpc/__init__.py
    R src/ZEO/zrpc/_hmac.py
    R src/ZEO/zrpc/client.py
    R src/ZEO/zrpc/connection.py
    R src/ZEO/zrpc/error.py
    R src/ZEO/zrpc/log.py
    R src/ZEO/zrpc/marshal.py
    R src/ZEO/zrpc/server.py
    R src/ZEO/zrpc/smac.py
    R src/ZEO/zrpc/trigger.py
    M tox.ini

  Log Message:
  -----------
  Merge pull request #40 from zopefoundation/asyncio

Asyncio-based ZEO client and server (2)


Compare: https://github.com/zopefoundation/ZEO/compare/506926647bea...f4eeb59800ff


More information about the checkins mailing list