pytest-dev / pytest-dev/execnet

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

Open
#51 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
102
Forks
47
PR merge metrics
No merged PRs in 30d

Description

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.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with testing/test_gateway.py::TestBasicGateway::test_gateway_status_busy and reproduce the failure on the reported Python 2.7.13 and Pytest 3.0.5 environment. Trace the thread-socket gateway's remote_status values after both channels are closed. Done means the test reliably observes numexecuting reaching zero without regressing the other gateway cases.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
distributed-systems, testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.