X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FInbox.pm;h=241001d30924a04d6e16f8c8d14776ff88bc3a91;hb=1814b1a0b78770c8ba9e7a0adef56c4c324d4064;hp=3d9754dce54824f6007d52e98f3ce7c4da5b9b5a;hpb=322a79a6421b5993775f63ea25294a97c5203ac0;p=public-inbox.git diff --git a/lib/PublicInbox/Inbox.pm b/lib/PublicInbox/Inbox.pm index 3d9754dc..241001d3 100644 --- a/lib/PublicInbox/Inbox.pm +++ b/lib/PublicInbox/Inbox.pm @@ -191,22 +191,27 @@ sub mm { }; } -sub search ($;$) { - my ($self, $over_only) = @_; +sub search ($;$$) { + my ($self, $over_only, $ctx) = @_; my $srch = $self->{search} ||= eval { _cleanup_later($self); require PublicInbox::Search; PublicInbox::Search->new($self); }; - ($over_only || eval { $srch->xdb }) ? $srch : undef; + ($over_only || eval { $srch->xdb }) ? $srch : do { + $ctx and $ctx->{env}->{'psgi.errors'}->print(<{name}' search went away unexpectedly +EOF + undef; + }; } sub over ($) { my ($self) = @_; my $srch = search($self, 1) or return; - $self->{over} ||= eval { + $self->{over} //= eval { my $over = $srch->{over_ro}; - $over->dbh_new; # may fail + $over->dbh; # may fail $over; } }