]> Sergey Matveev's repositories - public-inbox.git/commitdiff
lei_xsearch: fix accounting bugs in for remote mboxrd
authorEric Wong <e@80x24.org>
Thu, 6 May 2021 02:28:19 +0000 (02:28 +0000)
committerEric Wong <e@80x24.org>
Thu, 6 May 2021 16:56:44 +0000 (16:56 +0000)
We must not accumulate mset totals for messages which
have already been counted.  Furthermore, the combined
search was being passed an extra arg and causing the
total to go missing.

lib/PublicInbox/LeiXSearch.pm

index 21b1502502b5789f5221076a9a24dcdc2b8f7104..e69a4edd0a75a2d0d01e7cd9ec6b60f7dcf60454 100644 (file)
@@ -139,7 +139,7 @@ sub mset_progress {
                pkt_do($lei->{pkt_op_p}, 'mset_progress', @_);
        } else { # single lei-daemon consumer
                my ($desc, $mset_size, $mset_total_est) = @_;
-               $lei->{-mset_total} += $mset_size;
+               $lei->{-mset_total} += $mset_size if $mset_total_est ne '?';
                $lei->qerr("# $desc $mset_size/$mset_total_est");
        }
 }
@@ -238,7 +238,7 @@ sub query_combined_mset { # non-parallel for non-"--threads" users
        do {
                $mset = $self->mset($mo->{qstr}, $mo);
                mset_progress($lei, 'xsearch', $mset->size,
-                               $mset->size, $mset->get_matches_estimated);
+                               $mset->get_matches_estimated);
                wait_startq($lei); # wait for keyword updates
                for my $mitem ($mset->items) {
                        my $smsg = smsg_for($self, $mitem) or next;