[Zope3-dev] ZEO test failing under Cygwin

Godefroid Chapelle gotcha@swing.be
Wed, 14 May 2003 11:50:46 +0200


At 20:44 5/05/2003, you wrote:

I finally took the time to run the test with more info available.

>[Godefroid Chapelle]
> > Can you tell me what options or setup are needed so that I can send you
> > logging info ?
>
>I can tell you how to get logging info, but I don't want it mailed to me --
>I can't promise to make time to look at it, and I don't have deep
>understanding of this code anyway.  Jeremy has deep understanding but will
>be gone most of this week.  Best bet is to post your log info here and hope
>someone can make time to dig into it (assuming the cause doesn't become
>apparent to you first).
>
>The first thing is to run the test in isolation, and get a feel for whether
>it's a consistent or sporadic failure.  Like so:
>
>     python test.py -vvLd test_config testZEOStorage
>
><snip>
>and on & on -- it never fails for me (this is Python 2.2.2 under Win2K and
>MSVC 6).

It always fail for me.


>To get logging info, set the environment variable LOGGING to 0.  Then run
>the test once:
>
>     python test.py -vv test_config testZEOStorage
>
>The logging output goes to your terminal, and I get surprisingly little of
>it:
>
>"""
>Running unit tests at level 1
>Running unit tests from C:\Code\Zope3
>testZEOStorage (zodb.storage.tests.test_config.StorageTestCase) ...
>WARNING:ZCS.720:ClientStorage (pid=720) created RW/normal for storage: '1'
>WARNING:ZEC.1:ClientCache: storage='1', size=20971520; file[0]=None
>INFO:root:zrpc:720: CM.connect(): starting ConnectThread
>INFO:root:zrpc:720: CT: attempting to connect on 1 sockets
>INFO:root:zrpc:720: CW: attempt to connect to ('www.python.org', 9001)
>INFO:root:zrpc:720: CW: connect_ex(('www.python.org', 9001)) returned
>WSAEWOULDBLOCK
>INFO:root:zrpc:720: CT: select() 0, 0, 0
>INFO:root:zrpc:720: CT: select() 0, 0, 1
>INFO:root:zrpc:720: CT: closing troubled socket ('www.python.org', 9001)
>INFO:root:zrpc:720: CM.close(): stopping and joining thread
>INFO:root:zrpc:720: CT: exiting thread: Connect([(2, ('www.python.org',
>9001))])
>
>ok
>
>----------------------------------------------------------------------
>Ran 1 tests in 6.359s
>
>OK
>"""

I get
Running unit tests at level 1
Running unit tests from /cygdrive/c/Zope3Head/Zope3
testZEOStorage (zodb.storage.tests.test_config.StorageTestCase) ... 
WARNING:ZCS.
2268:ClientStorage (pid=2268) created RW/normal for storage: '1'
WARNING:ZEC.1:ClientCache: storage='1', size=20971520; file[0]=None
INFO:root:zrpc:2268: CM.connect(): starting ConnectThread
INFO:root:zrpc:2268: CT: attempting to connect on 1 sockets
INFO:root:zrpc:2268: CW: attempt to connect to ('www.python.org', 9001)
INFO:root:zrpc:2268: CW: connect_ex(('www.python.org', 9001)) returned 
EINPROGRE
SS
INFO:root:zrpc:2268: CT: select() 0, 1, 1
INFO:root:zrpc:2268: CT: closing troubled socket ('www.python.org', 9001)
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 
__bootstra
p
     self.run()
   File "/cygdrive/c/Zope3Head/Zope3/src/zodb/zeo/zrpc/client.py", line 
286, in r
un
     success = self.try_connecting(attempt_timeout)
   File "/cygdrive/c/Zope3Head/Zope3/src/zodb/zeo/zrpc/client.py", line 
314, in t
ry_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 0xa329448>

Killed


>Barry sez this logging output is expected -- we don't expect to find a ZEO
>server on port 9001 at www.python.org, so the "closing troubled socket" log
>msg is appropriate.  But if a bug in Cygwin select() causes this socket to
>appear in both the w and x sets, then (see my first msg) a KeyError will
>happen.  (I don't know whether that's happening, I'm only speculating based
>on the most obvious thing that *could* be going wrong.)

and yes the socket appear in both w and x sets.

I am afraid I am not of a big help to solve this further...
Please let me know what else I can do.
--

Godefroid Chapelle

BubbleNet sprl
rue Victor Horta, 18 / 202
1348 Louvain-la-Neuve
Belgium

Tel + 32 (10) 459901

TVA 467 093 008
RC Niv 49849