about summary refs log tree commit homepage
path: root/lib/PublicInbox/LeiNoteEvent.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2021-09-26 00:02:32 +0000
committerEric Wong <e@80x24.org>2021-09-26 00:06:30 +0000
commitbf7fdfe4b939c3a97b20fd3e9b65c9cd493a692d (patch)
tree39f6f1681b409f1489aba56ddd3eae7c122738d7 /lib/PublicInbox/LeiNoteEvent.pm
parent69225ecae508b9bb83960ac51e38d7d5eade2a6a (diff)
downloadpublic-inbox-bf7fdfe4b939c3a97b20fd3e9b65c9cd493a692d.tar.gz
The note-event worker may see changes before a Xapian shard
commit happens, meaning keyword lookups fail as a result.
Just emit the request to the lei/store worker since it's a
fairly cheap operation at this point.

We'll try harder to look for kw changes, too, since
deduplication changes may lead to multiple docids being
resolved for a single message.
Diffstat (limited to 'lib/PublicInbox/LeiNoteEvent.pm')
-rw-r--r--lib/PublicInbox/LeiNoteEvent.pm4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/PublicInbox/LeiNoteEvent.pm b/lib/PublicInbox/LeiNoteEvent.pm
index d2429485..2a7b52c1 100644
--- a/lib/PublicInbox/LeiNoteEvent.pm
+++ b/lib/PublicInbox/LeiNoteEvent.pm
@@ -42,7 +42,9 @@ sub eml_event ($$$$) {
                 $sto->wq_do('index_eml_only', $eml, $vmd, $xoids);
         } elsif ($state =~ /\Atag-(?:rw|ro)\z/) {
                 my $docids = [];
-                my $c = $self->{lse}->kw_changed($eml, $vmd->{kw}, $docids);
+                my $c = eval {
+                        $self->{lse}->kw_changed($eml, $vmd->{kw}, $docids);
+                } // 1; # too new, assume changed since still to-be-committed.
                 if (scalar @$docids) { # already in lei/store
                         $sto->wq_do('set_eml_vmd', undef, $vmd, $docids) if $c;
                 } elsif (my $xoids = $self->{lei}->ale->xoids_for($eml)) {