Issue 32574: asyncio.Queue, put() leaks memory if the queue is full (original) (raw)
Issue32574
Created on 2018-01-16 19:53 by Mordis, last changed 2022-04-11 14:58 by admin. This issue is now closed.
Files | |||
---|---|---|---|
File name | Uploaded | Description | Edit |
asyncio_put_memory_leak.py | Mordis,2018-01-16 19:53 | Memory leak example |
Pull Requests | |||
---|---|---|---|
URL | Status | Linked | Edit |
PR 5208 | merged | Mordis,2018-01-16 20:05 |
Messages (2) | ||
---|---|---|
msg310107 - (view) | Author: José Melero Fernández (Mordis) * | Date: 2018-01-16 19:53 |
Repro: asyncio queue with limited size and the queue full, call asyncio.wait_for(some_queue.put(1), some_timeout). Every canceled put produces a new item in queue._putters that is never deleted (memory leak). Uploaded to the issue a file with an example. The get method had a very similar bug which was fixed in 2016-11. The related issue: https://bugs.python.org/issue31620 I already have the code for the PR prepared, so I want to publish the link of the MR in a few of minutes. | ||
msg310718 - (view) | Author: Yury Selivanov (yselivanov) * ![]() |
Date: 2018-01-25 23:45 |
New changeset c47dacb69054f6fe1c2465df585985430f7fe366 by Yury Selivanov (José Melero Fernández) in branch 'master': bpo-32574: Fix leaks in asyncio.Queue.put() and .get() (#5208) https://github.com/python/cpython/commit/c47dacb69054f6fe1c2465df585985430f7fe366 |
History | |||
---|---|---|---|
Date | User | Action | Args |
2022-04-11 14:58:56 | admin | set | github: 76755 |
2018-01-25 23:46:23 | yselivanov | set | status: open -> closedresolution: fixedstage: patch review -> resolved |
2018-01-25 23:45:51 | yselivanov | set | messages: + |
2018-01-21 01:34:53 | Mordis | set | versions: + Python 3.5 |
2018-01-16 20:05:45 | Mordis | set | keywords: + patchstage: patch reviewpull_requests: + <pull%5Frequest5062> |
2018-01-16 19:53:39 | Mordis | create |