pytest-dev / pytest-dev/execnet

testing/test_gateway.py::TestPopenGateway::test_waitclose_on_remote_killed FAILED/PASSEDSegmentation fault

Offen
#53 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Python
Sterne
102
Forks
47
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

We've got this test failure here on the Debian package. It appears randomly (however, oftenly), so it's hard to tell what triggers this, nor how to successfully reproduce it.

=================================== FAILURES ===================================
_______________ TestPopenGateway.test_waitclose_on_remote_killed _______________

self = <test_gateway.TestPopenGateway object at 0x7fbe7777a518>
makegateway = <bound method Group.makegateway of <Group ['gw0']>>

    def test_waitclose_on_remote_killed(self, makegateway):
        gw = makegateway('popen')
        channel = gw.remote_exec("""
                import os
                import time
                channel.send(os.getpid())
                time.sleep(100)
            """)
        remotepid = channel.receive()
        py.process.kill(remotepid)
        py.test.raises(EOFError, "channel.waitclose(TESTTIMEOUT)")
>       py.test.raises(IOError, channel.send, None)
E       Failed: DID NOT RAISE <class 'OSError'>

testing/test_gateway.py:251: Failed

Anyway, any hint on this or a fix would be very welcome.
The corresponding bug report is https://bugs.debian.org/854494, please see there for moreinfo and buildlogs.
DS

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit testing/test_gateway.py::TestPopenGateway::test_waitclose_on_remote_killed und reproduziere den Fehler wiederholt, wobei du den verknüpften Debian-Bericht und die Build-Protokolle als Kontext verwendest. Erledigt bedeutet, dass sich der Fall eines remote gekillten Prozesses konsistent verhält und waitclose EOFError sowie channel.send IOError auslöst, ohne einen Segmentation Fault.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
distributed-systems, testing
Issue-Typ
Bug
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Ruhig
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.