MagicStack / MagicStack/uvloop
Can't peek at paused bytes (socket behind TCPTransport unavailable)
Dieses Issue hat noch niemand übernommen.
- 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
PYTHONASYNCIODEBUGin 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._sockfor 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)
- vanilla asyncio: the underlying socket is available in
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
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Ö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