Closed
Description
Originally reported by: reuben fletcher-costin (BitBucket: rfc, GitHub: rfc)
Hi,
py.test crashed 3 out of 10 times when using py.test -n8 --junitxml report.xml to run the following trivial test:
#!python
def test_foo():
assert True
When it crashes, the output looks like this (although sometimes more than 1 node may crash per run):
#!text
C:\test_pytest>py.test -n8 --junitxml report.xml
===================================================================== test session starts ====================
platform win32 -- Python 2.7.3 -- pytest-2.3.4
plugins: cov, xdist
gw0 [0] / gw1 [0] / gw2 [0] / gw3 [0] / gw4 [0] / gw5 [0] / gw6 [0] / gw7 [0]
scheduling tests via LoadScheduling
[gw5] node down: Traceback (most recent call last):
File "C:\Python27\lib\site-packages\execnet\gateway_base.py", line 800, in executetask
do_exec(co, loc)
File "<string>", line 1, in do_exec
File "", line 139, in <module>
File "C:\Python27\lib\site-packages\_pytest\core.py", line 422, in __call__
return self._docall(methods, kwargs)
File "C:\Python27\lib\site-packages\_pytest\core.py", line 433, in _docall
res = mc.execute()
File "C:\Python27\lib\site-packages\_pytest\core.py", line 351, in execute
res = method(**kwargs)
File "C:\Python27\lib\site-packages\_pytest\main.py", line 107, in pytest_cmdline_main
return wrap_session(config, _main)
File "C:\Python27\lib\site-packages\_pytest\main.py", line 99, in wrap_session
exitstatus=session.exitstatus or (session._testsfailed and 1))
File "C:\Python27\lib\site-packages\_pytest\core.py", line 422, in __call__
return self._docall(methods, kwargs)
File "C:\Python27\lib\site-packages\_pytest\core.py", line 433, in _docall
res = mc.execute()
File "C:\Python27\lib\site-packages\_pytest\core.py", line 351, in execute
res = method(**kwargs)
File "C:\Python27\lib\site-packages\_pytest\junitxml.py", line 202, in pytest_sessionfinish
logfile = py.std.codecs.open(self.logfile, 'w', encoding='utf-8')
File "C:\Python27\lib\codecs.py", line 881, in open
file = __builtin__.open(filename, mode, buffering)
IOError: [Errno 22] invalid mode ('wb') or filename: 'C:\\test_pytest\\report.xml'
-------------------------------------------------------- generated xml file: C:\test_pytest\report.xml -------
====================================================================== in 1.47 seconds ======================
These results are from windows 7 professional with python 2.7.3, running on a machine with four cores:
#!text
py.test --version
This is py.test version 2.3.4, imported from C:\Python27\lib\site-packages\pytest.pyc
setuptools registered plugins:
pytest-cov-1.6 at C:\Python27\lib\site-packages\pytest_cov.pyc
pytest-xdist-1.8 at C:\Python27\lib\site-packages\xdist\plugin.pyc
python --version
Python 2.7.3
>>> import execnet
>>> execnet.__version__
'1.1'
My guess: perhaps each node is writing its own copy of the xml report to the same filename.