From 519f80bb052a446ffa604a0862a631d846f64468 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Wed, 16 Dec 2020 23:19:03 +0000 Subject: index: ignore some warnings, set {current_info} for v1 -index runs on data that's already frozen in git, so there's no point in warning users about it. While we're at it, set the {current_info} prefix for v1 as we do in v2 inboxes in case new problems show up. --- lib/PublicInbox/Admin.pm | 23 ++++++++++++++--------- lib/PublicInbox/SearchIdx.pm | 6 +++++- 2 files changed, 19 insertions(+), 10 deletions(-) (limited to 'lib') diff --git a/lib/PublicInbox/Admin.pm b/lib/PublicInbox/Admin.pm index eeef2f63..3977d812 100644 --- a/lib/PublicInbox/Admin.pm +++ b/lib/PublicInbox/Admin.pm @@ -209,12 +209,20 @@ sub index_terminate { sub index_inbox { my ($ibx, $im, $opt) = @_; + require PublicInbox::InboxWritable; my $jobs = delete $opt->{jobs} if $opt; if (my $pr = $opt->{-progress}) { $pr->("indexing $ibx->{inboxdir} ...\n"); } local %SIG = %SIG; setup_signals(\&index_terminate, $ibx); + my $warn_cb = $SIG{__WARN__} // sub { print STDERR @_ }; + my $idx = { current_info => $ibx->{inboxdir} }; + my $warn_ignore = PublicInbox::InboxWritable->can('warn_ignore'); + local $SIG{__WARN__} = sub { + return if $warn_ignore->(@_); + $warn_cb->($idx->{current_info}, ': ', @_); + }; if (ref($ibx) && $ibx->version == 2) { eval { require PublicInbox::V2Writable }; die "v2 requirements not met: $@\n" if $@; @@ -226,21 +234,18 @@ sub index_inbox { } else { my $n = $v2w->{shards}; if ($jobs < ($n + 1) && !$opt->{reshard}) { - warn -"Unable to respect --jobs=$jobs on index, inbox was created with $n shards\n"; + warn <($v2w->{current_info}, ': ', @_); - }; - $v2w->index_sync($opt); + $idx = $v2w; } else { require PublicInbox::SearchIdx; - my $s = PublicInbox::SearchIdx->new($ibx, 1); - $s->index_sync($opt); + $idx = PublicInbox::SearchIdx->new($ibx, 1); } + $idx->index_sync($opt); } sub progress_prepare ($) { diff --git a/lib/PublicInbox/SearchIdx.pm b/lib/PublicInbox/SearchIdx.pm index c6d2a0e8..b731f698 100644 --- a/lib/PublicInbox/SearchIdx.pm +++ b/lib/PublicInbox/SearchIdx.pm @@ -617,6 +617,7 @@ sub index_both { # git->cat_async callback $size += crlf_adjust($$bref); my $smsg = bless { bytes => $size, blob => $oid }, 'PublicInbox::Smsg'; my $self = $sync->{sidx}; + local $self->{current_info} = "$self->{current_info}: $oid"; my $eml = PublicInbox::Eml->new($bref); $smsg->{num} = index_mm($self, $eml, $oid, $sync) or die "E: could not generate NNTP article number for $oid"; @@ -628,7 +629,9 @@ sub index_both { # git->cat_async callback sub unindex_both { # git->cat_async callback my ($bref, $oid, $type, $size, $sync) = @_; return if is_bad_blob($oid, $type, $size, $sync->{oid}); - unindex_eml($sync->{sidx}, $oid, PublicInbox::Eml->new($bref)); + my $self = $sync->{sidx}; + local $self->{current_info} = "$self->{current_info}: $oid"; + unindex_eml($self, $oid, PublicInbox::Eml->new($bref)); # may be undef if leftover if (defined(my $cur_cmt = $sync->{cur_cmt})) { ${$sync->{latest_cmt}} = $cur_cmt; @@ -872,6 +875,7 @@ sub _index_sync { my ($self, $opt) = @_; my $tip = $opt->{ref} || 'HEAD'; my $ibx = $self->{ibx}; + local $self->{current_info} = "$ibx->{inboxdir}"; $self->{batch_bytes} = $opt->{batch_size} // $BATCH_BYTES; $ibx->git->batch_prepare; my $pr = $opt->{-progress}; -- cgit v1.2.3-24-ge0c7