pytest-dev / execnet

distributed Python deployment and communication
https://execnet.readthedocs.io
MIT License
80 stars 42 forks source link

test_gateway.py::TestBasicGateway::test_gateway_status_busy[thread-socket] FAILED #51

Open pytestbot opened 7 years ago

pytestbot commented 7 years ago

We're still experimenting what's triggering this, it appears with Python 2.7.13 and Pytest 3.0.5:

testing/test_gateway.py::TestBasicGateway::test_gateway_status_busy[thread-socket] FAILED
=========================== short test summary info ============================
SKIP [36] /usr/lib/python2.7/dist-packages/_pytest/config.py:1180: no 'gspecs' option found
SKIP [3] /home/user/execnet-1.4.1/testing/conftest.py:148: no pypy found
SKIP [3] /home/user/execnet-1.4.1/testing/conftest.py:148: no python2.6 found
SKIP [3] /home/user/execnet-1.4.1/testing/conftest.py:148: no python3.2 found
SKIP [3] /home/user/execnet-1.4.1/testing/conftest.py:148: no jython found
SKIP [3] /home/user/execnet-1.4.1/testing/conftest.py:148: no python3.3 found

=================================== FAILURES ===================================
___________ TestBasicGateway.test_gateway_status_busy[thread-socket] ___________

self = <test_gateway.TestBasicGateway instance at 0xb39c5b8c>
gw = <Gateway id='socket' receive-live, thread model, 0 active channels>

    def test_gateway_status_busy(self, gw):
        numchannels = gw.remote_status().numchannels
        ch1 = gw.remote_exec("channel.send(1); channel.receive()")
        ch2 = gw.remote_exec("channel.receive()")
        ch1.receive()
        status = gw.remote_status()
        assert status.numexecuting == 2  # number of active execution threads
        assert status.numchannels == numchannels + 2
        ch1.send(None)
        ch2.send(None)
        ch1.waitclose()
        ch2.waitclose()
        for i in range(10):
            status = gw.remote_status()
            if status.numexecuting == 0:
                break
        else:
>           pytest.fail("did not get correct remote status")
E           Failed: did not get correct remote status

testing/test_gateway.py:88: Failed
============================ pytest-warning summary ============================
WI1 /home/user/execnet-1.4.1/testing/conftest.py:21 'pytest_runtest_setup' hook uses deprecated __multicall__ argument
WC1 None pytest_funcarg__specsocket: declaring fixtures using "pytest_funcarg__" prefix is deprecated and scheduled to be removed in pytest 4.0.  Please remove the prefix and use the @pytest.fixture decorator instead.
WC1 None pytest_funcarg__specssh: declaring fixtures using "pytest_funcarg__" prefix is deprecated and scheduled to be removed in pytest 4.0.  Please remove the prefix and use the @pytest.fixture decorator instead.
!!!!!!!!!!!!!!!!!!!! Interrupted: stopping after 1 failures !!!!!!!!!!!!!!!!!!!!
===== 1 failed, 136 passed, 51 skipped, 3 pytest-warnings in 12.66 seconds =====

However this comes from a clean Debian Testing (Stretch) on i386.

pytestbot commented 7 years ago

Original comment by @danstender

We have a fix for that: https://sources.debian.net/src/execnet/1.4.1-3/debian/patches/test_gateway-fix-race-condition.patch/