Re: runzeo.py exit with unexpected exit code

Jason Madden <[email protected]>
Newsgroups gmane.comp.web.zope.zodb
Message-ID <[email protected]>
> On Apr 6, 2017, at 04:22, Etienne Robillard <[email protected]> wrote:
> 
> I found a relevant traceback in my log file:
> 
> 2017-04-05 09:42:48,008 DEBG 'mainapp' stdout output:
> Exception in thread Connect([(2, ('127.0.0.1', 4343))]):
> Traceback (most recent call last):
>   File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
>     self.run()
>   File "/home/erob/ncvs/ZODB/src/ZEO/zrpc/client.py", line 264, in run
>     success = self.try_connecting(attempt_timeout)
>   File "/home/erob/ncvs/ZODB/src/ZEO/zrpc/client.py", line 295, in try_connectin
> g
>     r = self._connect_wrappers(wrappers, deadline)
>   File "/home/erob/ncvs/ZODB/src/ZEO/zrpc/client.py", line 343, in _connect_wrap
> pers
>     r, w, x = select.select([], connecting, connecting, 1.0)
>   File "/home/erob/gevent-1.2.1/src/gevent/select.py", line 141, in select
>     sel_results = _original_select(rlist, wlist, xlist, 0)
> ValueError: filedescriptor out of range in select()

This error means either one of the file descriptors is negative, or one of the file descriptors is greater than the compile-time constant FD_SETSIZE[1]. FD_SETSIZE is commonly (well, on two systems I checked) defined to be 1024[2]. Since you say that "[t]he issue seem to occur on high load", it seems likely that the file descriptor is too large. That is, you have too large a number of connections open concurrently...that, or there's a file descriptor/socket/connection leak in the code. Running `lsof` against the process might reveal information about the connections and file descriptors when you see this error. Or since you seem to be running with a source checkout of gevent, you could modify it to report the file descriptors when you see this error.

As an aside, prior to gevent 1.2a1[3], gevent would handle this situation differently than the stdlib...sometimes that was a good thing (depending on system configuration), but just as often it could be a very bad thing.

[1] https://github.com/python/cpython/commit/fda7b379acde3ad60bbd42acb6da7e7099d25133
[2] https://access.redhat.com/solutions/488623
[3] http://www.gevent.org/changelog.html#select-poll

-- 
You received this message because you are subscribed to the Google Groups "zodb" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
For more options, visit https://groups.google.com/d/optout.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.