php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #9330 Child process seg faults on php call
Submitted: 2001-02-18 22:02 UTC Modified: 2001-02-20 14:27 UTC
From: mchampagne at capis dot com Assigned:
Status: Closed Package: *Configuration Issues
PHP Version: 4.0.4pl1 OS: AIX 4.3.3
Private report: No CVE-ID: None
 [2001-02-18 22:02 UTC] mchampagne at capis dot com
Here is exactly what I did to reproduce the problem.  This is on an AIX 4.3.3 box with Oracle 9iAS which runs Apache 1.3.12.  I have successfully installed PHP on Oracle 8iAS which runs Apache 1.3.9.

Here's the exact steps I took to install PHP:

NOTE: I ran all of this as the oracle user and I had my ORACLE_HOME set to /ias/6iserver.  This shouldn't be necessary since we specify this on the configure line but I did it to be safe.

Added -I/ias/Apache/perl/lib/5.00503 to the end of the #!perl call at the top of the apxs script.  A perl module (strict.pm) is required but is not found in the include path when the configure script runs apxs.

Also, I'm not sure why, but Oracle 9iAS automatically assumes everyone is running Solaris.  In the apxs script I  changed a '-DSOLARIS2=260' reference to -DAIX=43.

Ran CC=cc configure --with-apxs=/ias/Apache/Apache/bin/apxs --with-oci8=/ias/6iserver --without-mysql --prefix=/ias/Apache/Apache

After the configure script was done I edited config_vars.mk and added -I/ias/rdbms/demo and -I/ias/rdbms/public to the INCLUDES variable.  IAS keeps some of the oci8 header files in these directories.  Also, for 9i I had to add -I/ias/Apache/Apache/include to the INCLUDES variable.  I did not have to do this for 8iAS.

AIX has a sparsely documented bug where alloca() is not defined on the system and the PHP configure script does not seem to handle this properly.  We need to add -ma to CFLAGS to get around this.

Created a link in /ias/6iserver/lib for libclntsh.a.  For some reason only a .so was included in 9iAS.  I checked 8iAS and this file is not missing here.  Ran ln -s libclntsh.so libclntsh.a in the /ias/6iserver/lib directory.

Ran make.

Ran make install.

Apache starts up ok, but I get a seg fault at the first call to PHP.  Only the child http process dies.

Apache error log shows:

[Sun Feb 18 20:51:19 2001] [notice] Apache/1.3.12 (Unix) ApacheJServ/1.1 PHP/4.0.4pl1 mod_perl/1.22 configured -- resuming no
rmal operations
[Sun Feb 18 20:51:52 2001] [notice] child pid 16028 exit signal Segmentation fault (11)

DBX output of core file:

< Several pages of warnings like this snipped >
warning: Unable to access address 0x2007d6fc from core
warning: Unable to access address 0x2007d700 from core
warning: Unable to access address 0x2007d700 from core
warning: Unable to access address 0x2007d704 from core
warning: Unable to access address 0x2007d704 from core
warning: Unable to access address 0x2007d708 from core
warning: Unable to access address 0x2007d708 from core

[using memory image in ../core]
warning: Unable to access address 0xf01558e4 from core

Segmentation fault in signal._p_nsleep [/usr/lib/libpthreads.a] at 0xd0013db4
0xd0013db4 (_p_nsleep+0x10) 80410014        lwz   r2,0x14(r1)

Any ideas?

Thanks,
Michael Champagne, Software Engineer
Capital Institutional Services, Inc.
wk: mchampagne@capis.com

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2001-02-20 14:27 UTC] mchampagne at capis dot com
Found a post on a newsgroup that gets around this bug.  I modified libtool and it runs successfully now.

The configure script generates a script named 'libtool'.  Modify the archive_cmds= and archive_expsym_cmds line to include the following switch:

\${wl}-bI:/ias/Apache/Apache/libexec/httpd.exp

This tells PHP which calls to the Apache API have been exported and can be resolved at runtime.

Mike

 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Apr 19 15:01:28 2024 UTC