Summary of my perl5 (revision 5.0 version 8 subversion 0) configuration:
Platform:
osname=linux, osvers=2.4.20-wolk4.9s, archname=i386-linux
uname='linux massiel.oasysasp.loc 2.4.20-wolk4.9s #27 jue abr 8 12:28:33 cest 2004 i686 i686 i386 gnulinux '
config_args='-des -Doptimize=-O2 -g -pipe -march=i686 -Dmyhostname=localhost [EMAIL PROTECTED] -Dcc=gcc -Dcf_by=Red Hat, Inc. -Dinstallprefix=/usr -Dprefix=/usr -Darchname=i386-linux -Dvendorprefix=/usr -Dsiteprefix=/usr -Dotherlibdirs=/usr/lib/perl5/5.8.0 -Duseshrplib -Uusethreads -Uuseithreads -Duselargefiles -Dd_dosuid -Dd_semctl_semun -Di_db -Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio -Dinstallusrbinperl -Ubincompat5005 -Uversiononly -Dpager=/usr/bin/less -isr'
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='gcc', ccflags ='-DDEBUGGING -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm',
optimize='-O2 -g -pipe -march=i686',
cppflags='-DDEBUGGING -fno-strict-aliasing -I/usr/local/include -I/usr/include/gdbm'
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='gcc', ldflags =' -L/usr/local/lib'
libpth=/usr/local/lib /lib /usr/lib
libs=-lnsl -lgdbm -ldb -ldl -lm -lc -lcrypt -lutil
perllibs=-lnsl -ldl -lm -lc -lcrypt -lutil
libc=/lib/libc-2.3.2.so, so=so, useshrplib=true, libperl=libperl.so
gnulibc_version='2.3.2'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.8.0/i386-linux/CORE'
cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib'
Characteristics of this binary (from libperl):
Compile-time options: DEBUGGING USE_LARGE_FILES
Locally applied patches:
MAINT18379
Built under linux
Compiled at May 13 2004 11:19:51
@INC:
/usr/lib/perl5/5.8.0/i386-linux
/usr/lib/perl5/5.8.0
/usr/lib/perl5/site_perl/5.8.0/i386-linux
/usr/lib/perl5/site_perl/5.8.0
/usr/lib/perl5/site_perl
/usr/lib/perl5/vendor_perl/5.8.0/i386-linux
/usr/lib/perl5/vendor_perl/5.8.0
/usr/lib/perl5/vendor_perl
/usr/lib/perl5/5.8.0/i386-linux
/usr/lib/perl5/5.8.0
The staticaly linked perl it's a good idea... but will this hit the memory space of the running httpd proceses? There will be a lot on those machines....
Many many thanks,
On Fri, 2004-05-14 at 20:03, Stas Bekman wrote:
Marc Gracia wrote: > Hi, > I have some problem that makes me mad for some time. > We just setted up a web farm to support our application that runs > entirely using mod_perl. > Until now we used a traditional apache+vhosts to serve our customers, > but as it became so unadministrable, we started this new sistem to serve > better. > The basic structure is a reverse proxy as a frontend that redirects > requests to a bunch of different machines, each one with a bunch of > "apaches" on differents ports for each customer. > All this little apaches are running as non-root users on ports > 50000, > to protect better one customer of the other. > > Well, once all setted up all seemed to go well. But on one page that > uses the Mail::Sendmail module to send an e-mail, the server crashed > with a segmentation fault. > After tracing all we could into all the perl modules, we found that the > server crashed > when Mail::Sendmail tried to open the network socket. > Then we did a little test and setted up a program that just opened a > socket, and once the page are called, the server segfaults... > The same test, works perfect outside mod_perl... > > The server is an Fully Updated RedHat 9 > custom "WOLK" 2.4 kernel ( 2.4.20-wolk4.9s ) > perl-5.8 (first tried with stock redhat. Then I recompiled my own rpm > with no threads, with the same results) > apache-1.3.29 (EAPI+no EXPAT options, tested activating and deactivating > those options, with no success) > mod_ssl > mod_perl 1.29 (I've tested 1.27 and 1.28 also, with the same results) > > Then I start debugging apache, to see what would be happening... > > gdb httpd > (gdb) run -X > <Click on the fatal page with the Mail::Sendmail> > > Program received signal SIGSEGV, Segmentation fault. > 0x1555ef8e in do_lookup_versioned () from /lib/ld-linux.so.2 > (gdb) where > #0 0x1555ef8e in do_lookup_versioned () from /lib/ld-linux.so.2 > #1 0x1555e156 in _dl_lookup_versioned_symbol_internal () from > /lib/ld-linux.so.2 > #2 0x15561e03 in fixup () from /lib/ld-linux.so.2 > #3 0x15561cc0 in _dl_runtime_resolve () from /lib/ld-linux.so.2 > #4 0x156e60a8 in getprotobyname_r@@GLIBC_2.1.2 () from /lib/libc.so.6 > #5 0x156e5f5f in getprotobyname () from /lib/libc.so.6 > #6 0x15d234eb in Perl_pp_gprotoent () at pp_sys.c:4856 > #7 0x15d23299 in Perl_pp_gpbyname () at pp_sys.c:4823 > #8 0x15cd08d2 in Perl_runops_debug () at dump.c:1414 > #9 0x15c8c54e in S_call_body (myop=0x3fffdc40, is_eval=0) at > perl.c:2069 > #10 0x15c8c1fd in Perl_call_sv (sv=0x15d72d54, flags=4) at perl.c:1987 > #11 0x157c82ad in perl_call_handler (sv=0x914d048, r=0x985fffc, > args=0x0) at mod_perl.c:1661 As you can see, the segfault doesn't happen in the mod_perl land. So I'm afraid we can't do much about it. I'm not sure why it happens only under mod_perl. Perhaps because it's running under Apache -- as you can see the segfault is happening when it tries to dynamically resolve the symbol to use the thread-safe implementation of getprotobyname (that's the _r suffix). Try a static build of perl, it should have all the symbols resolved at the linking time. You didn't show us your 'perl -V' so I can't tell what kind of perl build you are using. I've googled a bit, you can see similar reports in other projects: http://groups.google.ca/groups?selm=bel0bm%241hbe%241%40FreeBSD.csie.NCTU.edu.tw&output=gplain http://zebra.fh-weingarten.de/~maxi/html/transcode-users/2003-09/msg00030.html
Marc Gracia Promotion Manager e-mail: [EMAIL PROTECTED] tel: +34 675 508 820 fax: +34 938 721 549 C/Muralla del Carme, 10 08240 Manresa BARCELONA SPAIN |
<<attachment: image001.gif>>