diff options
author | Eric Wong <e@80x24.org> | 2016-06-21 03:16:53 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2016-06-21 03:21:11 +0000 |
commit | 7ee0fb32fbc59b63a26e2926f3f376bb06f4a41b (patch) | |
tree | 723a9ba9fed98b9f62f3fb05a1744f67c915bbcf /lib/PublicInbox/SearchIdx.pm | |
parent | 1ac3134bb4cc47db05d9e4260e593f7867b46dcb (diff) | |
download | public-inbox-7ee0fb32fbc59b63a26e2926f3f376bb06f4a41b.tar.gz |
We failed to discard old thread IDs when vivifying ghosts due to out-of-order message arrival. This rectifies the failure and will trigger a re-index.
Diffstat (limited to 'lib/PublicInbox/SearchIdx.pm')
-rw-r--r-- | lib/PublicInbox/SearchIdx.pm | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/PublicInbox/SearchIdx.pm b/lib/PublicInbox/SearchIdx.pm index 31346876..58eccc1a 100644 --- a/lib/PublicInbox/SearchIdx.pm +++ b/lib/PublicInbox/SearchIdx.pm @@ -150,7 +150,7 @@ sub add_message { if ($was_ghost) { $doc_id = $smsg->doc_id; - $self->link_message($smsg); + $self->link_message($smsg, $smsg->thread_id); $doc->set_data($smsg->to_doc_data); $db->replace_document($doc_id, $doc); } else { @@ -211,7 +211,7 @@ sub next_thread_id { } sub link_message { - my ($self, $smsg) = @_; + my ($self, $smsg, $old_tid) = @_; my $doc = $smsg->{doc}; my $mid = $smsg->mid; my $mime = $smsg->mime; @@ -247,6 +247,7 @@ sub link_message { # but we can never trust clients to do the right thing my $ref = shift @refs; $tid = $self->_resolve_mid_to_tid($ref); + $self->merge_threads($tid, $old_tid) if defined $old_tid; # the rest of the refs should point to this tid: foreach $ref (@refs) { |