about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--lib/PublicInbox/ExtSearchIdx.pm10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/PublicInbox/ExtSearchIdx.pm b/lib/PublicInbox/ExtSearchIdx.pm
index daff656d..cb5256a2 100644
--- a/lib/PublicInbox/ExtSearchIdx.pm
+++ b/lib/PublicInbox/ExtSearchIdx.pm
@@ -921,6 +921,16 @@ ibx_id = ? AND xnum >= ? AND xnum <= ?
                         my ($xnum, $hex) = unpack('JH*', $k);
                         my $bin = pack('H*', $hex);
                         my $exp = $mismatch{$xnum};
+                        if (defined $exp) {
+                                my $smsg = $ibx->over->get_art($xnum) // next;
+                                # $xnum may be expired by another process
+                                if ($smsg->{blob} eq $hex) {
+                                        warn <<"";
+BUG: (non-fatal) $ekey #$xnum $smsg->{blob} still matches (old exp: $exp)
+
+                                        next;
+                                } # else: continue to unref
+                        }
                         my $m = defined($exp) ? "mismatch (!= $exp)" : 'stale';
                         warn("# $xnum:$hex (#@$docids): $m\n");
                         for my $i (@$docids) {