More info Re: [ZODB-Dev] ZEO select.error: (9, "Bad file
desriptor")
Michel Pelletier
michel@digicool.com
Thu, 14 Jun 2001 11:09:26 -0700 (PDT)
On Wed, 13 Jun 2001, John D. Heintz wrote:
> Andrew:
>
> Well, the socket is indeed getting closed. Here is the stack trace info I
> have gotten:
>
It looks like...
> thor_core/snapCM/snapCM.py:378
> /usr/local/stow/python/lib/python2.1/site-packages/ZODB/Connection.py:519
> p, serial = self._storage.load(oid, self._version)
>
> /usr/local/stow/python/lib/python2.1/site-packages/ZEO/ClientStorage.py:354
> p, s, v, pv, sv = self._call('zeoLoad', oid)
> /usr/local/stow/python/lib/python2.1/site-packages/ZEO/zrpc.py:214
> else: self.readLoop()
> /usr/local/stow/python/lib/python2.1/site-packages/ZEO/zrpc.py:194
> asyncore.poll(60.0, self)
Either handle_write_event or "_read_event is raising an exception in
poll(), and this is causing handle_error() to get called, which in turn
calls close(). Hmm. It kinda sucks that the exception gets swallowed.
Maybe you can unhide the exception by passing it into handle_error and
re-raising it after you call close()? That might shed more light.
> /usr/local/stow/python/lib/python2.1/asyncore.py:101
> obj.handle_error()
> /usr/local/stow/python/lib/python2.1/asyncore.py:415
> self.close()
> /usr/local/stow/python/lib/python2.1/site-packages/ZEO/zrpc.py:298
> stackFrameHelper.printStack()
> /home/bonnell/src/bonnell/products/bonnellCommon/stackFrameHelper.py:52
> _printStack(frame)
>
> This error is then followed up by a ZEO.smac.Disconnected error, not a
> suprise.
>
> Then I get the socket.error (9, "Bad file descriptor") error, also not a
> suprise.
-Michel