a signal handler for USR2 has been setup in startup.pl, but
sending
a USR2 to the root httpd process does not result in the execution of
the
signal handler; apache: 1.3.29; mod_perl: 1.29; perl: 5.8.2;
#################################################################
output of uname -a
Linux localhost.localdomain 2.4.20-6 #1 Thu Feb 27 09:35:54 EST 2003
i586 i586 i386 GNU/Linux
#################################################################
perl -V output:
Summary of my perl5 (revision 5.0 version 8 subversion 2)
configuration:
Platform:
osname=linux, osvers=2.4.20-6, archname=i586-linux
uname='linux localhost.localdomain 2.4.20-6 #1 thu feb 27
09:35:54 est 2003 i586 i586 i386 gnulinux '
config_args='-de'
hint=recommended, useposix=true, d_sigaction=define
usethreads=undef use5005threads=undef useithreads=undef
usemultiplicity=undef
useperlio=define d_sfio=undef uselargefiles=define
usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags ='-fno-strict-aliasing -I/usr/local/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O3',
cppflags='-fno-strict-aliasing -I/usr/local/include'
ccversion='', gccversion='3.2.2 20030222 (Red Hat Linux
3.2.2-5)', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
d_longlong=define, longlongsize=8, d_longdbl=define,
longdblsize=12
ivtype='long', ivsize=4, nvtype='double', nvsize=8,
Off_t='off_t', lseeksize=8
alignbytes=4, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -L/usr/local/lib'
libpth=/usr/local/lib /lib /usr/lib
libs=-lnsl -ldl -lm -lcrypt -lutil -lc
perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
libc=/lib/libc-2.3.2.so, so=so, useshrplib=false,
libperl=libperl.a
gnulibc_version='2.3.2'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef,
ccdlflags='-rdynamic'
cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib'
Characteristics of this binary (from libperl):
Compile-time options: USE_LARGE_FILES
Built under linux
Compiled at Dec 28 2003 17:22:53
@INC:
/usr/local/lib/perl5/5.8.2/i586-linux
/usr/local/lib/perl5/5.8.2
/usr/local/lib/perl5/site_perl/5.8.2/i586-linux
/usr/local/lib/perl5/site_perl/5.8.2
/usr/local/lib/perl5/site_perl
.
#################################################################
no options given to mod_perl's Makefile.PL
#################################################################
relevant mod_perl server configuration:
AddHandler perl-script Apache::Registry
PerlRequire /usr/local/apache/conf/startup.pl
<Location /perl-status>
SetHandler perl-script
PerlHandler Apache::Status
order deny,allow
deny from all
allow from 127.0.0.1
</Location>
PerlFreshRestart On
note that an access of /perl-status Signal Handler's sections shows:
USR2 = CODE(0x8221780)
#################################################################
error_log:
[Sun Dec 28 20:10:07 2003] [notice] Apache/1.3.29 (Unix)
mod_perl/1.29 configure
d -- resuming normal operations
[Sun Dec 28 20:10:07 2003] [notice] Accept mutex: sysvsem (Default:
sysvsem)
#################################################################
make test for mod_perl:
(cd ../apache_1.3.29/src &&
PERL5LIB=/usr/local/src/mod_perl-1.29/lib: make CC="cc";)
make[1]: Entering directory `/usr/local/src/apache_1.3.29/src'
===> regex
make[2]: Nothing to be done for `all'.
<=== regex
===> os/unix
make[2]: Nothing to be done for `all'.
<=== os/unix
===> ap
make[2]: Nothing to be done for `all'.
<=== ap
===> main
make[2]: Nothing to be done for `all'.
<=== main
===> lib
===> lib/expat-lite
make[3]: Nothing to be done for `all'.
<=== lib/expat-lite
<=== lib
===> modules
===> modules/standard
make[3]: Nothing to be done for `all'.
<=== modules/standard
===> modules/perl
make[3]: Nothing to be done for `all'.
<=== modules/perl
<=== modules
cc -c -I./os/unix -I./include -DLINUX=22 -DUSE_HSREGEX
-DUSE_EXPAT -I./lib/expat-lite -DNO_DL_NEEDED -fno-strict-aliasing
-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DMOD_PERL
modules.c
cc -c -I./os/unix -I./include -DLINUX=22 -DUSE_HSREGEX
-DUSE_EXPAT -I./lib/expat-lite -DNO_DL_NEEDED -fno-strict-aliasing
-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DMOD_PERL
buildmark.c
cc -DLINUX=22 -DUSE_HSREGEX -DUSE_EXPAT -I./lib/expat-lite
-DNO_DL_NEEDED -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -DMOD_PERL \
-o httpd buildmark.o modules.o modules/perl/libperl.a
modules/standard/libstandard.a main/libmain.a ./os/unix/libos.a ap/libap.a
regex/libregex.a lib/expat-lite/libexpat.a `/usr/local/bin/perl
/usr/local/src/mod_perl-1.29/src/modules/perl/ldopts ` -lm -lcrypt
make[1]: Leaving directory `/usr/local/src/apache_1.3.29/src'
make[1]: Entering directory `/usr/local/src/mod_perl-1.29/Apache'
make[1]: Leaving directory `/usr/local/src/mod_perl-1.29/Apache'
make[1]: Entering directory
`/usr/local/src/mod_perl-1.29/Connection'
make[1]: Leaving directory `/usr/local/src/mod_perl-1.29/Connection'
make[1]: Entering directory `/usr/local/src/mod_perl-1.29/Constants'
make[1]: Leaving directory `/usr/local/src/mod_perl-1.29/Constants'
make[1]: Entering directory `/usr/local/src/mod_perl-1.29/File'
make[1]: Leaving directory `/usr/local/src/mod_perl-1.29/File'
make[1]: Entering directory `/usr/local/src/mod_perl-1.29/Leak'
make[1]: Leaving directory `/usr/local/src/mod_perl-1.29/Leak'
make[1]: Entering directory `/usr/local/src/mod_perl-1.29/Log'
make[1]: Leaving directory `/usr/local/src/mod_perl-1.29/Log'
make[1]: Entering directory
`/usr/local/src/mod_perl-1.29/ModuleConfig'
make[1]: Leaving directory
`/usr/local/src/mod_perl-1.29/ModuleConfig'
make[1]: Entering directory `/usr/local/src/mod_perl-1.29/PerlRunXS'
make[1]: Leaving directory `/usr/local/src/mod_perl-1.29/PerlRunXS'
make[1]: Entering directory `/usr/local/src/mod_perl-1.29/Server'
make[1]: Leaving directory `/usr/local/src/mod_perl-1.29/Server'
make[1]: Entering directory `/usr/local/src/mod_perl-1.29/Symbol'
make[1]: Leaving directory `/usr/local/src/mod_perl-1.29/Symbol'
make[1]: Entering directory `/usr/local/src/mod_perl-1.29/Table'
make[1]: Leaving directory `/usr/local/src/mod_perl-1.29/Table'
make[1]: Entering directory `/usr/local/src/mod_perl-1.29/URI'
make[1]: Leaving directory `/usr/local/src/mod_perl-1.29/URI'
make[1]: Entering directory `/usr/local/src/mod_perl-1.29/Util'
make[1]: Leaving directory `/usr/local/src/mod_perl-1.29/Util'
../apache_1.3.29/src/httpd -f `pwd`/t/conf/httpd.conf -X -d `pwd`/t
&
httpd listening on port 8529
will write error_log to: t/logs/error_log
letting apache warm up...\c
done
/usr/local/bin/perl t/TEST 0
still waiting for server to warm up...ok
ok
ok
ok
modules/actions.......ok
modules/cgi...........ok
modules/constants.....ok
modules/cookie........skipped
all skipped: no reason given
modules/file..........skipped
all skipped: no reason given
modules/httpdconf.....ok
modules/include.......ok
modules/log...........skipped
all skipped: no reason given
modules/module........skipped
all skipped: no reason given
modules/perlrun.......ok
modules/psections.....skipped
all skipped: no reason given
modules/request.......skipped
all skipped: no reason given
modules/src...........ok
modules/stage.........skipped
all skipped: no reason given
modules/status........ok
modules/symbol........skipped
all skipped: no reason given
modules/uri...........skipped
all skipped: no reason given
modules/util..........skipped
all skipped: no reason given
internal/api..........ok
internal/auth.........ok
internal/croak........ok
internal/dirmagic.....ok
internal/error........ok
internal/headers......ok
internal/hooks........ok
internal/http-get.....ok
internal/http-post....ok
internal/proxy........ok
internal/redirect.....ok
internal/rwrite.......ok
internal/stacked......skipped
all skipped: no reason given
internal/table........skipped
all skipped: no reason given
internal/taint........ok
All tests successful, 12 tests skipped.
Files=33, Tests=271, 76 wallclock secs (64.30 cusr + 5.01 csys =
69.31 CPU)
kill `cat t/logs/httpd.pid`
rm -f t/logs/httpd.pid
rm -f t/logs/error_log
#################################################################
startup.pl:
#!/usr/bin/perl
$SIG{USR2} = sub {
open(F,">>/logs/test_log") || die "can't append to test_log: $!";
my $l = localtime();
print F "$l [debug]: in USR2 handler\n";
close(F);
};
1;