MagicStack / MagicStack/uvloop

Memory leak in uvloop and tornado

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

Dieses Issue hat noch niemand übernommen.

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

Beschreibung

  • uvloop version: 0.11.1
  • Python version: 3.6.4
  • Platform: Ubuntu 16.04 x64
  • Can you reproduce the bug with PYTHONASYNCIODEBUG in env?: This no effect

I have a platform to which mobile devices will constantly connect via TCP, about 20k per instance. After a few hours of work, memory consumption rises to 2 GB. We use tornado 5.0.1 as TCP server and install uvloop for loop for asyncio. I conducted one experiment using tracemalloc, when the devices are disconnected and then the memory leak is again connected in this code line , the number of objects and the total expanding. Can you help find what these objects are and how to remove this leak?
Снимок экрана от 2019-06-09 17-39-17

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 bei Tornados tornado/platform/asyncio.py um Zeile 148, reproduziere anschließend das Szenario einer langlebigen TCP-Verbindung und untersuche das Objektwachstum mit tracemalloc. Vergleiche das Speicherverhalten, wenn Geräte die Verbindung trennen und wiederherstellen; als abgeschlossen gilt die Untersuchung, wenn das Leck durch einen reproduzierbaren Test oder ein eindeutiges diagnostisches Ergebnis eingegrenzt ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

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

Neue Issues direkt in Ihr Postfach

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