Commit 2d601479 authored by Jim Fulton's avatar Jim Fulton

Fixed bug that can cause the asyncore client loop to fail.

parent 22e4f62a
......@@ -33,9 +33,10 @@ General
ZEO
---
- (3.8.0b4) Fixed a serious bug that could cause client I/O to stop
- (3.8.0b4, 3.8.0b5) Fixed a serious bug that could cause client I/O to stop
(hang). This was accomonied by a critical log message along the
lines of: "RuntimeError: dictionary changed size during iteration".
(In b4, the bug was only partially fixed.)
- (3.8a1) ZEO's strategoes for avoiding client cache verification were
improved in the case that servers are restarted. Before, if
......
......@@ -82,7 +82,10 @@ def client_loop():
continue
if not (r or w or e):
for obj in client_map.itervalues():
# The line intentionally doesn't use iterators. Other
# threads can close dispatchers, causeing the socket
# map to shrink.
for obj in client_map.values():
if isinstance(obj, Connection):
# Send a heartbeat message as a reply to a
# non-existent message id.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment