about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2020-12-27 11:01:42 +0000
committerEric Wong <e@80x24.org>2020-12-28 23:18:49 +0000
commit54b250c611c752538666f2bf6d361d3762a21781 (patch)
tree1ba1adc87093e360ce93e410b2682b4c60d034a1
parentd209c2064ebc8ccddc7f0da068c663fc08077334 (diff)
downloadpublic-inbox-54b250c611c752538666f2bf6d361d3762a21781.tar.gz
As with ExtSearch, MiscSearch lacks a janky cleanup timer of
PublicInbox::Inbox objects, leading to info about
inboxes/newsgroups going stale.  Fortunately, we don't use
MiscSearch very heavily, yet.

In the future, we may be able to detect new inboxes without
having to SIGHUP or restart daemons using MiscSearch.
-rw-r--r--lib/PublicInbox/MiscSearch.pm4
-rw-r--r--lib/PublicInbox/WwwListing.pm3
2 files changed, 7 insertions, 0 deletions
diff --git a/lib/PublicInbox/MiscSearch.pm b/lib/PublicInbox/MiscSearch.pm
index c6ce255f..6683d564 100644
--- a/lib/PublicInbox/MiscSearch.pm
+++ b/lib/PublicInbox/MiscSearch.pm
@@ -73,6 +73,7 @@ sub misc_enquire_once { # retry_reopen callback
 sub mset {
         my ($self, $qs, $opt) = @_;
         $opt ||= {};
+        reopen($self);
         my $qp = $self->{qp} //= mi_qp_new($self);
         $qs = 'type:inbox' if $qs eq '';
         my $qr = $qp->parse_query($qs, $PublicInbox::Search::QP_FLAGS);
@@ -184,4 +185,7 @@ sub nntpd_cache_load {
         retry_reopen($self, \&_nntpd_cache_load);
 }
 
+no warnings 'once';
+*reopen = \&PublicInbox::Search::reopen;
+
 1;
diff --git a/lib/PublicInbox/WwwListing.pm b/lib/PublicInbox/WwwListing.pm
index fce0e530..4b3f1674 100644
--- a/lib/PublicInbox/WwwListing.pm
+++ b/lib/PublicInbox/WwwListing.pm
@@ -69,6 +69,9 @@ sub hide_key { 'www' }
 sub response {
         my ($class, $ctx) = @_;
         bless $ctx, $class;
+        if (my $ALL = $ctx->{www}->{pi_cfg}->ALL) {
+                $ALL->misc->reopen;
+        }
         my $re = $ctx->url_regexp or return $ctx->psgi_triple;
         my $iter = PublicInbox::ConfigIter->new($ctx->{www}->{pi_cfg},
                                                 \&list_match_i, $re, $ctx);