From: Eric Wong Date: Wed, 23 Dec 2020 08:38:49 +0000 (+0000) Subject: extsearchidx: close SQLite handles after attaching X-Git-Tag: v1.7.0~1508 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=6f9b927bf1fc5e84b92532477b275a45cd30cb01;p=public-inbox.git extsearchidx: close SQLite handles after attaching This is needed to prevent us from running out of FDs when indexing many inboxes. Perhaps checking these on attach_inbox is unnecessary and may be removed entirely down the line. --- diff --git a/lib/PublicInbox/ExtSearchIdx.pm b/lib/PublicInbox/ExtSearchIdx.pm index 9d64ff5a..fb627089 100644 --- a/lib/PublicInbox/ExtSearchIdx.pm +++ b/lib/PublicInbox/ExtSearchIdx.pm @@ -65,11 +65,14 @@ sub attach_inbox { my $misc = $self->{misc}; if ($misc && $misc->inbox_data($ibx)) { # all good if already indexed } else { - if (!$ibx->over || !$ibx->mm) { + my @sqlite = ($ibx->over, $ibx->mm); + my $uidvalidity = $ibx->uidvalidity; + $ibx->{mm} = $ibx->{over} = undef; + if (scalar(@sqlite) != 2) { warn "W: skipping $ekey (unindexed)\n"; return; } - if (!defined($ibx->uidvalidity)) { + if (!defined($uidvalidity)) { warn "W: skipping $ekey (no UIDVALIDITY)\n"; return; }