#2127: select() reactor has problems with >1024 File Descriptors
-----------------------+----------------------------------------------------
Reporter: underscor | Owner:
Type: bug | Status: new
Priority: major | Milestone: Future
Component: other | Version: 1.3.5
Keywords: |
-----------------------+----------------------------------------------------
The select reactor has issues with more than 1024 file descriptors, which
leads to errors like this when having a large number of connections. I'm
not sure what the best path to take in this situation is. Either we could
integrate with twistd, which does it's own intelligent reactor selection,
or write logic to determine whether we're on Linux, and if so, opt for the
poll() or epoll() reactor, and select() otherwise.
Traceback (most recent call last):
File "/usr/lib/pymodules/python2.6/deluge/main.py", line 226, in
start_daemon
Daemon(options, args)
File "/usr/lib/pymodules/python2.6/deluge/core/daemon.py", line 176, in
__init__
reactor.run()
File "/usr/lib/python2.6/dist-packages/twisted/internet/base.py", line
1170, in run
self.mainLoop()
File "/usr/lib/python2.6/dist-packages/twisted/internet/base.py", line
1182, in mainLoop
self.doIteration(t)
--- <exception caught here> ---
File "/usr/lib/python2.6/dist-
packages/twisted/internet/selectreactor.py", line 104, in doSelect
[], timeout)
exceptions.ValueError: filedescriptor out of range in select()
Unhandled error in Deferred:
Traceback (most recent call last):
File "/usr/lib/python2.6/dist-packages/twisted/internet/base.py", line
1031, in connectionFailed
self.factory.clientConnectionFailed(self, reason)
File "/usr/lib/python2.6/dist-packages/twisted/web/client.py", line 350,
in clientConnectionFailed
self.deferred.errback(reason)
File "/usr/lib/python2.6/dist-packages/twisted/internet/defer.py", line
307, in errback
self._startRunCallbacks(fail)
File "/usr/lib/python2.6/dist-packages/twisted/internet/defer.py", line
354, in _startRunCallbacks
self._runCallbacks()
--- <exception caught here> ---
File "/usr/lib/python2.6/dist-packages/twisted/internet/defer.py", line
371, in _runCallbacks
self.result = callback(self.result, *args, **kw)
File "/usr/lib/pymodules/python2.6/deluge/core/rpcserver.py", line 316,
in on_fail
sendError()
File "/usr/lib/pymodules/python2.6/deluge/core/rpcserver.py", line 252,
in sendError
"".join(traceback.format_tb(exceptionTraceback)))
File "/usr/lib/pymodules/python2.6/deluge/core/rpcserver.py", line 196,
in sendData
self.transport.write(zlib.compress(rencode.dumps(data)))
File "/usr/lib/pymodules/python2.6/deluge/rencode.py", line 391, in
dumps
encode_func[type(x)](x, r)
File "/usr/lib/pymodules/python2.6/deluge/rencode.py", line 338, in
encode_list
encode_func[type(i)](i, r)
File "/usr/lib/pymodules/python2.6/deluge/rencode.py", line 338, in
encode_list
encode_func[type(i)](i, r)
exceptions.KeyError: <type 'instance'>
--
Ticket URL: <http://dev.deluge-torrent.org/ticket/2127>
Deluge <http://deluge-torrent.org/>
Deluge project
--
You received this message because you are subscribed to the Google Groups
"Deluge Dev" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/deluge-dev?hl=en.