On 9/16/15 7:08 AM, Vincent Veyron wrote:

> I put your test handler on a machine running Debian 8 (jessie), it works just 
> fine.

Fails for me on both CentOS 7 and Darwin (OS X 10.10.5). I see you are
using Apache 2.4 (I was using 2.2).  I tested with Apache 2.4.16 and it
also fails for me on that as well

Server version: Apache/2.4.16 (Unix)
Server built:   Sep 16 2015 09:21:11

I built perl myself to rule out vendor applied patches to the perl dist.
I wonder if one of the many patches debian applies to perl works around
this issue somehow.  Debian also applies a bunch of patches (18 as of
current dpkg src) to the mod_perl package.  Maybe one of those works
around the issue.  I'll sift through those patches and see if any of
those help.

Are you using debian packages for the CPAN modules at all?  Or did you
install all CPAN packages using a CPAN client?  Because I also wonder if
they patched TryCatch, Devel::Declare, or one of its dependencies to
work around this issue.

Here is the failure on CentOS 7, apache 2.4, perl 5.20.3, mod_perl
2.0.9, all built from scratch, no vendor packages used:

[mschout@centos7 modperl-trycatch-bug]$ make test
/home/mschout/perlbug/bin/perl -Iblib/arch -Iblib/lib \
t/TEST  -clean
[warning] setting ulimit to allow core files
ulimit -c unlimited; /home/mschout/perlbug/bin/perl
/home/mschout/modperl-trycatch-bug/t/TEST -clean
APACHE_TEST_APXS= APACHE_TEST_GROUP= APACHE_TEST_HTTPD=
APACHE_TEST_PORT= APACHE_TEST_USER= \
/home/mschout/perlbug/bin/perl -Iblib/arch -Iblib/lib \
t/TEST  -bugreport -verbose=0
[warning] setting ulimit to allow core files
ulimit -c unlimited; /home/mschout/perlbug/bin/perl
/home/mschout/modperl-trycatch-bug/t/TEST -bugreport -verbose=0
/home/mschout/perlbug/bin/httpd  -d /home/mschout/modperl-trycatch-bug/t
-f /home/mschout/modperl-trycatch-bug/t/conf/httpd.conf -D APACHE2 -D
APACHE2_4 -D PERL_USEITHREADS
using Apache/2.4.16 (prefork MPM)

waiting 60 seconds for server to start: ..
waiting 60 seconds for server to start: ok (waited 1 secs)
server localhost:8529 started
t/crash.t .. Dubious, test returned 2 (wstat 512, 0x200)
Failed 2/2 subtests

t/logs/error_log
[Wed Sep 16 09:27:19.394249 2015] [mpm_prefork:notice] [pid 4129]
AH00163: Apache/2.4.16 (Unix) mod_perl/2.0.9 Perl/v5.20.3 configured --
resuming normal operations
[Wed Sep 16 09:27:19.394372 2015] [mpm_prefork:info] [pid 4129] AH00164:
Server built: Sep 16 2015 09:21:11
[Wed Sep 16 09:27:19.394381 2015] [core:notice] [pid 4129] AH00094:
Command line: '/home/mschout/perlbug/bin/httpd -d
/home/mschout/modperl-trycatch-bug/t -f
/home/mschout/modperl-trycatch-bug/t/conf/httpd.conf -D APACHE2 -D
APACHE2_4 -D PERL_USEITHREADS'
[Wed Sep 16 09:27:19.394386 2015] [mpm_prefork:debug] [pid 4129]
prefork.c(995): AH00165: Accept mutex: sysvsem (default: sysvsem)
[Wed Sep 16 09:27:20.246297 2015] [authz_core:debug] [pid 4130]
mod_authz_core.c(835): [client 127.0.0.1:46738] AH01628: authorization
result: granted (no directives)
[Wed Sep 16 09:27:20.498088 2015] [authz_core:debug] [pid 4130]
mod_authz_core.c(835): [client 127.0.0.1:46739] AH01628: authorization
result: granted (no directives)
[Wed Sep 16 09:27:20.500796 2015] [perl:error] [pid 4130] [client
127.0.0.1:46739] panic: attempt to copy freed scalar 34259c0 to 3425870
at /home/mschout/modperl-trycatch-bug/blib/lib/Apache/TryCatch.pm line 20.\n
[Wed Sep 16 09:27:20.526382 2015] [core:info] [pid 4129] AH00096:
removed PID file /home/mschout/modperl-trycatch-bug/t/logs/httpd.pid
(pid=4129)
[Wed Sep 16 09:27:20.526398 2015] [mpm_prefork:notice] [pid 4129]
AH00169: caught SIGTERM, shutting down


 But you are likely not seeing it because one of:

- vendor patches applied by debian packaging team
- you are using Apache 2.4.  I tested with Apache 2.2.


Regards,
Michael Schout

Reply via email to