[Python-Dev] [Python-3000] the release gods are angry at python

Jeffrey Yasskin jyasskin at gmail.com
Sat Mar 29 04:31:13 CET 2008


On Fri, Mar 28, 2008 at 11:15 AM, Bill Janssen <janssen at parc.com> wrote:
> > On Fri, Mar 28, 2008 at 3:31 AM, <skip at pobox.com> wrote:
> > >
> > > Neal> Anything that connects to a remote host is definitely flaky.
> > >
> > > Would it maybe help to set up a dedicated host (or virtual host) to serve as
> > > the sole target of all network tests?
> >
> > It would help, but not fix the problem. There will still be transient
> > network issues that come up.
>> We really need to be able to wrap a timeout around any individual
> test, perhaps throwing a TimeoutException if the timeout is reached,
> and have the ability to regard a TimeoutException as not being a
> "failure".

Something like:
@contextmanager
def timeout(max_time):
 def RaiseTimeout(signal, frame):
 raise TimeoutException
 # Why don't we have a context manager for the next line?
 old_alarm = signal.signal(signal.SIGALRM, RaiseTimeout)
 try:
 signal.alarm(max_time)
 try:
 yield
 finally:
 signal.alarm(0)
 finally:
 signal.signal(signal.SIGALRM, old_alarm)
with appropriate fallbacks for Windows. I may not be poking at
test_support for a bit, so anyone else is welcome to check that in, or
a fixed version of it, whenever they're fixing a timing-out test.
Someone else will have to implement the support in regrtest, although
I wouldn't mind having it treat a timeout as a failure, as long as
it's easier to diagnose than the SIGKILL it currently uses for
timeouts.
-- 
Namasté,
Jeffrey Yasskin


More information about the Python-Dev mailing list

AltStyle によって変換されたページ (->オリジナル) /