Tests trying to find unused ports are flakey when automated
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 35/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- python
- Bereich
- networking, testing
Rechercherichtung
Beginne in tests/test_tcp.py, insbesondere bei den Tests, die find_free_port rund um test_create_server_5 und test_create_server_6 verwenden. Reproduziere die Fehler in einer automatisierten oder stark ausgelasteten Umgebung und prüfe anschließend die Verwendung von Port 0, eines gemeinsamen IPv4/IPv6-Sockets oder von Wiederholungsversuchen bei der Erstellung des ersten Sockets. Die Aufgabe ist erledigt, wenn die Tests nicht mehr fehlschlagen, weil der ausgewählte Port bereits verwendet wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
- uvloop version: 0.17.0
- Python version: 3.10
- Platform: nix/darwin
- Can you reproduce the bug with
PYTHONASYNCIODEBUGin env?: N/A - Does uvloop behave differently from vanilla asyncio? How?: N/A
The tests using find_free_port (like https://github.com/MagicStack/uvloop/blob/d2deffefa18653636eb03ea77a5dab6e4febf6c6/tests/test_tcp.py#L252) may fail in busy CI environments. For example building for nixpkgs involves running tests every time. It ends up with: (https://hydra.nixos.org/build/197525892/nixlog/1)
=================================== FAILURES ===================================
_______________________ Test_UV_TCP.test_create_server_5 _______________________
Traceback (most recent call last):
File "/private/tmp/tmp.xkcj6kx4o4/tests/test_tcp.py", line 245, in test_create_server_5
self.loop.run_until_complete(runner())
File "uvloop/loop.pyx", line 1517, in uvloop.loop.Loop.run_until_complete
File "/private/tmp/tmp.xkcj6kx4o4/tests/test_tcp.py", line 238, in runner
srv = await self.loop.create_server(
File "uvloop/loop.pyx", line 1790, in create_server
OSError: [Errno 48] error while attempting to bind on address ('::', 50000, 0, 0): address already in use
_______________________ Test_UV_TCP.test_create_server_6 _______________________
Traceback (most recent call last):
File "/private/tmp/tmp.xkcj6kx4o4/tests/test_tcp.py", line 271, in test_create_server_6
self.loop.run_until_complete(runner())
File "uvloop/loop.pyx", line 1517, in uvloop.loop.Loop.run_until_complete
File "/private/tmp/tmp.xkcj6kx4o4/tests/test_tcp.py", line 255, in runner
srv1 = await self.loop.create_server(
File "uvloop/loop.pyx", line 1790, in create_server
OSError: [Errno 48] error while attempting to bind on address ('::', 50000, 0, 0): address already in use
=============================== warnings summary ===============================
Do those tests need to use a common ipv4/6 socket? Could they use only one protocol at a time with port 0 and then get the local port number from the result?
Or maybe build the retry loop around the first socket creation rather than 2 independent steps?
- Vorherrschende Sprache
- Cython
- Sterne
- 11.9k
- Forks
- 615
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus MagicStack/uvloop
-
License not clear Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
MagicStack/uvloop#759 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
MagicStack/uvloop#741 · 2 Reaktionen ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
MagicStack/uvloop#702 · 8 Kommentare · 9 Reaktionen ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 25/100
MagicStack/uvloop#766 ·
-
Directly constructed subprocess pipe protocols segfault when callbacks use a non-process owner Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 52/100
MagicStack/uvloop#765 ·
Alle Issues in MagicStack/uvloop
Ähnliche Issues
-
Browser (wasm) relay client cannot connect to relays whose URL has a trailing-dot FQDN hostname Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
n0-computer/iroh#4550 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
bytecodealliance/rustix#1689 · 2 Kommentare ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
home-assistant/supervisor#7248 ·
-
bug cert blocker needs triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
project-chip/connectedhomeip#74373 ·
-
connectivity Offen
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 80/100