about summary refs log tree commit homepage
path: root/lib/PublicInbox/Search.pm
diff options
context:
space:
mode:
authorEric Wong (Contractor, The Linux Foundation) <e@80x24.org>2018-03-29 19:14:12 +0000
committerEric Wong (Contractor, The Linux Foundation) <e@80x24.org>2018-03-29 20:17:44 +0000
commit4463af42366a4ec6c338dba05b438bc335b317d0 (patch)
tree7020feb60c8d601726cc0942910664e0cd1e500d /lib/PublicInbox/Search.pm
parent0f586bef118106eee922f2285afa6ec660e9363a (diff)
downloadpublic-inbox-4463af42366a4ec6c338dba05b438bc335b317d0.tar.gz
This was causing errors while attempting to load messages via
the WWW interface while mass-importing LKML.  While we're at it,
remove unnecessary eval from lookup_article.
Diffstat (limited to 'lib/PublicInbox/Search.pm')
-rw-r--r--lib/PublicInbox/Search.pm46
1 files changed, 22 insertions, 24 deletions
diff --git a/lib/PublicInbox/Search.pm b/lib/PublicInbox/Search.pm
index 6f5e0624..5fc7682c 100644
--- a/lib/PublicInbox/Search.pm
+++ b/lib/PublicInbox/Search.pm
@@ -348,36 +348,34 @@ sub query_ts {
 sub first_smsg_by_mid {
         my ($self, $mid) = @_;
         my $smsg;
-        each_smsg_by_mid($self, $mid, sub { $smsg = $_[0]; undef });
+        retry_reopen($self, sub {
+                each_smsg_by_mid($self, $mid, sub { $smsg = $_[0]; undef });
+        });
         $smsg;
 }
 
 sub lookup_article {
         my ($self, $num) = @_;
         my $term = 'XNUM'.$num;
-        my $smsg;
-        eval {
-                retry_reopen($self, sub {
-                        my $db = $self->{skel} || $self->{xdb};
-                        my $head = $db->postlist_begin($term);
-                        my $tail = $db->postlist_end($term);
-                        return if $head->equal($tail);
-                        my $doc_id = $head->get_docid;
-                        return unless defined $doc_id;
-                        $head->inc;
-                        if ($head->nequal($tail)) {
-                                my $loc= $self->{mainrepo} .
-                                        ($self->{skel} ? 'skel' : 'xdb');
-                                warn "article #$num is not unique in $loc\n";
-                        }
-                        # raises on error:
-                        my $doc = $db->get_document($doc_id);
-                        $smsg = PublicInbox::SearchMsg->wrap($doc);
-                        $smsg->load_expand;
-                        $smsg->{doc_id} = $doc_id;
-                });
-        };
-        $smsg;
+        my $db = $self->{skel} || $self->{xdb};
+        retry_reopen($self, sub {
+                my $head = $db->postlist_begin($term);
+                my $tail = $db->postlist_end($term);
+                return if $head->equal($tail);
+                my $doc_id = $head->get_docid;
+                return unless defined $doc_id;
+                $head->inc;
+                if ($head->nequal($tail)) {
+                        my $loc= $self->{mainrepo} .
+                                ($self->{skel} ? 'skel' : 'xdb');
+                        warn "article #$num is not unique in $loc\n";
+                }
+                # raises on error:
+                my $doc = $db->get_document($doc_id);
+                my $smsg = PublicInbox::SearchMsg->wrap($doc);
+                $smsg->{doc_id} = $doc_id;
+                $smsg->load_expand;
+        });
 }
 
 sub each_smsg_by_mid {