From 6466b21e0776fdd88648730e7248d6887d380224 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Thu, 14 Nov 2019 01:12:11 +0000 Subject: inboxwritable: drop {-importer} cyclic reference InboxWritable caching the result of ->importer leads to a circular references with returned (V2Writable|Import) object holds onto the calling InboxWritable object. With public-inbox-watch, this leads to a memory leak if a user is reloading via SIGHUP after a message is imported (it would only become noticeable with SIGHUPs after every message imported). I would not expect anybody to to notice this in real-world usage. I only noticed this since I was making -xcpdb suitable for long-lived process use (e.g. "mod_perl style") and a flock remained unreleased on v1 inboxes after resharding. WatchMaildir (used by -watch) already handles caching of the importer object itself, and all of our other real-world uses of ->importer are short-lived or designed for batch scripts, so there's no need to cache the importer result internally. --- script/public-inbox-index | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'script/public-inbox-index') diff --git a/script/public-inbox-index b/script/public-inbox-index index 439da157..139b6e56 100755 --- a/script/public-inbox-index +++ b/script/public-inbox-index @@ -33,4 +33,4 @@ foreach my $ibx (@ibxs) { PublicInbox::Admin::require_or_die(keys %$mods); PublicInbox::Admin::progress_prepare($opt); -PublicInbox::Admin::index_inbox($_, $opt) for @ibxs; +PublicInbox::Admin::index_inbox($_, undef, $opt) for @ibxs; -- cgit v1.2.3-24-ge0c7