-=| Niko Tyni, 30.05.2022 09:27:40 +0100 |=- > On Sun, May 29, 2022 at 05:38:40PM +0000, Damyan Ivanov wrote: > > Package: perl > > Version: 5.34.0-4 > > Severity: normal > > > While infestigating a random FTBFS in starlet (#923829), it appeared to me > > that > > the problem is actually in perl. > > > # Failed test 'No warnings' > > # at t/12bad_request_line.t line 24. > > # SIGTERM handler "DEFAULT" not defined. > > # at /usr/share/perl5/Parallel/Prefork.pm line 71. > > # Parallel::Prefork::start(Parallel::Prefork=HASH(0x55cd856355b8)) called > > at .../lib/Plack/Handler/Starlet.pm line 78 > > # > > Plack::Handler::Starlet::run(Plack::Handler::Starlet=HASH(0x55cd849b0ad8), > > CODE(0x55cd8562ac98)) called at t/12bad_request_line.t line 28 > > Just a quick reply that a smaller reproducer would obviously help.
Yeah. Sorry about that. When I posted this I was already a bit tired chasing where the warning comes from. Here's a cleaner reproducer: $ cat <<'EOF' > default-signal.pl use strict; use warnings; use Carp::Always; # to get a line number for the warning $SIG{TERM} = sub{}; while() { my $pid = fork(); defined($pid) or die 0; if ($pid) { sleep(0.1); kill TERM => $pid; wait; } else { $SIG{TERM} = "DEFAULT"; exit(0); } } EOF $ perl default-signal.pl SIGTERM handler "DEFAULT" not defined. at default-signal.pl line 16. … On my laptop the warnings start to pour in a second or two. If I comment out that sleep(), no warnings are shown. > FWIW this looks somewhat similar to > > https://github.com/perl/perl5/issues/10913 > > but I assume the 'prefork' references mean threads are not involved > here. So perhaps unrelated after all. This is what I looked at too and came to the same conclusion (threads ≠ forks). -- Damyan