[ZODB-Dev] ZeoServer, multiple storages and open file handles

Jon Dyte jon at totient.co.uk
Sat Oct 20 08:52:53 UTC 2012


On 18/10/12 03:29, Tim Godfrey wrote:
> Hi all
>
> We have a customer on Plone 4.1 and recently we started to see a great 
> increase in the number of open file descriptors the Zeoserver process 
> uses.
>
> We have a pretty big system distributed over many servers as the Plone 
> system gets a lot of requests. Currently we are running a Zeoserver 
> with 30 storages and have 16 Zope clients that connect to it.
>
> I've had Zeoserver in debug mode to try and get some more insight into 
> the problem and I'm seeing a lot of these errors:
>
> Exception in thread Thread-575:
> Traceback (most recent call last):
>   File "/opt/informa/Python-2.6/lib/python2.6/threading.py", line 532, 
> in __bootstrap_inner
>     self.run()
>   File "/opt/informa/Python-2.6/lib/python2.6/threading.py", line 484, 
> in run
>     self.__target(*self.__args, **self.__kwargs)
>   File 
> "/opt/informa/buildout-cache/eggs/ZODB3-3.10.3-py2.6-linux-x86_64.egg/ZEO/zrpc/connection.py", 
> line 661, in server_loop
>     asyncore.poll(30.0, map)
>   File "/opt/informa/Python-2.6/lib/python2.6/asyncore.py", line 140, 
> in poll
>     r, w, e = select.select(r, w, e, timeout)
> ValueError: filedescriptor out of range in select()
>

if the server_loop function in connection.py was changed to call 
asyncore.poll2 as far as I can tell the descriptor out of range
should go away as it uses the poll call rather than select.


Jon


More information about the ZODB-Dev mailing list