Re: Localizing %SIG in Safe.pm 2.{35,36,37} crashes POE::Wheel::Run ...

[email protected] (Rocco Caputo) Tue, 16 Jul 2013 12:40:13 -0400
Newsgroups perl.poe
Message-ID <[email protected]>
Thank you for the alert.  Is there any reasonable way to work around =
this?

--=20
Rocco Caputo <[email protected]>

On Jul 16, 2013, at 12:00, Markus Jansen wrote:

> Hi,
>=20
> FYI ... hope none of you wastes time with this really nasty trap ...
>=20
> Best regards,
>        Markus
>=20
> -----Original Message-----
> From: Markus Jansen
> Sent: Tuesday, July 16, 2013 5:57 PM
> To: [email protected]
> Cc: Markus Jansen
> Subject: Localizing %SIG in Safe.pm 2.{35,36,37} crashes =
POE::Wheel::Run ...
>=20
>=20
> This is a bug report for perl from [email protected], =
generated with the help of perlbug 1.39 running under perl 5.18.0.
>=20
>=20
> -----------------------------------------------------------------
> [Please describe your issue here]
>=20
> Dear Perl5 Porters,
>=20
> localizing %SIG in Safe.pm 2.35 (on CPAN, 2.{35,36,37} in Perl core) =
may be a great step for security, but it unfortunatately spoils =
POE::Wheel::Run (basically POE and all other asynchronous frameworks =
dealing with external processes).
>=20
> The symptom experienced is that your application might sooner or later =
crash (reliably when using POE::Component::Resolver upon exiting a =
Sidecar subprocess) with the following famous last words:
>=20
>        Signal SIGCHLD received, but no signal handler set.
>=20
> Please consider a version (also on CPAN) of Safe.pm which has e.g. the =
localization of %SIG as a switchable feature.
>=20
> Best regards,
>        Markus
>=20
>=20
>=20
> [Please do not change anything below this line]
> -----------------------------------------------------------------
> ---
> Flags:
>    category=3Dlibrary
>    severity=3Dcritical
>    module=3DSafe
> ---
> Site configuration information for perl 5.18.0:
>=20
> Configured by ericsson at Fri Jul 12 19:17:48 CEST 2013.
>=20
> Summary of my perl5 (revision 5 version 18 subversion 0) =
configuration:
>=20
>  Platform:
>    osname=3Dlinux, osvers=3D2.6.16.60-0.42.10-smp, =
archname=3Dx86_64-linux-thread-multi
>    uname=3D'linux sekix562 2.6.16.60-0.42.10-smp #1 smp tue apr 27 =
05:11:27 utc 2010 x86_64 x86_64 x86_64 gnulinux '
>    config_args=3D'-d -e -O -D cc=3Dgcc -D =
prefix=3D/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/=
prod -D usemultiplicity -U use5005threads -D usedl -D useshrplib -D =
libperl=3Dlibcmacperl.so -U usemymalloc -D cf_by=3Dericsson -D =
[email protected] -D =
[email protected] -D uselargefiles -D usethreads =
-D useithreads -D use64bitall -D ldcc=3DCC -D optimize=3D-O3 -D =
locincpth=3D/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_pa=
th/plib/include =
/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/plib/apac=
he/include -D =
loclibpth=3D/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_pa=
th/plib/lib =
/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/plib/apac=
he/lib -D lddlflags=3D-shared -lpthread =
-Wl,-L/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/pro=
d/lib/5.18.0/x86_64-linux-thread-multi/CORE =
-Wl,-rpath,/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_pat=
h/prod/lib/5.18.0
> /x86_64-linux-thread-multi/CORE =
-Wl,-L/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/pli=
b/lib =
-Wl,-rpath,/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_pat=
h/plib/lib =
-Wl,-L/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/pli=
b/apache/lib =
-Wl,-rpath,/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_pat=
h/plib/apache/lib -Wl,--enable-new-dtags -D ldflags=3D-lpthread =
-Wl,-L/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/pro=
d/lib/5.18.0/x86_64-linux-thread-multi/CORE =
-Wl,-rpath,/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_pat=
h/prod/lib/5.18.0/x86_64-linux-thread-multi/CORE =
-Wl,-L/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/pli=
b/lib =
-Wl,-rpath,/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_pat=
h/plib/lib =
-Wl,-L/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/pli=
b/apache/lib =
-Wl,-rpath,/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_pat=
h/
> plib/apache/lib -Wl,--enable-new-dtags -D ccdlflags=3D-Bdynamic =
-Wl,-L/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/pro=
d/lib/5.18.0/x86_64-linux-thread-multi/CORE =
-Wl,-rpath,/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_pat=
h/prod/lib/5.18.0/x86_64-linux-thread-multi/CORE =
-Wl,-L/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/pli=
b/lib =
-Wl,-rpath,/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_pat=
h/plib/lib =
-Wl,-L/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/pli=
b/apache/lib =
-Wl,-rpath,/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_pat=
h/plib/apache/lib -D ldlibpthname=3DLD_LIBRARY_PATH -D cccdlflags=3D-fPIC =
-D dlsrc=3Ddl_dlopen.xs -D ccflags=3D-O2 -D_REENTRANT -D_GNU_SOURCE =
-DTHREADS_HAVE_PIDS -pthread -DPERL_IMPLICIT_CONTEXT =
-DPERL_USE_SAFE_PUTENV -m64 -pipe -D_LARGEFILE_SOURCE =
-D_FILE_OFFSET_BITS=3D64 -fPIC -D so=3Dso -D libswanted=3Dnsl dl m crypt =
pthread c'
>    hint=3Drecommended, useposix=3Dtrue, d_sigaction=3Ddefine
>    useithreads=3Ddefine, usemultiplicity=3Ddefine
>    useperlio=3Ddefine, d_sfio=3Dundef, uselargefiles=3Ddefine, =
usesocks=3Dundef
>    use64bitint=3Ddefine, use64bitall=3Ddefine, uselongdouble=3Dundef
>    usemymalloc=3Dn, bincompat5005=3Dundef
>  Compiler:
>    cc=3D'gcc', ccflags =3D'-D_REENTRANT -D_GNU_SOURCE -O2 -D_REENTRANT =
-D_GNU_SOURCE -DTHREADS_HAVE_PIDS -pthread -DPERL_IMPLICIT_CONTEXT =
-DPERL_USE_SAFE_PUTENV -m64 -pipe -D_LARGEFILE_SOURCE =
-D_FILE_OFFSET_BITS=3D64 -fPIC -fno-strict-aliasing -fstack-protector =
-I/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/plib/in=
clude =
-I/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/plib/ap=
ache/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=3D64',
>    optimize=3D'-O3',
>    cppflags=3D'-D_REENTRANT -D_GNU_SOURCE -O2 -D_REENTRANT =
-D_GNU_SOURCE -DTHREADS_HAVE_PIDS -pthread -DPERL_IMPLICIT_CONTEXT =
-DPERL_USE_SAFE_PUTENV -m64 -pipe -D_LARGEFILE_SOURCE =
-D_FILE_OFFSET_BITS=3D64 -fPIC -fno-strict-aliasing -fstack-protector =
-I/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/plib/in=
clude =
-I/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/plib/ap=
ache/include'
>    ccversion=3D'', gccversion=3D'4.1.2 20070115 (SUSE Linux)', =
gccosandvers=3D''
>    intsize=3D4, longsize=3D8, ptrsize=3D8, doublesize=3D8, =
byteorder=3D12345678
>    d_longlong=3Ddefine, longlongsize=3D8, d_longdbl=3Ddefine, =
longdblsize=3D16
>    ivtype=3D'long', ivsize=3D8, nvtype=3D'double', nvsize=3D8, =
Off_t=3D'off_t', lseeksize=3D8
>    alignbytes=3D8, prototype=3Ddefine
>  Linker and Libraries:
>    ld=3D'gcc', ldflags =3D'-lpthread =
-Wl,-L/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/pro=
d/lib/5.18.0/x86_64-linux-thread-multi/CORE =
-Wl,-rpath,/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_pat=
h/prod/lib/5.18.0/x86_64-linux-thread-multi/CORE =
-Wl,-L/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/pli=
b/lib =
-Wl,-rpath,/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_pat=
h/plib/lib =
-Wl,-L/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/pli=
b/apache/lib =
-Wl,-rpath,/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_pat=
h/plib/apache/lib -Wl,--enable-new-dtags -fstack-protector'
>    =
libpth=3D/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/=
plib/lib =
/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/plib/apac=
he/lib /lib/../lib64 /usr/lib/../lib64 /lib /usr/lib /usr/local/lib =
/lib64 /usr/lib64 /usr/local/lib64
>    libs=3D-lnsl -ldl -lm -lcrypt -lpthread -lc
>    perllibs=3D-lnsl -ldl -lm -lcrypt -lpthread -lc
>    libc=3D/lib/libc-2.4.so, so=3Dso, useshrplib=3Dtrue, =
libperl=3Dlibcmacperl.so
>    gnulibc_version=3D'2.4'
>  Dynamic Linking:
>    dlsrc=3Ddl_dlopen.xs, dlext=3Dso, d_dlsymun=3Dundef, =
ccdlflags=3D'-Bdynamic =
-Wl,-L/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/pro=
d/lib/5.18.0/x86_64-linux-thread-multi/CORE =
-Wl,-rpath,/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_pat=
h/prod/lib/5.18.0/x86_64-linux-thread-multi/CORE =
-Wl,-L/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/pli=
b/lib =
-Wl,-rpath,/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_pat=
h/plib/lib =
-Wl,-L/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/pli=
b/apache/lib =
-Wl,-rpath,/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_pat=
h/plib/apache/lib'
>    cccdlflags=3D'-fPIC', lddlflags=3D'-shared -lpthread =
-Wl,-L/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/pro=
d/lib/5.18.0/x86_64-linux-thread-multi/CORE =
-Wl,-rpath,/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_pat=
h/prod/lib/5.18.0/x86_64-linux-thread-multi/CORE =
-Wl,-L/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/pli=
b/lib =
-Wl,-rpath,/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_pat=
h/plib/lib =
-Wl,-L/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/pli=
b/apache/lib =
-Wl,-rpath,/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_pat=
h/plib/apache/lib -Wl,--enable-new-dtags -fstack-protector'
>=20
> Locally applied patches:
>=20
>=20
> ---
> @INC for perl 5.18.0:
>    =
/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/prod/lib/=
site_perl/5.18.0/x86_64-linux-thread-multi
>    =
/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/prod/lib/=
site_perl/5.18.0
>    =
/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/prod/lib/=
5.18.0/x86_64-linux-thread-multi
>    =
/vobs/cc/CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/prod/lib/=
5.18.0
>    .
>=20
> ---
> Environment for perl 5.18.0:
>    HOME=3D/home/eedmja
>    LANG=3Den_US.UTF-8
>    LANGUAGE (unset)
>    LD_LIBRARY_PATH (unset)
>    LOGDIR (unset)
>    =
PATH=3D/tmp/_cc_CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/pr=
od/bin:/tmp/_cc_CCA-perl01/perl5_Linux_x64__________sixtyfive_char_path/pl=
ib/bin:/bin:/usr/bin:/sbin:/usr/sbin:/opt/gnome/bin:/opt/kde3/bin:/usr/bin=
/X11:/home/eedmja/bin:/opt/rational/clearcase/bin
>    PERL_BADLANG (unset)
>    SHELL=3D/bin/tcsh