kevlened / pytest-parallel

A pytest plugin for parallel and concurrent testing
https://github.com/browsertron/pytest-parallel/issues/104#issuecomment-1293941066
MIT License
313 stars 60 forks source link

Test failing #62

Open FFY00 opened 4 years ago

FFY00 commented 4 years ago

I am packaging this for Archlinux and running the tests with python setup.py pytest.

============================= test session starts ==============================
platform linux -- Python 3.8.1, pytest-5.3.5, py-1.8.1, pluggy-0.13.1
rootdir: /build/python-pytest-parallel/src/pytest-parallel-0.0.10
plugins: parallel-0.0.10
collected 31 items

tests/test_concurrent.py .                                               [  3%]
tests/test_general.py ......F..F..F..F..F.FFF.F....                      [ 96%]
tests/test_safenumber.py .                                               [100%]

=================================== FAILURES ===================================
_________________________ test_environ_shim[cli_args1] _________________________

testdir = <Testdir local('/tmp/pytest-of-builduser/pytest-0/test_environ_shim1')>
cli_args = ['--workers=2']

>   ???

/build/python-pytest-parallel/src/pytest-parallel-0.0.10/tests/test_general.py:104:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <RunResult ret=ExitCode.INTERNAL_ERROR len(stdout.lines)=7 len(stderr.lines)=60 duration=0.11s>

>   ???
E   ValueError: Pytest terminal summary report not found

/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py:442: ValueError
----------------------------- Captured stdout call -----------------------------
============================= test session starts ==============================
platform linux -- Python 3.8.1, pytest-5.3.5, py-1.8.1, pluggy-0.13.1
rootdir: /tmp/pytest-of-builduser/pytest-0/test_environ_shim1
plugins: parallel-0.0.10
collected 1 item
pytest-parallel: 2 workers (processes), 1 test per worker (thread)

