user/dev discussion of public-inbox itself
 help / color / mirror / code / Atom feed
* [PATCH] daemon: quiet Email::Address::XS warnings properly
@ 2024-02-02  9:24 Eric Wong
  2024-02-07 22:49 ` [PATCH v2] " Eric Wong
  0 siblings, 1 reply; 2+ messages in thread
From: Eric Wong @ 2024-02-02  9:24 UTC (permalink / raw)
  To: meta

Setting $SIG{__WARN__} at the top-level no longer has any effect
since we localize $SIG{__WARN__} when entering ->event_step on
a per-listener basis.

Fixes: 60d262483a4d (daemon: use per-listener SIG{__WARN__} callbacks, 2022-08-08)
---
 lib/PublicInbox/Daemon.pm | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/lib/PublicInbox/Daemon.pm b/lib/PublicInbox/Daemon.pm
index a2c1ed6e..7aee5c72 100644
--- a/lib/PublicInbox/Daemon.pm
+++ b/lib/PublicInbox/Daemon.pm
@@ -143,8 +143,11 @@ sub load_mod ($;$$) {
 		$tlsd->{$f} = $logs{$p} //= open_log_path(my $fh, $p);
 		warn "# $scheme://$addr $f=$p\n";
 	}
+	# for per-listener $SIG{__WARN__}:
 	my $err = $tlsd->{err};
-	$tlsd->{warn_cb} = sub { print $err @_ }; # for local $SIG{__WARN__}
+	$tlsd->{warn_cb} = sub {
+		print $err @_ unless PublicInbox::Eml::warn_ignore(@_)
+	};
 	$opt->{'multi-accept'} and
 		$xn{'multi-accept'} = $opt->{'multi-accept'}->[-1];
 	\%xn;
@@ -698,7 +701,6 @@ sub run {
 	# localize GCF2C for tests:
 	local $PublicInbox::GitAsyncCat::GCF2C;
 	local $PublicInbox::Git::async_warn = 1;
-	local $SIG{__WARN__} = PublicInbox::Eml::warn_ignore_cb();
 	local %WORKER_SIG = %WORKER_SIG;
 	local %POST_ACCEPT;
 

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [PATCH v2] daemon: quiet Email::Address::XS warnings properly
  2024-02-02  9:24 [PATCH] daemon: quiet Email::Address::XS warnings properly Eric Wong
@ 2024-02-07 22:49 ` Eric Wong
  0 siblings, 0 replies; 2+ messages in thread
From: Eric Wong @ 2024-02-07 22:49 UTC (permalink / raw)
  To: meta

Eric Wong <e@80x24.org> wrote:
> index a2c1ed6e..7aee5c72 100644
> --- a/lib/PublicInbox/Daemon.pm
> +++ b/lib/PublicInbox/Daemon.pm
> @@ -698,7 +701,6 @@ sub run {
>  	# localize GCF2C for tests:
>  	local $PublicInbox::GitAsyncCat::GCF2C;
>  	local $PublicInbox::Git::async_warn = 1;
> -	local $SIG{__WARN__} = PublicInbox::Eml::warn_ignore_cb();
>  	local %WORKER_SIG = %WORKER_SIG;
>  	local %POST_ACCEPT;

That 2nd hunk is still necessary due to ->event_step callbacks
from asynchronous git blob retrievals.  It wasn't 100% correct,
since it can put warnings in the wrong file, though...

--------8<-------
Subject: [PATCH] daemon: quiet Email::Address::XS warnings properly

Setting $SIG{__WARN__} at the top-level no longer has any effect
since we localize $SIG{__WARN__} when entering ->event_step on
a per-listener basis.

Fixes: 60d262483a4d (daemon: use per-listener SIG{__WARN__} callbacks, 2022-08-08)
---
 lib/PublicInbox/Daemon.pm | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/lib/PublicInbox/Daemon.pm b/lib/PublicInbox/Daemon.pm
index a2c1ed6e..e578f2e8 100644
--- a/lib/PublicInbox/Daemon.pm
+++ b/lib/PublicInbox/Daemon.pm
@@ -143,8 +143,11 @@ sub load_mod ($;$$) {
 		$tlsd->{$f} = $logs{$p} //= open_log_path(my $fh, $p);
 		warn "# $scheme://$addr $f=$p\n";
 	}
+	# for per-listener $SIG{__WARN__}:
 	my $err = $tlsd->{err};
-	$tlsd->{warn_cb} = sub { print $err @_ }; # for local $SIG{__WARN__}
+	$tlsd->{warn_cb} = sub {
+		print $err @_ unless PublicInbox::Eml::warn_ignore(@_)
+	};
 	$opt->{'multi-accept'} and
 		$xn{'multi-accept'} = $opt->{'multi-accept'}->[-1];
 	\%xn;

^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-02-07 22:54 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-02-02  9:24 [PATCH] daemon: quiet Email::Address::XS warnings properly Eric Wong
2024-02-07 22:49 ` [PATCH v2] " Eric Wong

Code repositories for project(s) associated with this public inbox

	https://80x24.org/public-inbox.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).