[Zope3-dev] ZEO test failing under Cygwin

Tim Peters tim@zope.com
Mon, 5 May 2003 12:17:39 -0400


[Godefroid Chapelle]
> just wanted to tell ZEO people that running the full Z3 test suite
> results in the process getting stuck after the following traceback :
>
>
> 1009/3918 ( 25.8%): testZEOStorage
> (...orage.tests.test_config.StorageTestCase)
>  Exception in thread Connect([(2, ('www.python.org', 9001))]):
> Traceback (most recent call last):
>    File "/tmp/python.676/usr/lib/python2.2/threading.py", line 408, in
> __bootstrap
>      self.run()
>    File "/cygdrive/c/Zope3Head/Zope3/src/zodb/zeo/zrpc/client.py", line
> 286, in run
>      success = self.try_connecting(attempt_timeout)
>    File "/cygdrive/c/Zope3Head/Zope3/src/zodb/zeo/zrpc/client.py", line
> 314, in try_connecting
>      r = self._connect_wrappers(wrappers, deadline)
>    File "/cygdrive/c/Zope3Head/Zope3/src/zodb/zeo/zrpc/client.py", line
> 382, in _connect_wrappers
>      del wrappers[wrap]
> KeyError: <zodb.zeo.zrpc.client.ConnectWrapper instance at 0xa552b70>
>
>
> What looks interesting to my naive eyes is that the bug looks to be
> fired in the code generated and situated in a temporary file.

I'm unclear on what that means.  _connect_wrappers() is a method of
ConnectionManager, in zodb/zeo/zrpc.client.py.  I don't see any reference to
a temp file in the traceback above.

> This makes me feel it is too hard to debug myself and better to tell
> the community ;-)

Logging info would probably help.  Staring at the source for
_connect_wrappers, I'd *expect* to see a KeyError here if some socket
appeared in both the w and x sets returned by the select:

                r, w, x = select.select([], connecting, connecting, 1.0)

I don't think a thing should appear in both w and x, but don't know that for
sure.  Logging info would help most.  If that's not enough, printing r, w
and x might help too.