ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> modperl
modperl
Re: okay, I give, I'm stumped
by Greg Rumple other posts by this author
Jul 29 2002 2:59AM messages near this date
Re: okay, I give, I'm stumped | Re: okay, I give, I'm stumped
Yup, this is it.  If I build it without DSO support, it appears to work.
Of course I build this with mod_php, mod_ssl, mod_perl, and a couple of
custom modules.  So running without DSO support isn't to easy.  I guess
I can attempt to build mod_perl in, but keep DSO support and dynamic
load the rest of the modules.  Will try that.

* Kyle Dawkins (kyle@centralparksoftware.com) [020728 18:58]:
>  Hey Greg et al.
>  
>  I'd betcha your problem is almost certainly caused by your use of DSOs. If
>  you *really* want to prune your system down to see where your bug is, then
>  build apache and mod_perl statically.  There was a very well-known bug that
>  caused DBI to segfault if it was run under a DSO.   Please rebuild your
>  binary and then let us know if that was the problem.
>  
>  Kyle Dawkins
>  Central Park Software
>  http://www.centralparksoftware.com
>  
>  
>  > Okay, I've been staring at this problem for close to 48 hours straight
>  > now and have finally narrowed it down to a set of lines of code.
>  >
>  > So let me first expand.
>  >
>  > I currently have a system running, with Apache 1.3.14 and Mod_Perl 1.24
>  > on Redhat 7.0 (yeah REALLY REALLY ancient) and Perl 5.005003.  It also
>  > has mod_ssl, and several other modules loaded, but for the sake of the
>  > problems I am having, I completely removed those.
>  >
>  > This actually runs perl scripts that connect and talk to (yeah dig
>  > this), Postgres, Mysql, and Informix.  The root of my problems, as I
>  > have finally found, is Informix.
>  >
>  > In our httpd.conf, we utilize a PerlScript directive to preload a bunch
>  > of environment variables, and other stuff at startup.  The script is
>  > pretty nasty and harry, and buried deep within it happened to be a call
>  > to Informix.
>  >
>  > So for the record, the current system (ancient stuff) works.
>  >
>  > So the problems began.  I decided to upgrade to Apache 1.3.26 and
>  > Mod_Perl 1.27 on Debian Woody (3.0) and Perl 5.006001.  I also built all
>  > the other libraries, and than the fun began.
>  >
>  > At first, I just got seg faults attempting to start apache.  But as I
>  > have said above, I have narrowed it down to a set of lines of code that
>  > cause it to fail.
>  >
>  > So if I build Apache 1.3.26 and Mod_perl 1.27 by themselves, using
>  > pretty straight forward options..
>  >
>  > Apache
>  > ------
>  > CC="gcc" > > CFLAGS="-g" > > LIBS="-L/home/grumple/src/test/lib
>  > -L/home/grumple/src/test/system/lib " > > ./configure > > "--prefix=/home/grumple/src/te
st/system" >  > "--enable-module=most" > > "--enable-shared=max" > > "--with-layout=GNU" > > 
"--disable-rule=EXPAT" >  > "$@"
>  > ----------------------
>  >
>  > and
>  >
>  > Mod_perl
>  > --------
>  > perl Makefile.PL PERL_USELARGEFILES=0 PERL_DEBUG=1 USE_APXS=1
>  WITH_APXS=/home/grumple/src/test/system/sbin/apxs EVERYTHING=1
>  INC=/home/grumple/src/test/system/include
>  > ----------------------
>  >
>  > and than my conf
>  >
>  > httpd.conf
>  > ----------
>  > AccessConfig /dev/null
>  > ResourceConfig /dev/null
>  >
>  > LoadModule env_module         libexec/mod_env.so
>  > LoadModule config_log_module  libexec/mod_log_config.so
>  > LoadModule mime_module        libexec/mod_mime.so
>  > LoadModule autoindex_module   libexec/mod_autoindex.so
>  > LoadModule dir_module         libexec/mod_dir.so
>  > LoadModule alias_module       libexec/mod_alias.so
>  > LoadModule access_module      libexec/mod_access.so
>  > LoadModule auth_module        libexec/mod_auth.so
>  > LoadModule setenvif_module    libexec/mod_setenvif.so
>  >
>  > AddModule mod_env.c
>  > AddModule mod_log_config.c
>  > AddModule mod_mime.c
>  > AddModule mod_autoindex.c
>  > AddModule mod_dir.c
>  > AddModule mod_alias.c
>  > AddModule mod_access.c
>  > AddModule mod_auth.c
>  > AddModule mod_setenvif.c
>  >
>  > ServerType standalone
>  > ServerRoot "/home/grumple/src/test/system"
>  >
>  > PidFile        /var/tmp/run/test.pid
>  > LockFile       /var/tmp/test.lock
>  > ScoreBoardFile /var/tmp/test.scoreboard
>  >
>  > Timeout 300
>  > KeepAlive On
>  > MaxKeepAliveRequests 100
>  > KeepAliveTimeout 15
>  > MinSpareServers 2
>  > MaxSpareServers 10
>  > StartServers    3
>  > MaxClients      256
>  > MaxRequestsPerChild 1000
>  >
>  > LoadModule perl_module libexec/libperl.so
>  > AddModule mod_perl.c
>  >
>  > ServerName grumple
>  > Port       6180
>  >
>  > Listen 6180
>  >
>  > ServerAdmin yeah@right
>  > DocumentRoot /home/grumple/src/test/www/htdocs
>  >
>  > <Directory />
>  > Options FollowSymLinks
>  > AllowOverride None
>  > </Directory>
>  >
>  > <Directory "/home/grumple/src/test/www/htdocs">
>  > Options FollowSymLinks
>  > AllowOverride None
>  > Order allow,deny
>  > Allow from all
>  > </Directory>
>  >
>  > DirectoryIndex index.tp index.htm index.html index.cgi
>  > AccessFileName .htaccess
>  > <Files .htaccess>
>  > Order allow,deny
>  > Deny from all
>  > </Files>
>  >
>  > UseCanonicalName On
>  > TypesConfig "/home/grumple/src/test/system/etc/httpd/mime.types"
>  > DefaultType text/plain
>  > HostnameLookups Off
>  > LogLevel warn
>  >
>  > LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
>  combined
>  > CustomLog "/var/tmp/logs/test.access" combined
>  > ErrorLog "/var/tmp/logs/test.errors"
>  >
>  > ReadmeName README
>  > HeaderName HEADER
>  >
>  > IndexOptions FancyIndexing
>  > IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
>  >
>  > AddEncoding x-compress Z
>  > AddEncoding x-gzip gz
>  >
>  > AddHandler send-as-is asis
>  > AddHandler imap-file map
>  >
>  > BrowserMatch "Mozilla/2" nokeepalive
>  > BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
>  > BrowserMatch "RealPlayer 4\.0" force-response-1.0
>  > BrowserMatch "Java/1\.0" force-response-1.0
>  > BrowserMatch "JDK/1\.0" force-response-1.0
>  >
>  > AddHandler cgi-script .cgi
>  > PerlScript /var/tmp/test.pl
>  >
>  > AddType application/x-x509-ca-cert .crt
>  > AddType application/x-pkcs7-crl .crl
>  >
>  > ErrorDocument 404 /index.tp
>  > ----------------------
>  >
>  > And here's the magical part, the test.pl script that causes the problem.
>  >
>  > test.pl
>  > -------
>  > BEGIN {
>  >     unshift(@INC, qw(
>  >         /home/grumple/src/test/lib/perl5
>  >         /home/grumple/src/test/system/lib/perl5
>  >     ));
>  > }
>  >
>  > use strict;
>  >
>  > use DBI;
>  > use DBD::Informix;
>  >
>  > ## informix connection params
>  > $ENV{'INFORMIXDIR'}    ||= '/opt/informix';
>  > $ENV{'INFORMIXSERVER'} ||= 'test_tcp';
>  > $ENV{'LD_LIBRARY_PATH'} .= ":$ENV{'INFORMIXDIR'}/lib";
>  >
>  > my $catalog = 'test';
>  > my $constr = join(':', 'dbi', 'Informix', $catalog);
>  > my $user = 'test';
>  > my $password = 'test';
>  >
>  > my $dbh = DBI->connect($constr,$user,$password);
>  >
>  > $dbh->disconnect();
>  >
>  > 1;
>  > ----------------------
>  >
>  > So all looks good right?  Well it does, other than running above yields
>  > the following crash in GDB.
>  >
>  > Program received signal SIGSEGV, Segmentation fault.
>  > 0x400e7a90 in free () from /lib/libc.so.6
>  > (gdb) bt
>  > #0  0x400e7a90 in free () from /lib/libc.so.6
>  > #1  0x40255d3b in Perl_safefree () from /usr/lib/libperl.so.5.6
>  > #2  0x402705eb in Perl_sv_clear () from /usr/lib/libperl.so.5.6
>  > #3  0x4027088f in Perl_sv_free () from /usr/lib/libperl.so.5.6
>  > #4  0x40274d6f in Perl_sv_vcatpvfn () from /usr/lib/libperl.so.5.6
>  > #5  0x4026a378 in Perl_sv_add_arena () from /usr/lib/libperl.so.5.6
>  > #6  0x4026a434 in Perl_sv_clean_all () from /usr/lib/libperl.so.5.6
>  > #7  0x40219b75 in perl_destruct () from /usr/lib/libperl.so.5.6
>  > #8  0x401bbb77 in perl_shutdown (s=0x0, p=0x0) at mod_perl.c:294
>  > #9  0x401bc507 in mp_dso_unload (data=0x8094bdc) at mod_perl.c:489
>  > #10 0x08050c39 in run_cleanups (c=0x80a06cc) at alloc.c:1713
>  > #11 0x0804f2d5 in ap_clear_pool (a=0x8094bdc) at alloc.c:538
>  > #12 0x08060bfc in standalone_main (argc=6, argv=0xbffffac4) at
>  http_main.c:5058
>  > #13 0x080615cc in main (argc=6, argv=0xbffffac4) at http_main.c:5448
>  >
>  > The test.pl script works fine by it's self.  Turning on full PERL
>  > debugging/tracing yields that the actual script has fully finished, and
>  > that it's in the tear down of the actualy perl stuff that this failure
>  > is coming from.   Not from the script per se.  But it is the script that
>  > is causing this problem.  Commenting out the connect and disconnect
>  > lines causes the server to startup and function just fine.
>  >
>  > So I'm not quite sure what to do.  I know I can get my entire system
>  > working if I don't make the calls to Informix at startup (it appears
>  > it's purely the connect that causes the error (whether it's a good
>  > connect or not, I tried giving it a bogus password, and it still
>  > crashes)), but well that's kind of a pain in the butt.
>  >
>  > So if anyone has ANY clues, it would be sincerely appreciated, as I need
>  > sleep, and I also would love to get this working.
>  >
>  > Thanks a ton in advance.
>  >
>  > Greg
>  >
>  >
>  > --
>  > Greg Rumple
>  > grumple@[...].net
>  

-- 
Greg Rumple
grumple@zaphon.llamas.net
Thread:
Greg Rumple
Geoffrey Young
Stas Bekman
Stas Bekman
simran
Geoffrey Young
simran
simran
Kyle Dawkins
Greg Rumple
Drew Taylor
Greg Rumple
David Kaufman
Greg Rumple

Privacy Policy | Email Opt-out | Feedback | Syndication
© ActiveState Software Inc. All rights reserved