You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@perl.apache.org by Geoffrey Young <gy...@laserlink.net> on 2001/07/06 15:04:43 UTC
DIR_CREATE woes
hi all...
about 2 weeks ago I noticed that modules with DIR_CREATE and DIR_MERGE
sections stopped working with bleedperl. I've tried to trace it as best I
could, but I'm really at a loss since Apache just stops - no core.
sending httpd -X to strace gives me
open("/src/bleedperl/lib/site_perl/5.7.1/i686-linux-thread-multi/Apache/Stop
Me.pm", O_RDONLY|O_LARGEFILE) = 4
fstat(4, {st_mode=S_IFREG|0444, st_size=579, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x405b6000
read(4, "package Apache::StopMe;\n\nuse 5.7"..., 4096) = 579
read(4, "", 4096) = 0
close(4) = 0
munmap(0x405b6000, 4096) = 0
--- SIGSEGV (Segmentation fault) ---
+++ killed by SIGSEGV +++
no matter which module I happen to be using - if it has DIR_CREATE and
DIR_MERGE sections (or SERVER_*) it SIGSEGVs. modules that use custom
directives but without merging seem to be fine.
I have included a simple module for testing. on my system (cvs Apache, cvs
modperl, bleedperl with 2 vhosts)
PerlModule Apache::StopMe
StopMe
in the main server config is sufficient to stop things. maybe I'm chasing
air here, but it just all of a sudden stopped working. I'm at a loss for
how to continue tracking it down (if 'it' actually exists :)
--Geoff
Summary of my perl5 (revision 5.0 version 7 subversion 17) configuration:
Platform:
osname=linux, osvers=2.2.14-5.0, archname=i686-linux-thread-multi
uname='linux spinnaker.laserlink.net 2.2.14-5.0 #1 tue mar 7 21:07:39
est 2000 i686 unknown '
config_args='-des -Dusethreads -Dprefix=/src/bleedperl -Doptimize=-g
-Dusedevel -Dinstallusrbinperl -Uversiononly'
hint=previous, useposix=true, d_sigaction=define
usethreads=define use5005threads=undef useithreads=define
usemultiplicity=define
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
Compiler:
cc='cc', ccflags ='-D_REENTRANT -Wall -DDEBUGGING -fno-strict-aliasing
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-g',
cppflags='-D_REENTRANT -Wall -DDEBUGGING -fno-strict-aliasing
-D_REENTRANT -Wall -DDEBUGGING -fno-strict-aliasing -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -D_REENTRANT -Wall -DDEBUGGING -fno-strict-aliasing
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_REENTRANT -Wall -DDEBUGGING
-fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_REENTRANT
-Wall -DDEBUGGING -fno-strict-aliasing -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -D_REENTRANT -Wall -DDEBUGGING -fno-strict-aliasing
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_REENTRANT -Wall -DDEBUGGING
-fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_REENTRANT
-Wall -DDEBUGGING -fno-strict-aliasing -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -D_REENTRANT -Wall -DDEBUGGING -fno-strict-aliasing
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_REENTRANT -Wall -DDEBUGGING
-fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_REENTRANT
-Wall -DDEBUGGING -fno-strict-aliasing -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -D_REENTRANT -Wall -DDEBUGGING -fno-strict-aliasing
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_REENTRANT -Wall -DDEBUGGING
-fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_REENTRANT
-Wall -DDEBUGGING -fno-strict-aliasing -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -D_REENTRANT -Wall -DDEBUGGING -fno-strict-aliasing
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_REENTRANT -Wall -DDEBUGGING
-fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
ccversion='', gccversion='egcs-2.91.66 19990314/Linux (egcs-1.1.2
release)', 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, usemymalloc=n, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -L/usr/local/lib'
libpth=/usr/local/lib /lib /usr/lib
libs=-lnsl -lndbm -lgdbm -ldb -ldl -lm -lpthread -lc -lposix -lcrypt
-lutil
perllibs=-lnsl -ldl -lm -lpthread -lc -lposix -lcrypt -lutil
libc=/lib/libc-2.1.3.so, so=so, useshrplib=false, libperl=libperl.a
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: DEBUGGING MULTIPLICITY USE_ITHREADS USE_LARGE_FILES
PERL_IMPLICIT_CONTEXT
Locally applied patches:
DEVEL11146
Built under linux
Compiled at Jul 5 2001 22:03:39
@INC:
/src/bleedperl/lib/5.7.1/i686-linux-thread-multi
/src/bleedperl/lib/5.7.1
/src/bleedperl/lib/site_perl/5.7.1/i686-linux-thread-multi
/src/bleedperl/lib/site_perl/5.7.1
/src/bleedperl/lib/site_perl
.
--Geoff
Re: DIR_CREATE woes
Posted by Doug MacEachern <do...@covalent.net>.
patch below fixes, you can see the problem excercised with this little
test too:
use POSIX ();
for (1,2) {
undef &POSIX::isalnum;
}
Index: op.c
===================================================================
RCS file: /usr/local/cvs_repository/perl-current-mirror/op.c,v
retrieving revision 1.1.1.45
diff -u -r1.1.1.45 op.c
--- op.c 2001/07/06 16:37:22 1.1.1.45
+++ op.c 2001/07/06 16:39:38
@@ -4161,8 +4161,8 @@
#ifdef USE_ITHREADS
if (CvFILE(cv) && !CvXSUB(cv)) {
Safefree(CvFILE(cv));
- CvFILE(cv) = 0;
}
+ CvFILE(cv) = 0;
#endif
if (!CvXSUB(cv) && CvROOT(cv)) {
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org