Task Leak — накопление задач, которые должны были завершиться, но остаются живыми, вместе со ссылками и ресурсами. Диагностируют рост их числа, возраста и повторяющихся стеков ожидания.
Что такое Task Leak (утечка задач) в асинхронном коде и как её диагностировать на проде?
Task Leak — накопление задач, которые должны были завершиться, но остаются живыми, вместе со ссылками и ресурсами. Диагностируют рост их числа, возраста и повторяющихся стеков ожидания.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Task Leak — накопление задач, которые должны были завершиться, но остаются живыми, вместе со ссылками и ресурсами. Диагностируют рост их числа, возраста и повторяющихся стеков ожидания.
Собирайте метрики активных задач и ограниченные диагностические снимки asyncio.all_tasks() без чувствительных данных. Ищите ожидания без deadline, забытые фоновые задачи, очереди без лимитов и подавленную отмену. Сопоставьте рост памяти с одинаковыми местами остановки. Исправление включает владение жизненным циклом, ограничение конкурентности и гарантированную очистку; периодическая отмена всех задач без причины лишь маскирует проблему.