Opened 9 years ago

Last modified 9 years ago

#1306 defect closed fixed (fixed)

trial doesn't run test suite all the way on win32eventreactor

Reported by: exarkun Owned by:
Priority: highest Milestone:
Component: core Keywords: tests
Cc: exarkun, spiv, jml Branch:
Author: Launchpad Bug:

Description


Change History (4)

comment:1 Changed 9 years ago by exarkun

All the recent runs end something like:

-------------------------------------------------------------------------------
Ran 1358 tests in 122.313s

FAILED (skips=158, expectedFailures=14, failures=5, errors=13, successes=1167)
Exception in thread win32er.Process.doReadErr pid=1216:
Traceback (most recent call last):
  File "c:\python24\lib\threading.py", line 442, in __bootstrap
    self.run()
  File "c:\python24\lib\threading.py", line 422, in run
    self.__target(*self.__args, **self.__kwargs)
  File
"c:\buildslave\w32\W32-full2.2\Twisted\twisted\internet\win32eventreactor.py",
line 419, in doReadErr
    buffer, bytesToRead, result = win32pipe.PeekNamedPipe(self.hStderrR, 1)
AttributeError: 'Process' object has no attribute 'hStderrR'

Exception in thread win32er.Process.doReadOut pid=896:
Traceback (most recent call last):
  File "c:\python24\lib\threading.py", line 442, in __bootstrap
    self.run()
  File "c:\python24\lib\threading.py", line 422, in run
    self.__target(*self.__args, **self.__kwargs)
  File
"c:\buildslave\w32\W32-full2.2\Twisted\twisted\internet\win32eventreactor.py",
line 400, in doReadOut
    buffer, bytesToRead, result = win32pipe.PeekNamedPipe(self.hStdoutR, 1)
AttributeError: 'Process' object has no attribute 'hStdoutR'

Traceback (most recent call last):
  File "c:\buildslave\w32\W32-full2.2\Twisted\./bin/trial", line 24, in ?
    run()
  File "c:\buildslave\w32\W32-full2.2\Twisted\twisted\scripts\trial.py", line
449, in run
    test_result = reallyRun(config)
  File "c:\buildslave\w32\W32-full2.2\Twisted\twisted\scripts\trial.py", line
437, in reallyRun
    return call_with(do_a_run)
  File "c:\buildslave\w32\W32-full2.2\Twisted\twisted\scripts\trial.py", line
433, in <lambda>
    call_with = lambda func, *args, **kwargs: func(*args, **kwargs)
  File "c:\buildslave\w32\W32-full2.2\Twisted\twisted\scripts\trial.py", line
429, in do_a_run
    return my_runner.run(suite)
  File "c:\buildslave\w32\W32-full2.2\Twisted\twisted\trial\runner.py", line
544, in run
    suite.run(result)
  File "c:\buildslave\w32\W32-full2.2\Twisted\twisted\trial\runner.py", line
175, in run
    TestSuite.run(self, result)
  File "c:\buildslave\w32\W32-full2.2\Twisted\twisted\trial\runner.py", line
119, in run
    test(result)
  File "c:\buildslave\w32\W32-full2.2\Twisted\twisted\trial\runner.py", line
111, in __call__
    return self.run(result)
  File "c:\buildslave\w32\W32-full2.2\Twisted\twisted\trial\runner.py", line
119, in run
    test(result)
  File "c:\buildslave\w32\W32-full2.2\Twisted\twisted\trial\runner.py", line
111, in __call__
    return self.run(result)
  File "c:\buildslave\w32\W32-full2.2\Twisted\twisted\trial\runner.py", line
119, in run
    test(result)
  File "c:\buildslave\w32\W32-full2.2\Twisted\twisted\trial\runner.py", line
190, in __call__
    return self.run(reporter)
  File "c:\buildslave\w32\W32-full2.2\Twisted\twisted\trial\runner.py", line
197, in run
    self._suite.run(reporter)
  File "c:\buildslave\w32\W32-full2.2\Twisted\twisted\trial\runner.py", line
119, in run
    test(result)
  File "c:\buildslave\w32\W32-full2.2\Twisted\twisted\trial\runner.py", line
190, in __call__
    return self.run(reporter)
  File "c:\buildslave\w32\W32-full2.2\Twisted\twisted\trial\runner.py", line
197, in run
    self._suite.run(reporter)
  File "c:\buildslave\w32\W32-full2.2\Twisted\twisted\trial\runner.py", line
271, in run
    testMethod.run(reporter)
  File "c:\buildslave\w32\W32-full2.2\Twisted\twisted\trial\unittest.py", line
127, in run
    janitor.postMethodCleanup()
  File "c:\buildslave\w32\W32-full2.2\Twisted\twisted\trial\util.py", line 138,
in postMethodCleanup
    return self._dispatch('logErrCheck', 'cleanPending')
  File "c:\buildslave\w32\W32-full2.2\Twisted\twisted\trial\util.py", line 150,
in _dispatch
    getattr(self, "do_%s" % attr)()
  File "c:\buildslave\w32\W32-full2.2\Twisted\twisted\trial\util.py", line 175,
in do_cleanPending
    reactor.iterate(0)
  File "c:\buildslave\w32\W32-full2.2\Twisted\twisted\internet\base.py", line
368, in iterate
    self.doIteration(delay)
  File
"c:\buildslave\w32\W32-full2.2\Twisted\twisted\internet\win32eventreactor.py",
line 158, in doWaitForMultipleEvents
    val = MsgWaitForMultipleObjects(handles, 0, timeout, QS_ALLINPUT | QS_ALLEVENTS)
pywintypes.error: (87, 'MsgWaitForMultipleObjects', 'The parameter is incorrect.')

comment:2 Changed 9 years ago by spiv

This appears to be partly due to the same problem that affected the iocp
reactor: reactor.iterate(0) raising an exception and thus breaking trial's cleanup.

Trial probably needs to handle this better, given that it's happened more than
once.  The win32reactor should probably also not raise this exception -- perhaps
that should be a seperate bug report, though.

comment:3 Changed 9 years ago by jml

This appears to be resolved with the merge of trial-umw-death

comment:4 Changed 4 years ago by <automation>

  • Owner jml deleted
Note: See TracTickets for help on using tickets.