lib/PublicInbox/SearchIdx.pm | 6 ++++-- lib/PublicInbox/V2Writable.pm | 2 +- diff --git a/lib/PublicInbox/SearchIdx.pm b/lib/PublicInbox/SearchIdx.pm index cc7e7ec922ce812da43c0a6b5a323f7700e663cb..f9207e9464cd1dd3afe89b3b1052635db1682ea5 100644 --- a/lib/PublicInbox/SearchIdx.pm +++ b/lib/PublicInbox/SearchIdx.pm @@ -515,13 +515,15 @@ $self->remove_message($mid) if defined $mid; } sub index_mm { - my ($self, $mime) = @_; + my ($self, $mime, $warn_existing) = @_; my $mid = mid_clean(mid_mime($mime)); my $mm = $self->{mm}; my $num = $mm->mid_insert($mid); + return $num if defined $num; + warn "<$mid> reused\n" if $warn_existing; # fallback to num_for since filters like RubyLang set the number - defined $num ? $num : $mm->num_for($mid); + $mm->num_for($mid); } sub unindex_mm { diff --git a/lib/PublicInbox/V2Writable.pm b/lib/PublicInbox/V2Writable.pm index cf19c7610cb775f1cb09d5c985442046996ce52a..29ed23caaa76fb87fcce3e48caeb4ec7c7f26a23 100644 --- a/lib/PublicInbox/V2Writable.pm +++ b/lib/PublicInbox/V2Writable.pm @@ -63,7 +63,7 @@ my $oid = $im->{last_object_id}; my ($len, $msgref) = @{$im->{last_object}}; $self->idx_init; - my $num = $self->{all}->index_mm($mime); + my $num = $self->{all}->index_mm($mime, 1); my $nparts = $self->{partitions}; my $part = $num % $nparts; my $idx = $self->idx_part($part);