We rely on the %logs hash for SIGUSR1 log reopening. Without this sharing,
some FDs would be hidden inside its respective {HTTP,IMAP,POP3}D
object and not reopened on USR2
---
lib/PublicInbox/Daemon.pm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/PublicInbox/Daemon.pm b/lib/PublicInbox/Daemon.pm
index ead5afc0..20b07b83 100644
--- a/lib/PublicInbox/Daemon.pm
+++ b/lib/PublicInbox/Daemon.pm
@@ -104,6 +104,7 @@ sub open_log_path ($$) { # my ($fh, $path) = @_; # $_[0] is
modified
open $_[0], '>>', $_[1] or die "open(>> $_[1]): $!";
$_[0]->autoflush(1);
do_chown($_[1]);
+ $_[0];
}
sub load_mod ($;$$) {
@@ -141,8 +142,7 @@ sub load_mod ($;$$) {
die "multiple $f= options specified\n" if @$p > 1;
check_absolute("$f=", $p->[0]) if $daemonize;
$p = File::Spec->canonpath($p->[0]);
- open_log_path(my $fh, $p);
- $tlsd->{$f} = $logs{$p} = $fh;
+ $tlsd->{$f} = $logs{$p} //= open_log_path(my $fh, $p);
warn "# $scheme://$addr $f=$p\n";
}
\%xn;