----------------------------- Captured stderr call -----------------------------
Traceback (most recent call last):
  File "/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py", line 924, in runpytest_inprocess
  File "/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py", line 890, in inline_run
  File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 92, in main
    ret = config.hook.pytest_cmdline_main(
  File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 208, in _multicall
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 187, in _multicall
    res = hook_impl.function(*args)
  File "/usr/lib/python3.8/site-packages/_pytest/main.py", line 240, in pytest_cmdline_main
    return wrap_session(config, _main)
  File "/usr/lib/python3.8/site-packages/_pytest/main.py", line 232, in wrap_session
    config.hook.pytest_sessionfinish(
  File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 337, in traced_hookexec
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 52, in from_call
    result = func()
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 335, in <lambda>
    outcome = _Result.from_call(lambda: oldcall(hook, hook_impls, kwargs))
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 203, in _multicall
    gen.send(outcome)
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 701, in pytest_sessionfinish
    self.summary_stats()
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 912, in summary_stats
    (parts, main_color) = build_summary_stats_line(self.stats)
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 1134, in build_summary_stats_line
    count = sum(
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 1134, in <genexpr>
    count = sum(
  File "<string>", line 2, in __getitem__
  File "/usr/lib/python3.8/multiprocessing/managers.py", line 850, in _callmethod
    raise convert_to_error(kind, result)
multiprocessing.managers.RemoteError:
---------------------------------------------------------------------------
Unserializable message: Traceback (most recent call last):
  File "/usr/lib/python3.8/multiprocessing/managers.py", line 298, in serve_client
    send(msg)
  File "/usr/lib/python3.8/multiprocessing/connection.py", line 206, in send
    self._send_bytes(_ForkingPickler.dumps(obj))
  File "/usr/lib/python3.8/multiprocessing/reduction.py", line 51, in dumps
    cls(buf, protocol).dump(obj)
_pickle.PicklingError: Can't pickle <function unpickle_exception at 0x7f67e4eb7040>: it's not the same object as tblib.pickling_support.unpickle_exception

---------------------------------------------------------------------------
_________________________ test_skip_markers[cli_args1] _________________________

testdir = <Testdir local('/tmp/pytest-of-builduser/pytest-0/test_skip_markers1')>
cli_args = ['--workers=2']

    @pytest.mark.parametrize('cli_args', [
      [],
      ['--workers=2'],
      ['--tests-per-worker=2']
    ])
    def test_skip_markers(testdir, cli_args):
        testdir.makepyfile("""
            import pytest

            def test_1():
                assert 1 == 1

            @pytest.mark.skip(reason="because")
            def test_2():
                assert 2 == 2
        """)
        result = testdir.runpytest(*cli_args)
>       result.assert_outcomes(passed=1, skipped=1)

/build/python-pytest-parallel/src/pytest-parallel-0.0.10/tests/test_general.py:125:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <RunResult ret=ExitCode.INTERNAL_ERROR len(stdout.lines)=7 len(stderr.lines)=60 duration=0.11s>

>   ???
E   ValueError: Pytest terminal summary report not found

/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py:442: ValueError
----------------------------- Captured stdout call -----------------------------
============================= test session starts ==============================
platform linux -- Python 3.8.1, pytest-5.3.5, py-1.8.1, pluggy-0.13.1
rootdir: /tmp/pytest-of-builduser/pytest-0/test_skip_markers1
plugins: parallel-0.0.10
collected 2 items
pytest-parallel: 2 workers (processes), 1 test per worker (thread)

----------------------------- Captured stderr call -----------------------------
Traceback (most recent call last):
  File "/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py", line 924, in runpytest_inprocess
  File "/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py", line 890, in inline_run
  File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 92, in main
    ret = config.hook.pytest_cmdline_main(
  File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 208, in _multicall
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 187, in _multicall
    res = hook_impl.function(*args)
  File "/usr/lib/python3.8/site-packages/_pytest/main.py", line 240, in pytest_cmdline_main
    return wrap_session(config, _main)
  File "/usr/lib/python3.8/site-packages/_pytest/main.py", line 232, in wrap_session
    config.hook.pytest_sessionfinish(
  File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 337, in traced_hookexec
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 52, in from_call
    result = func()
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 335, in <lambda>
    outcome = _Result.from_call(lambda: oldcall(hook, hook_impls, kwargs))
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 203, in _multicall
    gen.send(outcome)
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 701, in pytest_sessionfinish
    self.summary_stats()
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 912, in summary_stats
    (parts, main_color) = build_summary_stats_line(self.stats)
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 1134, in build_summary_stats_line
    count = sum(
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 1134, in <genexpr>
    count = sum(
  File "<string>", line 2, in __getitem__
  File "/usr/lib/python3.8/multiprocessing/managers.py", line 850, in _callmethod
    raise convert_to_error(kind, result)
multiprocessing.managers.RemoteError:
---------------------------------------------------------------------------
Unserializable message: Traceback (most recent call last):
  File "/usr/lib/python3.8/multiprocessing/managers.py", line 298, in serve_client
    send(msg)
  File "/usr/lib/python3.8/multiprocessing/connection.py", line 206, in send
    self._send_bytes(_ForkingPickler.dumps(obj))
  File "/usr/lib/python3.8/multiprocessing/reduction.py", line 51, in dumps
    cls(buf, protocol).dump(obj)
_pickle.PicklingError: Can't pickle <function unpickle_exception at 0x7f67e42c5a60>: it's not the same object as tblib.pickling_support.unpickle_exception

---------------------------------------------------------------------------
________________________ test_skipif_markers[cli_args1] ________________________

testdir = <Testdir local('/tmp/pytest-of-builduser/pytest-0/test_skipif_markers1')>
cli_args = ['--workers=2']

    @pytest.mark.parametrize('cli_args', [
      [],
      ['--workers=2'],
      ['--tests-per-worker=2']
    ])
    def test_skipif_markers(testdir, cli_args):
        testdir.makepyfile("""
            import pytest

            def test_1():
                assert 1 == 1

            @pytest.mark.skipif(True, reason="because")
            def test_2():
                assert 2 == 2

            @pytest.mark.skipif(
                "config.getoption('workers') or not config.getoption('workers')",
                reason="because"
            )
            def test_3():
                assert 3 == 3
        """)
        result = testdir.runpytest(*cli_args)
>       result.assert_outcomes(passed=1, skipped=2)

/build/python-pytest-parallel/src/pytest-parallel-0.0.10/tests/test_general.py:153:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <RunResult ret=ExitCode.INTERNAL_ERROR len(stdout.lines)=7 len(stderr.lines)=60 duration=0.12s>

>   ???
E   ValueError: Pytest terminal summary report not found

/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py:442: ValueError
----------------------------- Captured stdout call -----------------------------
============================= test session starts ==============================
platform linux -- Python 3.8.1, pytest-5.3.5, py-1.8.1, pluggy-0.13.1
rootdir: /tmp/pytest-of-builduser/pytest-0/test_skipif_markers1
plugins: parallel-0.0.10
collected 3 items
pytest-parallel: 2 workers (processes), 1 test per worker (thread)

----------------------------- Captured stderr call -----------------------------
Traceback (most recent call last):
  File "/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py", line 924, in runpytest_inprocess
  File "/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py", line 890, in inline_run
  File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 92, in main
    ret = config.hook.pytest_cmdline_main(
  File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 208, in _multicall
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 187, in _multicall
    res = hook_impl.function(*args)
  File "/usr/lib/python3.8/site-packages/_pytest/main.py", line 240, in pytest_cmdline_main
    return wrap_session(config, _main)
  File "/usr/lib/python3.8/site-packages/_pytest/main.py", line 232, in wrap_session
    config.hook.pytest_sessionfinish(
  File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 337, in traced_hookexec
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 52, in from_call
    result = func()
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 335, in <lambda>
    outcome = _Result.from_call(lambda: oldcall(hook, hook_impls, kwargs))
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 203, in _multicall
    gen.send(outcome)
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 701, in pytest_sessionfinish
    self.summary_stats()
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 912, in summary_stats
    (parts, main_color) = build_summary_stats_line(self.stats)
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 1134, in build_summary_stats_line
    count = sum(
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 1134, in <genexpr>
    count = sum(
  File "<string>", line 2, in __getitem__
  File "/usr/lib/python3.8/multiprocessing/managers.py", line 850, in _callmethod
    raise convert_to_error(kind, result)
multiprocessing.managers.RemoteError:
---------------------------------------------------------------------------
Unserializable message: Traceback (most recent call last):
  File "/usr/lib/python3.8/multiprocessing/managers.py", line 298, in serve_client
    send(msg)
  File "/usr/lib/python3.8/multiprocessing/connection.py", line 206, in send
    self._send_bytes(_ForkingPickler.dumps(obj))
  File "/usr/lib/python3.8/multiprocessing/reduction.py", line 51, in dumps
    cls(buf, protocol).dump(obj)
_pickle.PicklingError: Can't pickle <function unpickle_exception at 0x7f67e418f310>: it's not the same object as tblib.pickling_support.unpickle_exception

---------------------------------------------------------------------------
________________________ test_custom_markers[cli_args1] ________________________

testdir = <Testdir local('/tmp/pytest-of-builduser/pytest-0/test_custom_markers1')>
cli_args = ['--workers=2']

    @pytest.mark.parametrize('cli_args', [
      [],
      ['--workers=2'],
      ['--tests-per-worker=2']
    ])
    def test_custom_markers(testdir, cli_args):
        testdir.makepyfile("""
            import pytest

            def test_1():
                assert 1 == 1

            @pytest.mark.marked
            def test_2():
                assert 2 == 2
        """)
        result = testdir.runpytest('-m marked', *cli_args)
>       result.assert_outcomes(passed=1, skipped=0)

/build/python-pytest-parallel/src/pytest-parallel-0.0.10/tests/test_general.py:174:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <RunResult ret=ExitCode.INTERNAL_ERROR len(stdout.lines)=7 len(stderr.lines)=78 duration=0.12s>

>   ???
E   ValueError: Pytest terminal summary report not found

/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py:442: ValueError
----------------------------- Captured stdout call -----------------------------
============================= test session starts ==============================
platform linux -- Python 3.8.1, pytest-5.3.5, py-1.8.1, pluggy-0.13.1
rootdir: /tmp/pytest-of-builduser/pytest-0/test_custom_markers1
plugins: parallel-0.0.10
collected 2 items / 1 deselected / 1 selected
pytest-parallel: 2 workers (processes), 1 test per worker (thread)

----------------------------- Captured stderr call -----------------------------
Traceback (most recent call last):
  File "/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py", line 924, in runpytest_inprocess
  File "/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py", line 890, in inline_run
  File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 92, in main
    ret = config.hook.pytest_cmdline_main(
  File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 208, in _multicall
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 187, in _multicall
    res = hook_impl.function(*args)
  File "/usr/lib/python3.8/site-packages/_pytest/main.py", line 240, in pytest_cmdline_main
    return wrap_session(config, _main)
  File "/usr/lib/python3.8/site-packages/_pytest/main.py", line 232, in wrap_session
    config.hook.pytest_sessionfinish(
  File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 337, in traced_hookexec
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 52, in from_call
    result = func()
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 335, in <lambda>
    outcome = _Result.from_call(lambda: oldcall(hook, hook_impls, kwargs))
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 203, in _multicall
    gen.send(outcome)
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 691, in pytest_sessionfinish
    self.config.hook.pytest_terminal_summary(
  File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 337, in traced_hookexec
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 52, in from_call
    result = func()
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 335, in <lambda>
    outcome = _Result.from_call(lambda: oldcall(hook, hook_impls, kwargs))
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 208, in _multicall
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 182, in _multicall
    next(gen)  # first yield
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 707, in pytest_terminal_summary
    self.summary_warnings()
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 802, in summary_warnings
    for wr in warning_reports:
  File "<string>", line 2, in __getitem__
  File "/usr/lib/python3.8/multiprocessing/managers.py", line 850, in _callmethod
    raise convert_to_error(kind, result)
multiprocessing.managers.RemoteError:
---------------------------------------------------------------------------
Unserializable message: Traceback (most recent call last):
  File "/usr/lib/python3.8/multiprocessing/managers.py", line 298, in serve_client
    send(msg)
  File "/usr/lib/python3.8/multiprocessing/connection.py", line 206, in send
    self._send_bytes(_ForkingPickler.dumps(obj))
  File "/usr/lib/python3.8/multiprocessing/reduction.py", line 51, in dumps
    cls(buf, protocol).dump(obj)
_pickle.PicklingError: Can't pickle <function unpickle_exception at 0x7f67e40e6820>: it's not the same object as tblib.pickling_support.unpickle_exception

---------------------------------------------------------------------------
______________________ test_multiple_failures[cli_args1] _______________________

testdir = <Testdir local('/tmp/pytest-of-builduser/pytest-0/test_multiple_failures1')>
cli_args = ['--workers=2']

    @pytest.mark.parametrize('cli_args', [
      [],
      ['--workers=2'],
      ['--tests-per-worker=2']
    ])
    def test_multiple_failures(testdir, cli_args):
        testdir.makepyfile("""
            def test_0():
                assert 1 == 2

            def test_1():
                assert True == False

            def test_2():
                assert 1 == 2

            def test_3():
                assert True == False
        """)
        result = testdir.runpytest(*cli_args)
>       result.assert_outcomes(failed=4)

/build/python-pytest-parallel/src/pytest-parallel-0.0.10/tests/test_general.py:198:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <RunResult ret=ExitCode.INTERNAL_ERROR len(stdout.lines)=7 len(stderr.lines)=80 duration=0.15s>

>   ???
E   ValueError: Pytest terminal summary report not found

/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py:442: ValueError
----------------------------- Captured stdout call -----------------------------
============================= test session starts ==============================
platform linux -- Python 3.8.1, pytest-5.3.5, py-1.8.1, pluggy-0.13.1
rootdir: /tmp/pytest-of-builduser/pytest-0/test_multiple_failures1
plugins: parallel-0.0.10
collected 4 items
pytest-parallel: 2 workers (processes), 1 test per worker (thread)

----------------------------- Captured stderr call -----------------------------
Traceback (most recent call last):
  File "/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py", line 924, in runpytest_inprocess
  File "/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py", line 890, in inline_run
  File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 92, in main
    ret = config.hook.pytest_cmdline_main(
  File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 208, in _multicall
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 187, in _multicall
    res = hook_impl.function(*args)
  File "/usr/lib/python3.8/site-packages/_pytest/main.py", line 240, in pytest_cmdline_main
    return wrap_session(config, _main)
  File "/usr/lib/python3.8/site-packages/_pytest/main.py", line 232, in wrap_session
    config.hook.pytest_sessionfinish(
  File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 337, in traced_hookexec
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 52, in from_call
    result = func()
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 335, in <lambda>
    outcome = _Result.from_call(lambda: oldcall(hook, hook_impls, kwargs))
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 203, in _multicall
    gen.send(outcome)
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 691, in pytest_sessionfinish
    self.config.hook.pytest_terminal_summary(
  File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 337, in traced_hookexec
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 52, in from_call
    result = func()
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 335, in <lambda>
    outcome = _Result.from_call(lambda: oldcall(hook, hook_impls, kwargs))
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 208, in _multicall
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 182, in _multicall
    next(gen)  # first yield
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 706, in pytest_terminal_summary
    self.summary_failures()
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 864, in summary_failures
    reports = self.getreports("failed")
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 777, in getreports
    for x in self.stats.get(name, []):
  File "<string>", line 2, in __getitem__
  File "/usr/lib/python3.8/multiprocessing/managers.py", line 850, in _callmethod
    raise convert_to_error(kind, result)
multiprocessing.managers.RemoteError:
---------------------------------------------------------------------------
Unserializable message: Traceback (most recent call last):
  File "/usr/lib/python3.8/multiprocessing/managers.py", line 298, in serve_client
    send(msg)
  File "/usr/lib/python3.8/multiprocessing/connection.py", line 206, in send
    self._send_bytes(_ForkingPickler.dumps(obj))
  File "/usr/lib/python3.8/multiprocessing/reduction.py", line 51, in dumps
    cls(buf, protocol).dump(obj)
_pickle.PicklingError: Can't pickle <function unpickle_exception at 0x7f67df6f1af0>: it's not the same object as tblib.pickling_support.unpickle_exception

---------------------------------------------------------------------------
_________________________ test_pytest_html[cli_args0] __________________________

testdir = <Testdir local('/tmp/pytest-of-builduser/pytest-0/test_pytest_html0')>
cli_args = []

    @pytest.mark.parametrize('cli_args', [
      [],
      ['--workers=2'],
      ['--tests-per-worker=2']
    ])
    def test_pytest_html(testdir, cli_args):
        report = testdir.tmpdir.join('report.html')
        testdir.makepyfile("""
            def test_1():
                assert 1 == 1

            def test_2():
                assert 1 == 2
        """)
        result = testdir.runpytest('--html=' + str(report), *cli_args)
>       result.assert_outcomes(passed=1, failed=1)

/build/python-pytest-parallel/src/pytest-parallel-0.0.10/tests/test_general.py:217:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <RunResult ret=ExitCode.USAGE_ERROR len(stdout.lines)=0 len(stderr.lines)=5 duration=0.04s>

>   ???
E   ValueError: Pytest terminal summary report not found

/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py:442: ValueError
----------------------------- Captured stderr call -----------------------------
ERROR: usage: setup.py [options] [file_or_dir] [file_or_dir] [...]
setup.py: error: unrecognized arguments: --html=/tmp/pytest-of-builduser/pytest-0/test_pytest_html0/report.html
  inifile: None
  rootdir: /tmp/pytest-of-builduser/pytest-0/test_pytest_html0

_________________________ test_pytest_html[cli_args1] __________________________

testdir = <Testdir local('/tmp/pytest-of-builduser/pytest-0/test_pytest_html1')>
cli_args = ['--workers=2']

    @pytest.mark.parametrize('cli_args', [
      [],
      ['--workers=2'],
      ['--tests-per-worker=2']
    ])
    def test_pytest_html(testdir, cli_args):
        report = testdir.tmpdir.join('report.html')
        testdir.makepyfile("""
            def test_1():
                assert 1 == 1

            def test_2():
                assert 1 == 2
        """)
        result = testdir.runpytest('--html=' + str(report), *cli_args)
>       result.assert_outcomes(passed=1, failed=1)

/build/python-pytest-parallel/src/pytest-parallel-0.0.10/tests/test_general.py:217:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <RunResult ret=ExitCode.USAGE_ERROR len(stdout.lines)=0 len(stderr.lines)=5 duration=0.04s>

>   ???
E   ValueError: Pytest terminal summary report not found

/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py:442: ValueError
----------------------------- Captured stderr call -----------------------------
ERROR: usage: setup.py [options] [file_or_dir] [file_or_dir] [...]
setup.py: error: unrecognized arguments: --html=/tmp/pytest-of-builduser/pytest-0/test_pytest_html1/report.html
  inifile: None
  rootdir: /tmp/pytest-of-builduser/pytest-0/test_pytest_html1

_________________________ test_pytest_html[cli_args2] __________________________

testdir = <Testdir local('/tmp/pytest-of-builduser/pytest-0/test_pytest_html2')>
cli_args = ['--tests-per-worker=2']

    @pytest.mark.parametrize('cli_args', [
      [],
      ['--workers=2'],
      ['--tests-per-worker=2']
    ])
    def test_pytest_html(testdir, cli_args):
        report = testdir.tmpdir.join('report.html')
        testdir.makepyfile("""
            def test_1():
                assert 1 == 1

            def test_2():
                assert 1 == 2
        """)
        result = testdir.runpytest('--html=' + str(report), *cli_args)
>       result.assert_outcomes(passed=1, failed=1)

/build/python-pytest-parallel/src/pytest-parallel-0.0.10/tests/test_general.py:217:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <RunResult ret=ExitCode.USAGE_ERROR len(stdout.lines)=0 len(stderr.lines)=5 duration=0.04s>

>   ???
E   ValueError: Pytest terminal summary report not found

/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py:442: ValueError
----------------------------- Captured stderr call -----------------------------
ERROR: usage: setup.py [options] [file_or_dir] [file_or_dir] [...]
setup.py: error: unrecognized arguments: --html=/tmp/pytest-of-builduser/pytest-0/test_pytest_html2/report.html
  inifile: None
  rootdir: /tmp/pytest-of-builduser/pytest-0/test_pytest_html2

_______________________ test_collection_error[cli_args1] _______________________

testdir = <Testdir local('/tmp/pytest-of-builduser/pytest-0/test_collection_error1')>
cli_args = ['--workers=2']

    @pytest.mark.parametrize('cli_args', [
      [],
      ['--workers=2'],
      ['--tests-per-worker=2']
    ])
    def test_collection_error(testdir, cli_args):
        testdir.makepyfile(first_file_test="""
            def test_1():
                assert 1 == 1
        """, second_file_test="""
            raise Exception('Failed to load test file')
        """)
        result = testdir.runpytest(*cli_args)
>       result.assert_outcomes(error=1)

/build/python-pytest-parallel/src/pytest-parallel-0.0.10/tests/test_general.py:241:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <RunResult ret=ExitCode.INTERNAL_ERROR len(stdout.lines)=7 len(stderr.lines)=80 duration=0.14s>

>   ???
E   ValueError: Pytest terminal summary report not found

/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py:442: ValueError
----------------------------- Captured stdout call -----------------------------
============================= test session starts ==============================
platform linux -- Python 3.8.1, pytest-5.3.5, py-1.8.1, pluggy-0.13.1
rootdir: /tmp/pytest-of-builduser/pytest-0/test_collection_error1
plugins: parallel-0.0.10
collected 1 item / 1 error

!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!
----------------------------- Captured stderr call -----------------------------
Traceback (most recent call last):
  File "/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py", line 924, in runpytest_inprocess
  File "/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py", line 890, in inline_run
  File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 92, in main
    ret = config.hook.pytest_cmdline_main(
  File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 208, in _multicall
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 187, in _multicall
    res = hook_impl.function(*args)
  File "/usr/lib/python3.8/site-packages/_pytest/main.py", line 240, in pytest_cmdline_main
    return wrap_session(config, _main)
  File "/usr/lib/python3.8/site-packages/_pytest/main.py", line 232, in wrap_session
    config.hook.pytest_sessionfinish(
  File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 337, in traced_hookexec
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 52, in from_call
    result = func()
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 335, in <lambda>
    outcome = _Result.from_call(lambda: oldcall(hook, hook_impls, kwargs))
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 203, in _multicall
    gen.send(outcome)
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 691, in pytest_sessionfinish
    self.config.hook.pytest_terminal_summary(
  File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 337, in traced_hookexec
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 52, in from_call
    result = func()
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 335, in <lambda>
    outcome = _Result.from_call(lambda: oldcall(hook, hook_impls, kwargs))
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 208, in _multicall
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 182, in _multicall
    next(gen)  # first yield
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 705, in pytest_terminal_summary
    self.summary_errors()
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 881, in summary_errors
    reports = self.getreports("error")
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 777, in getreports
    for x in self.stats.get(name, []):
  File "<string>", line 2, in __getitem__
  File "/usr/lib/python3.8/multiprocessing/managers.py", line 850, in _callmethod
    raise convert_to_error(kind, result)
multiprocessing.managers.RemoteError:
---------------------------------------------------------------------------
Unserializable message: Traceback (most recent call last):
  File "/usr/lib/python3.8/multiprocessing/managers.py", line 298, in serve_client
    send(msg)
  File "/usr/lib/python3.8/multiprocessing/connection.py", line 206, in send
    self._send_bytes(_ForkingPickler.dumps(obj))
  File "/usr/lib/python3.8/multiprocessing/reduction.py", line 51, in dumps
    cls(buf, protocol).dump(obj)
_pickle.PicklingError: Can't pickle <function unpickle_exception at 0x7f67df4d14c0>: it's not the same object as tblib.pickling_support.unpickle_exception

---------------------------------------------------------------------------
========================= 9 failed, 22 passed in 3.37s =========================
blueyed commented 4 years ago

Thanks for the report. This is due to a change in tblib: https://github.com/ionelmc/python-tblib/pull/54#issuecomment-586949067 - have not investigated, just bisected.

Note that it works with --lf to only re-run failures, so it seems possible that there is a problem with the tests themselves only.

FWIW I am seeing 7 failures only (with -rf):

FAILED tests/test_general.py::test_environ_shim[cli_args1] - ValueError: Pytest terminal summary report not found
FAILED tests/test_general.py::test_skip_markers[cli_args1] - ValueError: Pytest terminal summary report not found
FAILED tests/test_general.py::test_skipif_markers[cli_args1] - ValueError: Pytest terminal summary report not found
FAILED tests/test_general.py::test_custom_markers[cli_args1] - ValueError: Pytest terminal summary report not found
FAILED tests/test_general.py::test_multiple_failures[cli_args1] - ValueError: Pytest terminal summary report not found
FAILED tests/test_general.py::test_pytest_html[cli_args1] - ValueError: Pytest terminal summary report not found
FAILED tests/test_general.py::test_collection_error[cli_args1] - ValueError: Pytest terminal summary report not found
FFY00 commented 4 years ago

Yes, the other error might be because I am running with pytest-runner. Optimally we would detect this and skip the tests.

blueyed commented 4 years ago

Are the others in the output above? Can you post the output using --tb=short -ra?

FFY00 commented 4 years ago

On python 3.8 with pytest 5.3.5, running pyest --tb=short -ra:

============================= test session starts ==============================
platform linux -- Python 3.8.1, pytest-5.3.5, py-1.8.1, pluggy-0.13.1
rootdir: /home/anubis/git/pytest-parallel
plugins: parallel-0.0.10, forked-1.1.3, timeout-1.3.4, hypothesis-4.54.2, xdist-1.31.0
collected 31 items

tests/test_concurrent.py .                                               [  3%]
tests/test_general.py ......F..F..F..F..F.FFF.F....                      [ 96%]
tests/test_safenumber.py .                                               [100%]

=================================== FAILURES ===================================
_________________________ test_environ_shim[cli_args1] _________________________
/home/anubis/git/pytest-parallel/tests/test_general.py:104: in test_environ_shim
    result.assert_outcomes(passed=1)
/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py:442: in parseoutcomes
    ???
E   ValueError: Pytest terminal summary report not found
----------------------------- Captured stdout call -----------------------------
============================= test session starts ==============================
platform linux -- Python 3.8.1, pytest-5.3.5, py-1.8.1, pluggy-0.13.1
rootdir: /tmp/pytest-of-anubis/pytest-4/test_environ_shim1
plugins: parallel-0.0.10, forked-1.1.3, timeout-1.3.4, hypothesis-4.54.2, xdist-1.31.0
collected 1 item
pytest-parallel: 2 workers (processes), 1 test per worker (thread)

----------------------------- Captured stderr call -----------------------------
Traceback (most recent call last):
  File "/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py", line 924, in runpytest_inprocess
  File "/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py", line 890, in inline_run
  File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 92, in main
    ret = config.hook.pytest_cmdline_main(
  File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 208, in _multicall
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 187, in _multicall
    res = hook_impl.function(*args)
  File "/usr/lib/python3.8/site-packages/_pytest/main.py", line 240, in pytest_cmdline_main
    return wrap_session(config, _main)
  File "/usr/lib/python3.8/site-packages/_pytest/main.py", line 232, in wrap_session
    config.hook.pytest_sessionfinish(
  File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 337, in traced_hookexec
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 52, in from_call
    result = func()
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 335, in <lambda>
    outcome = _Result.from_call(lambda: oldcall(hook, hook_impls, kwargs))
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 203, in _multicall
    gen.send(outcome)
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 701, in pytest_sessionfinish
    self.summary_stats()
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 912, in summary_stats
    (parts, main_color) = build_summary_stats_line(self.stats)
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 1134, in build_summary_stats_line
    count = sum(
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 1134, in <genexpr>
    count = sum(
  File "<string>", line 2, in __getitem__
  File "/usr/lib/python3.8/multiprocessing/managers.py", line 850, in _callmethod
    raise convert_to_error(kind, result)
multiprocessing.managers.RemoteError: 
---------------------------------------------------------------------------
Unserializable message: Traceback (most recent call last):
  File "/usr/lib/python3.8/multiprocessing/managers.py", line 298, in serve_client
    send(msg)
  File "/usr/lib/python3.8/multiprocessing/connection.py", line 206, in send
    self._send_bytes(_ForkingPickler.dumps(obj))
  File "/usr/lib/python3.8/multiprocessing/reduction.py", line 51, in dumps
    cls(buf, protocol).dump(obj)
_pickle.PicklingError: Can't pickle <function unpickle_exception at 0x7fc469bc3790>: it's not the same object as tblib.pickling_support.unpickle_exception

---------------------------------------------------------------------------
_________________________ test_skip_markers[cli_args1] _________________________
/home/anubis/git/pytest-parallel/tests/test_general.py:125: in test_skip_markers
    result.assert_outcomes(passed=1, skipped=1)
/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py:442: in parseoutcomes
    ???
E   ValueError: Pytest terminal summary report not found
----------------------------- Captured stdout call -----------------------------
============================= test session starts ==============================
platform linux -- Python 3.8.1, pytest-5.3.5, py-1.8.1, pluggy-0.13.1
rootdir: /tmp/pytest-of-anubis/pytest-4/test_skip_markers1
plugins: parallel-0.0.10, forked-1.1.3, timeout-1.3.4, hypothesis-4.54.2, xdist-1.31.0
collected 2 items
pytest-parallel: 2 workers (processes), 1 test per worker (thread)

----------------------------- Captured stderr call -----------------------------
Traceback (most recent call last):
  File "/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py", line 924, in runpytest_inprocess
  File "/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py", line 890, in inline_run
  File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 92, in main
    ret = config.hook.pytest_cmdline_main(
  File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 208, in _multicall
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 187, in _multicall
    res = hook_impl.function(*args)
  File "/usr/lib/python3.8/site-packages/_pytest/main.py", line 240, in pytest_cmdline_main
    return wrap_session(config, _main)
  File "/usr/lib/python3.8/site-packages/_pytest/main.py", line 232, in wrap_session
    config.hook.pytest_sessionfinish(
  File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 337, in traced_hookexec
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 52, in from_call
    result = func()
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 335, in <lambda>
    outcome = _Result.from_call(lambda: oldcall(hook, hook_impls, kwargs))
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 203, in _multicall
    gen.send(outcome)
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 701, in pytest_sessionfinish
    self.summary_stats()
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 912, in summary_stats
    (parts, main_color) = build_summary_stats_line(self.stats)
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 1134, in build_summary_stats_line
    count = sum(
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 1134, in <genexpr>
    count = sum(
  File "<string>", line 2, in __getitem__
  File "/usr/lib/python3.8/multiprocessing/managers.py", line 850, in _callmethod
    raise convert_to_error(kind, result)
multiprocessing.managers.RemoteError: 
---------------------------------------------------------------------------
Unserializable message: Traceback (most recent call last):
  File "/usr/lib/python3.8/multiprocessing/managers.py", line 298, in serve_client
    send(msg)
  File "/usr/lib/python3.8/multiprocessing/connection.py", line 206, in send
    self._send_bytes(_ForkingPickler.dumps(obj))
  File "/usr/lib/python3.8/multiprocessing/reduction.py", line 51, in dumps
    cls(buf, protocol).dump(obj)
_pickle.PicklingError: Can't pickle <function unpickle_exception at 0x7fc46671f280>: it's not the same object as tblib.pickling_support.unpickle_exception

---------------------------------------------------------------------------
________________________ test_skipif_markers[cli_args1] ________________________
/home/anubis/git/pytest-parallel/tests/test_general.py:153: in test_skipif_markers
    result.assert_outcomes(passed=1, skipped=2)
/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py:442: in parseoutcomes
    ???
E   ValueError: Pytest terminal summary report not found
----------------------------- Captured stdout call -----------------------------
============================= test session starts ==============================
platform linux -- Python 3.8.1, pytest-5.3.5, py-1.8.1, pluggy-0.13.1
rootdir: /tmp/pytest-of-anubis/pytest-4/test_skipif_markers1
plugins: parallel-0.0.10, forked-1.1.3, timeout-1.3.4, hypothesis-4.54.2, xdist-1.31.0
collected 3 items
pytest-parallel: 2 workers (processes), 1 test per worker (thread)

----------------------------- Captured stderr call -----------------------------
Traceback (most recent call last):
  File "/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py", line 924, in runpytest_inprocess
  File "/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py", line 890, in inline_run
  File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 92, in main
    ret = config.hook.pytest_cmdline_main(
  File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 208, in _multicall
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 187, in _multicall
    res = hook_impl.function(*args)
  File "/usr/lib/python3.8/site-packages/_pytest/main.py", line 240, in pytest_cmdline_main
    return wrap_session(config, _main)
  File "/usr/lib/python3.8/site-packages/_pytest/main.py", line 232, in wrap_session
    config.hook.pytest_sessionfinish(
  File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 337, in traced_hookexec
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 52, in from_call
    result = func()
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 335, in <lambda>
    outcome = _Result.from_call(lambda: oldcall(hook, hook_impls, kwargs))
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 203, in _multicall
    gen.send(outcome)
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 701, in pytest_sessionfinish
    self.summary_stats()
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 912, in summary_stats
    (parts, main_color) = build_summary_stats_line(self.stats)
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 1134, in build_summary_stats_line
    count = sum(
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 1134, in <genexpr>
    count = sum(
  File "<string>", line 2, in __getitem__
  File "/usr/lib/python3.8/multiprocessing/managers.py", line 850, in _callmethod
    raise convert_to_error(kind, result)
multiprocessing.managers.RemoteError: 
---------------------------------------------------------------------------
Unserializable message: Traceback (most recent call last):
  File "/usr/lib/python3.8/multiprocessing/managers.py", line 298, in serve_client
    send(msg)
  File "/usr/lib/python3.8/multiprocessing/connection.py", line 206, in send
    self._send_bytes(_ForkingPickler.dumps(obj))
  File "/usr/lib/python3.8/multiprocessing/reduction.py", line 51, in dumps
    cls(buf, protocol).dump(obj)
_pickle.PicklingError: Can't pickle <function unpickle_exception at 0x7fc4665fb160>: it's not the same object as tblib.pickling_support.unpickle_exception

---------------------------------------------------------------------------
________________________ test_custom_markers[cli_args1] ________________________
/home/anubis/git/pytest-parallel/tests/test_general.py:174: in test_custom_markers
    result.assert_outcomes(passed=1, skipped=0)
/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py:442: in parseoutcomes
    ???
E   ValueError: Pytest terminal summary report not found
----------------------------- Captured stdout call -----------------------------
============================= test session starts ==============================
platform linux -- Python 3.8.1, pytest-5.3.5, py-1.8.1, pluggy-0.13.1
rootdir: /tmp/pytest-of-anubis/pytest-4/test_custom_markers1
plugins: parallel-0.0.10, forked-1.1.3, timeout-1.3.4, hypothesis-4.54.2, xdist-1.31.0
collected 2 items / 1 deselected / 1 selected
pytest-parallel: 2 workers (processes), 1 test per worker (thread)

----------------------------- Captured stderr call -----------------------------
Traceback (most recent call last):
  File "/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py", line 924, in runpytest_inprocess
  File "/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py", line 890, in inline_run
  File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 92, in main
    ret = config.hook.pytest_cmdline_main(
  File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 208, in _multicall
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 187, in _multicall
    res = hook_impl.function(*args)
  File "/usr/lib/python3.8/site-packages/_pytest/main.py", line 240, in pytest_cmdline_main
    return wrap_session(config, _main)
  File "/usr/lib/python3.8/site-packages/_pytest/main.py", line 232, in wrap_session
    config.hook.pytest_sessionfinish(
  File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 337, in traced_hookexec
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 52, in from_call
    result = func()
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 335, in <lambda>
    outcome = _Result.from_call(lambda: oldcall(hook, hook_impls, kwargs))
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 203, in _multicall
    gen.send(outcome)
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 691, in pytest_sessionfinish
    self.config.hook.pytest_terminal_summary(
  File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 337, in traced_hookexec
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 52, in from_call
    result = func()
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 335, in <lambda>
    outcome = _Result.from_call(lambda: oldcall(hook, hook_impls, kwargs))
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 208, in _multicall
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 182, in _multicall
    next(gen)  # first yield
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 707, in pytest_terminal_summary
    self.summary_warnings()
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 802, in summary_warnings
    for wr in warning_reports:
  File "<string>", line 2, in __getitem__
  File "/usr/lib/python3.8/multiprocessing/managers.py", line 850, in _callmethod
    raise convert_to_error(kind, result)
multiprocessing.managers.RemoteError: 
---------------------------------------------------------------------------
Unserializable message: Traceback (most recent call last):
  File "/usr/lib/python3.8/multiprocessing/managers.py", line 298, in serve_client
    send(msg)
  File "/usr/lib/python3.8/multiprocessing/connection.py", line 206, in send
    self._send_bytes(_ForkingPickler.dumps(obj))
  File "/usr/lib/python3.8/multiprocessing/reduction.py", line 51, in dumps
    cls(buf, protocol).dump(obj)
_pickle.PicklingError: Can't pickle <function unpickle_exception at 0x7fc466682160>: it's not the same object as tblib.pickling_support.unpickle_exception

---------------------------------------------------------------------------
______________________ test_multiple_failures[cli_args1] _______________________
/home/anubis/git/pytest-parallel/tests/test_general.py:198: in test_multiple_failures
    result.assert_outcomes(failed=4)
/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py:442: in parseoutcomes
    ???
E   ValueError: Pytest terminal summary report not found
----------------------------- Captured stdout call -----------------------------
============================= test session starts ==============================
platform linux -- Python 3.8.1, pytest-5.3.5, py-1.8.1, pluggy-0.13.1
rootdir: /tmp/pytest-of-anubis/pytest-4/test_multiple_failures1
plugins: parallel-0.0.10, forked-1.1.3, timeout-1.3.4, hypothesis-4.54.2, xdist-1.31.0
collected 4 items
pytest-parallel: 2 workers (processes), 1 test per worker (thread)

----------------------------- Captured stderr call -----------------------------
Traceback (most recent call last):
  File "/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py", line 924, in runpytest_inprocess
  File "/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py", line 890, in inline_run
  File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 92, in main
    ret = config.hook.pytest_cmdline_main(
  File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 208, in _multicall
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 187, in _multicall
    res = hook_impl.function(*args)
  File "/usr/lib/python3.8/site-packages/_pytest/main.py", line 240, in pytest_cmdline_main
    return wrap_session(config, _main)
  File "/usr/lib/python3.8/site-packages/_pytest/main.py", line 232, in wrap_session
    config.hook.pytest_sessionfinish(
  File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 337, in traced_hookexec
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 52, in from_call
    result = func()
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 335, in <lambda>
    outcome = _Result.from_call(lambda: oldcall(hook, hook_impls, kwargs))
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 203, in _multicall
    gen.send(outcome)
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 691, in pytest_sessionfinish
    self.config.hook.pytest_terminal_summary(
  File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 337, in traced_hookexec
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 52, in from_call
    result = func()
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 335, in <lambda>
    outcome = _Result.from_call(lambda: oldcall(hook, hook_impls, kwargs))
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 208, in _multicall
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 182, in _multicall
    next(gen)  # first yield
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 706, in pytest_terminal_summary
    self.summary_failures()
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 864, in summary_failures
    reports = self.getreports("failed")
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 777, in getreports
    for x in self.stats.get(name, []):
  File "<string>", line 2, in __getitem__
  File "/usr/lib/python3.8/multiprocessing/managers.py", line 850, in _callmethod
    raise convert_to_error(kind, result)
multiprocessing.managers.RemoteError: 
---------------------------------------------------------------------------
Unserializable message: Traceback (most recent call last):
  File "/usr/lib/python3.8/multiprocessing/managers.py", line 298, in serve_client
    send(msg)
  File "/usr/lib/python3.8/multiprocessing/connection.py", line 206, in send
    self._send_bytes(_ForkingPickler.dumps(obj))
  File "/usr/lib/python3.8/multiprocessing/reduction.py", line 51, in dumps
    cls(buf, protocol).dump(obj)
_pickle.PicklingError: Can't pickle <function unpickle_exception at 0x7fc4663fe430>: it's not the same object as tblib.pickling_support.unpickle_exception

---------------------------------------------------------------------------
_________________________ test_pytest_html[cli_args0] __________________________
/home/anubis/git/pytest-parallel/tests/test_general.py:217: in test_pytest_html
    result.assert_outcomes(passed=1, failed=1)
/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py:442: in parseoutcomes
    ???
E   ValueError: Pytest terminal summary report not found
----------------------------- Captured stderr call -----------------------------
ERROR: usage: pytest [options] [file_or_dir] [file_or_dir] [...]
pytest: error: unrecognized arguments: --html=/tmp/pytest-of-anubis/pytest-4/test_pytest_html0/report.html
  inifile: None
  rootdir: /tmp/pytest-of-anubis/pytest-4/test_pytest_html0

_________________________ test_pytest_html[cli_args1] __________________________
/home/anubis/git/pytest-parallel/tests/test_general.py:217: in test_pytest_html
    result.assert_outcomes(passed=1, failed=1)
/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py:442: in parseoutcomes
    ???
E   ValueError: Pytest terminal summary report not found
----------------------------- Captured stderr call -----------------------------
ERROR: usage: pytest [options] [file_or_dir] [file_or_dir] [...]
pytest: error: unrecognized arguments: --html=/tmp/pytest-of-anubis/pytest-4/test_pytest_html1/report.html
  inifile: None
  rootdir: /tmp/pytest-of-anubis/pytest-4/test_pytest_html1

_________________________ test_pytest_html[cli_args2] __________________________
/home/anubis/git/pytest-parallel/tests/test_general.py:217: in test_pytest_html
    result.assert_outcomes(passed=1, failed=1)
/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py:442: in parseoutcomes
    ???
E   ValueError: Pytest terminal summary report not found
----------------------------- Captured stderr call -----------------------------
ERROR: usage: pytest [options] [file_or_dir] [file_or_dir] [...]
pytest: error: unrecognized arguments: --html=/tmp/pytest-of-anubis/pytest-4/test_pytest_html2/report.html
  inifile: None
  rootdir: /tmp/pytest-of-anubis/pytest-4/test_pytest_html2

_______________________ test_collection_error[cli_args1] _______________________
/home/anubis/git/pytest-parallel/tests/test_general.py:241: in test_collection_error
    result.assert_outcomes(error=1)
/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py:442: in parseoutcomes
    ???
E   ValueError: Pytest terminal summary report not found
----------------------------- Captured stdout call -----------------------------
============================= test session starts ==============================
platform linux -- Python 3.8.1, pytest-5.3.5, py-1.8.1, pluggy-0.13.1
rootdir: /tmp/pytest-of-anubis/pytest-4/test_collection_error1
plugins: parallel-0.0.10, forked-1.1.3, timeout-1.3.4, hypothesis-4.54.2, xdist-1.31.0
collected 1 item / 1 error

!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!
----------------------------- Captured stderr call -----------------------------
Traceback (most recent call last):
  File "/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py", line 924, in runpytest_inprocess
  File "/build/python-pytest/src/pytest-5.3.5/build/lib/_pytest/pytester.py", line 890, in inline_run
  File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 92, in main
    ret = config.hook.pytest_cmdline_main(
  File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 208, in _multicall
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 187, in _multicall
    res = hook_impl.function(*args)
  File "/usr/lib/python3.8/site-packages/_pytest/main.py", line 240, in pytest_cmdline_main
    return wrap_session(config, _main)
  File "/usr/lib/python3.8/site-packages/_pytest/main.py", line 232, in wrap_session
    config.hook.pytest_sessionfinish(
  File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 337, in traced_hookexec
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 52, in from_call
    result = func()
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 335, in <lambda>
    outcome = _Result.from_call(lambda: oldcall(hook, hook_impls, kwargs))
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 203, in _multicall
    gen.send(outcome)
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 691, in pytest_sessionfinish
    self.config.hook.pytest_terminal_summary(
  File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 337, in traced_hookexec
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 52, in from_call
    result = func()
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 335, in <lambda>
    outcome = _Result.from_call(lambda: oldcall(hook, hook_impls, kwargs))
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 208, in _multicall
    return outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 182, in _multicall
    next(gen)  # first yield
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 705, in pytest_terminal_summary
    self.summary_errors()
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 881, in summary_errors
    reports = self.getreports("error")
  File "/usr/lib/python3.8/site-packages/_pytest/terminal.py", line 777, in getreports
    for x in self.stats.get(name, []):
  File "<string>", line 2, in __getitem__
  File "/usr/lib/python3.8/multiprocessing/managers.py", line 850, in _callmethod
    raise convert_to_error(kind, result)
multiprocessing.managers.RemoteError: 
---------------------------------------------------------------------------
Unserializable message: Traceback (most recent call last):
  File "/usr/lib/python3.8/multiprocessing/managers.py", line 298, in serve_client
    send(msg)
  File "/usr/lib/python3.8/multiprocessing/connection.py", line 206, in send
    self._send_bytes(_ForkingPickler.dumps(obj))
  File "/usr/lib/python3.8/multiprocessing/reduction.py", line 51, in dumps
    cls(buf, protocol).dump(obj)
_pickle.PicklingError: Can't pickle <function unpickle_exception at 0x7fc46604af70>: it's not the same object as tblib.pickling_support.unpickle_exception

---------------------------------------------------------------------------
=========================== short test summary info ============================
FAILED tests/test_general.py::test_environ_shim[cli_args1] - ValueError: Pyte...
FAILED tests/test_general.py::test_skip_markers[cli_args1] - ValueError: Pyte...
FAILED tests/test_general.py::test_skipif_markers[cli_args1] - ValueError: Py...
FAILED tests/test_general.py::test_custom_markers[cli_args1] - ValueError: Py...
FAILED tests/test_general.py::test_multiple_failures[cli_args1] - ValueError:...
FAILED tests/test_general.py::test_pytest_html[cli_args0] - ValueError: Pytes...
FAILED tests/test_general.py::test_pytest_html[cli_args1] - ValueError: Pytes...
FAILED tests/test_general.py::test_pytest_html[cli_args2] - ValueError: Pytes...
FAILED tests/test_general.py::test_collection_error[cli_args1] - ValueError: ...
========================= 9 failed, 22 passed in 7.62s =========================
FFY00 commented 4 years ago

Agh, the summary got cut.

FAILED tests/test_general.py::test_environ_shim[cli_args1] - ValueError: Pytest terminal summary report not found
FAILED tests/test_general.py::test_skip_markers[cli_args1] - ValueError: Pytest terminal summary report not found
FAILED tests/test_general.py::test_skipif_markers[cli_args1] - ValueError: Pytest terminal summary report not found
FAILED tests/test_general.py::test_custom_markers[cli_args1] - ValueError: Pytest terminal summary report not found
FAILED tests/test_general.py::test_multiple_failures[cli_args1] - ValueError: Pytest terminal summary report not found
FAILED tests/test_general.py::test_pytest_html[cli_args0] - ValueError: Pytest terminal summary report not found
FAILED tests/test_general.py::test_pytest_html[cli_args1] - ValueError: Pytest terminal summary report not found
FAILED tests/test_general.py::test_pytest_html[cli_args2] - ValueError: Pytest terminal summary report not found
FAILED tests/test_general.py::test_collection_error[cli_args1] - ValueError: Pytest terminal summary report not found
blueyed commented 4 years ago

Thanks. Can you try https://github.com/browsertron/pytest-parallel/pull/63, please?

FFY00 commented 4 years ago

Still the same.

ionelmc commented 4 years ago

This error is very confusing. Is it really possible that there are multiple instances of unpickle_exception in the same process? Does this only happen on Python 3.8?

blueyed commented 4 years ago

FWIW, #63 fixed it for me and on CI (py36 and py37 IIRC). @ionelmc also note that it passes with --lf, so it appears to be related to previous tests. It might be possible that tests are broken themselves somehow - haven't looked at it more yet (and likely won't anytime soon).

bnavigator commented 4 years ago

63 fixes this problem for OpenSUSE as well.