Opened 7 years ago

Last modified 7 years ago

#6259 regression new

— at epoll reactor continually errors when given a delayed call with an excessive timeoutVersion 3

Reported by: Tom Cocagne Owned by:
Priority: normal Milestone:
Component: core Keywords: epoll reactor timeout
Cc: Branch:
Author:

Description (last modified by Glyph)

Found in 12.1/python2.6 & 12.3/python2.7. Occurs when using the epoll function from the stdlib select module.

To repeat:

#echo > t.tap <<< EOF
from twisted.application import service
from twisted.internet import reactor

application = service.Application('blah')

reactor.callLater(1000000000000, lambda : None)
EOF
#twistd -noy t

This generates a continual stream of the following message:

2013-01-17 14:40:11-0600 [-] Unhandled Error
	Traceback (most recent call last):
	  File "/usr/lib64/python2.7/site-packages/twisted/scripts/_twistd_unix.py", line 231, in postApplication
	    self.startReactor(None, self.oldstdout, self.oldstderr)
	  File "/usr/lib64/python2.7/site-packages/twisted/application/app.py", line 402, in startReactor
	    self.config, oldstdout, oldstderr, self.profiler, reactor)
	  File "/usr/lib64/python2.7/site-packages/twisted/application/app.py", line 323, in runReactorWithLogging
	    reactor.run()
	  File "/usr/lib64/python2.7/site-packages/twisted/internet/base.py", line 1173, in run
	    self.mainLoop()
	--- <exception caught here> ---
	  File "/usr/lib64/python2.7/site-packages/twisted/internet/base.py", line 1185, in mainLoop
	    self.doIteration(t)
	  File "/usr/lib64/python2.7/site-packages/twisted/internet/epollreactor.py", line 364, in doPoll
	    l = self._poller.poll(timeout, len(self._selectables))
	exceptions.OverflowError: timeout is too large

The problem does not occur if the "select" reactor is used instead:

#twistd --reactor=select -noy t

Change History (3)

comment:1 Changed 7 years ago by Tom Cocagne

Found in 12.1/python2.6 & 12.3/python2.7. Occurs when using the epoll function from the stdlib select module.

To repeat:

#echo > t.tap <<< EOF 
from twisted.application import service from twisted.internet import reactor

application = service.Application('blah')

reactor.callLater(1000000000000, lambda : None) 
EOF 

#twistd -noy t.tap

This generates a continual stream of the following message:

2013-01-17 14:40:11-0600 [-] Unhandled Error

Traceback (most recent call last):

File "/usr/lib64/python2.7/site-packages/twisted/scripts/_twistd_unix.py", line 231, in postApplication

self.startReactor(None, self.oldstdout, self.oldstderr)

File "/usr/lib64/python2.7/site-packages/twisted/application/app.py", line 402, in startReactor

self.config, oldstdout, oldstderr, self.profiler, reactor)

File "/usr/lib64/python2.7/site-packages/twisted/application/app.py", line 323, in runReactorWithLogging

reactor.run()

File "/usr/lib64/python2.7/site-packages/twisted/internet/base.py", line 1173, in run

self.mainLoop()

--- <exception caught here> ---

File "/usr/lib64/python2.7/site-packages/twisted/internet/base.py", line 1185, in mainLoop

self.doIteration(t)

File "/usr/lib64/python2.7/site-packages/twisted/internet/epollreactor.py", line 364, in doPoll

l = self._poller.poll(timeout, len(self._selectables))

exceptions.OverflowError: timeout is too large

The problem does not occur if the "select" reactor is used instead:

#twistd --reactor=select -noy t.tap

comment:2 Changed 7 years ago by Jean-Paul Calderone

Type: defectregression

Regression introduced during the switch to the stdlib epoll bindings for #3114.

comment:3 Changed 7 years ago by Glyph

Description: modified (diff)

Formatting fix.

Note: See TracTickets for help on using tickets.