Bug#805847: libnet-mac-vendor-perl: Apache/mod_perl silently does not start if Net::MAC::Vendor 1.25-1 is used (regression from 1.23-1)
Niko Tyni
ntyni at debian.org
Wed Dec 9 17:02:54 UTC 2015
On Mon, Nov 23, 2015 at 04:35:07PM -0800, Ivan Kohler wrote:
> On Mon, Nov 23, 2015 at 08:52:34PM +0200, Niko Tyni wrote:
> > FWIW I can't reproduce this
> > [...]
> > So you'll need to provide more information so the Apache problem
> > can be reproduced.
>
> I was able to reproduce with this configuration:
>
> PerlRequire "/home/ivan/apache2/handler.pl"
>
> and handler.pl is:
>
> #!/usr/bin/perl
> use Net::MAC::Vendor;
> 1;
>
> I'm not completely sure what's different internally that's triggering
> the failure. PerlRequire is preloaded during server startup, but
> PerlHandler isn't called until the child process is handling the
> request?
Thanks for the recipe. I looked into this a bit, and replacing 'use
Net::MAC::Vendor' with 'use EV' triggers it too. Apache dies with SIGSEGV,
backtrace below. It goes away if libev-perl is built with EV_NO_ATFORK
defined, so it's the __register_atfork() call in EV.xs:541 or so that
causes it somehow. Presumably the event loop hooking into fork() breaks
when it's mod_perl2 doing the forking.
Seeing the upstream response in [rt.cpan.org #110019], I don't plan to
do any further work on this issue. Sorry. Hope this helps a bit anyway.
Core was generated by `apache2'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007f76efa2ef80 in ?? ()
(gdb) bt full
#0 0x00007f76efa2ef80 in ?? ()
No symbol table info available.
#1 0x00007f76f433f90f in __libc_fork () at ../nptl/sysdeps/unix/sysv/linux/x86_64/../fork.c:188
self = <optimized out>
now = <optimized out>
pid = 0
allp = 0x7ffcdb0b7bd0
runp = <optimized out>
ppid = <optimized out>
parentpid = <optimized out>
__PRETTY_FUNCTION__ = "__libc_fork"
#2 0x00007f76f4875585 in apr_proc_detach () from /usr/lib/x86_64-linux-gnu/libapr-1.so.0
No symbol table info available.
#3 0x00007f76f15b0c1b in prefork_pre_config (p=0x7f76f512f028, plog=<optimized out>, ptemp=<optimized out>)
at prefork.c:1376
no_detach = 0
debug = <optimized out>
foreground = <optimized out>
rv = <optimized out>
userdata_key = 0x7f76f15b21fc "mpm_prefork_module"
#4 0x0000560f94b449be in ap_run_pre_config (pconf=0x7f76f512f028, plog=0x7f76f50fd028, ptemp=0x7f76f50ff028)
at config.c:89
pHook = <optimized out>
n = 3
rv = 0
#5 0x0000560f94b22f4b in main (argc=1, argv=0x7ffcdb0b7e28) at main.c:733
c = 0 '\000'
showcompile = 0
showdirectives = 0
confname = 0x560f94b66cc2 "apache2.conf"
def_server_root = 0x560f94b66cb5 "/etc/apache2"
temp_error_log = 0x0
error = <optimized out>
process = 0x7f76f5131118
pconf = 0x7f76f512f028
plog = 0x7f76f50fd028
ptemp = 0x7f76f50ff028
pcommands = 0x7f76f510d028
opt = 0x7f76f510d118
rv = <optimized out>
mod = 0x560f94d89160 <ap_prelinked_modules+64>
opt_arg = 0x7f76f5131028 "(P\023\365v\177"
signal_server = <optimized out>
--
Niko Tyni ntyni at debian.org
More information about the pkg-perl-maintainers
mailing list