From 5908766e9dc415b0fb97dbba57e67dba918e88d0 Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Thu, 21 Oct 2021 15:44:08 +0200 Subject: text: epub: Prevent memory leak It looks like ebooklib creates non-GC-able references to ZipFile, which must be cleaned up manually. --- lulua/text.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lulua/text.py b/lulua/text.py index 18e4dbf..ea91139 100644 --- a/lulua/text.py +++ b/lulua/text.py @@ -193,6 +193,10 @@ def filterEpub (item): stream = walker (document) s = HTMLSerializer() yield ''.join (s.serialize (stream)) + # It looks like ebooklib is leaking ZipFile instances somewhere, which + # can be prevented by resetting the book before the GC grabs it. + book.reset () + del book def filterText (fd): yield fd.read ().decode ('utf-8') -- cgit v1.2.3