When sending signal to thread that has undefined handler, the Perl
interpreter segfaults in threads.so. The reproduced is attached.
However if handler is defined for other signal than you send later, then
it will not segfault.
I thought it's bug in threads module, but I found it depends on perl
include path:
petr@dhcp-0-146:/tmp/threads-1.77-build/usr/lib64/perl5 $ find
.
./threads.pm
./auto
./auto/threads
./auto/threads/.packlist
./auto/threads/threads.bs
./auto/threads/threads.so
./perllocal.pod
petr@dhcp-0-146:/tmp/threads-1.77-build/usr/lib64/perl5 $ perl -I .
/tmp/perl_thread_kill
Perl exited with active threads:
1 running and unjoined
0 finished and unjoined
0 running and detached
petr@dhcp-0-146:/tmp/threads-1.77-build/usr/lib64/perl5 $ perl -I $PWD
/tmp/perl_thread_kill
Segmentation fault
I verified perl opened the same files using strace tool.
I can reproduce it on x86_64 Fedora Linux distribution (perl-5.10.0,
5.10.1, 5.12.1 with threads 1.72, 1.75, 1.77), and on i586 in Debian
(perl-5.10.1, threads-1.72).
I think problem is in perl itself rather than threads module. Do you
have any idea what's wrong? Can you reproduce it?
Some debugging can be foun on
<https://bugzilla.redhat.com/show_bug.cgi?id=622190>.
Subject: | perl_thread_kill |
Message body not shown because it is not plain text.