MagicStack / MagicStack/uvloop

Missing support for `interleave` and `happy_eyeballs_delay` in `create_connection`

Offen
#406 6 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

help wanted missing feature
Vorherrschende Sprache
Cython
Sterne
11.9k
Forks
616
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

  • uvloop version: 0.15.2
  • Python version: 3.8.5
  • Platform: Ubuntu 20.04 amd64
  • Can you reproduce the bug with PYTHONASYNCIODEBUG in env?: Not tested.
  • Does uvloop behave differently from vanilla asyncio? How?: Yes, fails if interleave and/or happy_eyeballs_delay is set with create_connection.

asyncio loop.create_connection supports the interleave and happy_eyeballs_delay keyword arguments to enable RFC 8305 "Happy Eyeballs" IPv6-to-IPv4 fallback since Python 3.8. The arguments are documented here: https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.create_connection

The corresponding function in uvloop does not accept these arguments. These would be nice to have because I'm working on a server that proxies requests to external third-party servers which occasionally have a broken IPv6 configuration and traditional connect timeout behavior causes quite a bit of delay.

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 am create_connection-Einstiegspunkt von uvloop und lies die im Issue verlinkte Dokumentation zu asyncio loop.create_connection, wobei du dich auf interleave und happy_eyeballs_delay konzentrierst. Vergleiche die unterstützten Argumente und das Verhalten und überprüfe anschließend, dass beide Optionen akzeptiert werden und das dokumentierte IPv6-zu-IPv4-Fallback-Verhalten bereitstellen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
api, networking
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

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