MagicStack / MagicStack/uvloop

Can't peek at paused bytes (socket behind TCPTransport unavailable)

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

Dieses Issue hat noch niemand übernommen.

need to fix asyncio
Vorherrschende Sprache
Cython
Sterne
11.9k
Forks
616
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

  • uvloop version: 0.14.0
  • Python version: 3.8.2
  • Platform: linux
  • Can you reproduce the bug with PYTHONASYNCIODEBUG in env?: n/a (this is an api thing)
  • Does uvloop behave differently from vanilla asyncio? How?:
    • vanilla asyncio: the underlying socket is available in transport._sock for consenting coders aware of the risks using "private" members
    • uvloop: the underlying socket is not available to python at all (or at least I can't find it via introspection)

FWIW, one reason I'm running into this right now is that I have a case where the transport is paused for reading (transport.pause_reading()), but I would still like to peek at the bytes with sock.recv(n, socket.MSG_PEEK).

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 damit, den TCP-Transport von uvloop mit dem Verhalten von vanilla asyncio bei transport._sock zu vergleichen, wobei der Zugriff während des pausierten Lesens im Mittelpunkt steht. Erledigt ist die Aufgabe, wenn der gemeldete MSG_PEEK-Anwendungsfall eine unterstützte Möglichkeit bietet, pausierte Socket-Bytes über uvloop zu untersuchen, wobei das Verhalten anhand der Reproduktionsdetails des Issues überprüft wurde.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
networking
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

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