diff options
author | Eric Wong <e@80x24.org> | 2021-10-01 09:54:42 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2021-10-01 12:06:32 +0000 |
commit | 0fa6324e2f45a93dbfca57989ca115b13048133f (patch) | |
tree | 712099640ffaff194dd0b711562f7ecfbb5d33e0 /lib | |
parent | 1c52f49354aa83e71fcceccae888da0c77f2391d (diff) | |
download | public-inbox-0fa6324e2f45a93dbfca57989ca115b13048133f.tar.gz |
It was probably incorrect to use from max_git_epoch, and it's small enough to inline into do_cleanup. We'll also eliminate the unnecessary deletion of {-altid_map} while we're in the area, since we no longer cache/memoize that. Fixes: 7e5cea05f061e757 ("inbox: rewrite cleanup to be more aggressive")
Diffstat (limited to 'lib')
-rw-r--r-- | lib/PublicInbox/Inbox.pm | 25 |
1 files changed, 8 insertions, 17 deletions
diff --git a/lib/PublicInbox/Inbox.pm b/lib/PublicInbox/Inbox.pm index 95467d5a..7c1c3afe 100644 --- a/lib/PublicInbox/Inbox.pm +++ b/lib/PublicInbox/Inbox.pm @@ -10,31 +10,22 @@ use PublicInbox::Eml; use List::Util qw(max); use Carp qw(croak); -sub git_cleanup ($) { - my ($self) = @_; - my $git = $self->{git} // return undef; - # normal inboxes have low startup cost and there may be many, so - # keep process+pipe counts in check. ExtSearch may have high startup - # cost (e.g. ->ALL) and but likely one per-daemon, so cleanup only - # if there's unlinked files - my $live = $self->isa(__PACKAGE__) ? $git->cleanup(1) - : $git->cleanup_if_unlinked; - delete($self->{git}) unless $live; - $live; -} - # returns true if further checking is required sub cleanup_shards { $_[0]->{search} ? $_[0]->{search}->cleanup_shards : undef } sub do_cleanup { my ($ibx) = @_; - my $live = git_cleanup($ibx); + my $live; + if (defined $ibx->{git}) { + $live = $ibx->isa(__PACKAGE__) ? $ibx->{git}->cleanup(1) + : $ibx->{git}->cleanup_if_unlinked; + delete($ibx->{git}) unless $live; + } $ibx->cleanup_shards and $live = 1; for my $git (@{$ibx->{-repo_objs} // []}) { $live = 1 if $git->cleanup(1); } - delete @$ibx{qw(over mm description cloneurl - -altid_map -imap_url -nntp_url)}; + delete(@$ibx{qw(over mm description cloneurl -imap_url -nntp_url)}); PublicInbox::DS::add_uniq_timer($ibx+0, 5, \&do_cleanup, $ibx) if $live; } @@ -126,7 +117,7 @@ sub max_git_epoch { my $cur = $self->{-max_git_epoch}; my $changed; if (!defined($cur) || ($changed = git($self)->alternates_changed)) { - git_cleanup($self) if $changed; + $self->{git}->cleanup if $changed; my $gits = "$self->{inboxdir}/git"; if (opendir my $dh, $gits) { my $max = max(map { |