[execnet-dev] testing/test_channel.py::TestStringCoerce::test_2to3 FAILED

Daniel Stender daniel at danielstender.com
Tue Dec 27 08:35:42 EST 2016


A failure on Python 2.7 from Debian CI testing [1]:

<cut>
testing/test_channel.py::TestStringCoerce::test_2to3 FAILED
{...}
=================================== FAILURES ===================================
__________________________ TestStringCoerce.test_2to3 __________________________

self = <test_channel.TestStringCoerce instance at 0x7f2385226440>
makegateway = <bound method Group.makegateway of <Group ['gw0']>>

    @pytest.mark.skipif('sys.version>="3.0"')
    def test_2to3(self, makegateway):
        python = _find_version('3')
        gw = makegateway('popen//python=%s' % python)
        ch = gw.remote_exec('channel.send(channel.receive());'*2)
        ch.send('a')
>       res = ch.receive()

testing/test_channel.py:351:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Channel id=1 open>, timeout = None

    def receive(self, timeout=None):
        """receive a data item that was sent from the other side.
            timeout: None [default] blocked waiting.  A positive number
            indicates the number of seconds after which a channel.TimeoutError
            exception will be raised if no item was received.
            Note that exceptions from the remotely executing code will be
            reraised as channel.RemoteError exceptions containing
            a textual representation of the remote traceback.
            """
        itemqueue = self._items
        if itemqueue is None:
            raise IOError("cannot receive(), channel has receiver callback")
        try:
            x = itemqueue.get(timeout=timeout)
        except self.gateway.execmodel.queue.Empty:
            raise self.TimeoutError("no item after %r seconds" % (timeout))
        if x is ENDMARKER:
            itemqueue.put(x)  # for other receivers
>           raise self._getremoteerror() or EOFError()
E           EOFError: couldnt load message header, expected 9 bytes, got 0

execnet/gateway_base.py:737: EOFError
----------------------------- Captured stderr call -----------------------------
Exception ignored in: <object repr() failed>
Traceback (most recent call last):
  File "<string>", line 602, in __del__
AttributeError: 'Channel' object has no attribute '_closed'
</cut>

Thanks for comments,
DS

[1] https://ci.debian.net/data/packages/unstable/amd64/e/execnet/20161225_212223.autopkgtest.log.gz

-- 
4096R/DF5182C8
Debian Developer (stender at debian.org)
LPIC-1 (LPI000329859 64mz6f7kt4)
http://www.danielstender.com/


More information about the execnet-dev mailing list