php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #17058 child pid XXX exit signal Segmentation Fault (11)
Submitted: 2002-05-06 21:12 UTC Modified: 2002-05-15 14:07 UTC
From: karyn dot joseph at teradyne dot com Assigned:
Status: Closed Package: Reproducible crash
PHP Version: 4.2.0 OS: Solaris 2.7
Private report: No CVE-ID: None
View Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
If you reported this bug, you can edit this bug over here.
(description)
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: karyn dot joseph at teradyne dot com
New email:
PHP Version: OS:

 

 [2002-05-06 21:12 UTC] karyn dot joseph at teradyne dot com
Installed PHP 4.2.0 on Solaris 2.7 server running Apache 1.3.12. (Also removed this install and tried PHP 4.ORC1 with same results.)

configure, make, and make install worked no problem, but then when I run '/path/to/apache/bin/apachectl start' it looks like apache runs, but the child processes are crashing with a Segmentation Fault (11), and no pages, .html or otherwise are being served. 

If I go back to the httpd.conf file and comment out the php specific lines, the web pages are again being served correctly.

I would run a a gdb backtrace, but I have to admit I don't know where the gdb command can be found.

Any help you can offer would be greatly appreciated.

Thank you,

Karyn

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2002-05-07 02:59 UTC] derick@php.net
You can get the source from gnu.org, or a binary from:

http://www.sunfreeware.com/programlistsparc7.html#gdb (sparc)
or
http://www.sunfreeware.com/programlistintel7.html#gdb (Intel)

Derick
 [2002-05-08 15:43 UTC] karyn dot joseph at teradyne dot com
Backtrace information ... I hope this is right:

binder# gdb ../bin/httpd
GNU gdb 4.18
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "sparc-sun-solaris2.7"...
(gdb) run -X
Starting program: /opt/apache_1.3_64/conf/../bin/httpd -X

Program received signal SIGSEGV, Segmentation fault.
0xfed00178 in ?? () from /opt/apache_1.3_64/libexec/libphp4.so
(gdb) exit
Undefined command: "exit".  Try "help".
(gdb) bye
Undefined command: "bye".  Try "help".
(gdb) exit
Undefined command: "exit".  Try "help".
(gdb) quit
The program is running.  Exit anyway? (y or n) n
Not confirmed.
(gdb) bt
#0  0xfed00178 in ?? () from /opt/apache_1.3_64/libexec/libphp4.so
#1  0x86bd0 in ap_invoke_handler ()
#2  0xa3518 in process_request_internal ()
#3  0xa3a38 in ap_internal_redirect ()
#4  0x75fe8 in handle_dir ()
#5  0x86bd0 in ap_invoke_handler ()
#6  0xa3518 in process_request_internal ()
#7  0xa359c in ap_process_request ()
#8  0x96fe4 in child_main ()
#9  0x97278 in make_child ()
#10 0x97494 in startup_children ()
#11 0x97e84 in standalone_main ()
#12 0x98a90 in main ()
(gdb) quit
 [2002-05-08 15:57 UTC] mfischer@php.net
Now that we know it crashes in libphp4.so you need to recompile PHP with --enable-debug in other to get more information where it exactly crashed.
 [2002-05-08 16:00 UTC] karyn dot joseph at teradyne dot com
It was compiled with --enable-debug.
Here's the config. Did I do something
incorrectly?:

cat config.nice
#! /bin/sh
#
# Created by configure

"./configure" \
"--with-mysql" \
"--prefix=/opt/php-4ORC1" \
"--enable-debug" \
"--with-apxs=/opt/apache/bin/apxs" \
"$@"

Thank you for the help.

Karyn
 [2002-05-08 16:04 UTC] mfischer@php.net
The line
#0  0xfed00178 in ?? () from /opt/apache_1.3_64/libexec/libphp4.so
tells me the debugger can't find the symbols which means that this binary doesn't have the debug symbols which are normally generated when compiling with --enable-debug

Have you made sure the right binary is installed and loaded in the debugger?
 [2002-05-08 16:08 UTC] karyn dot joseph at teradyne dot com
I thought it was. I'm new to php, so am not sure what else I could do to change the install. 

I'll try to recompile php again and remove the previous install. Once installed, how can I tell if the correct modules are loaded or not?

Thanks,

Karyn
 [2002-05-08 19:26 UTC] alan_k@php.net
if you need to check a php binary to see how it was configured 
apart from <? phpinfo() ?>

strings libphp4.so | grep configure

I did notice that your apache modules directory was this
/opt/apache_1.3_64/libexec/libphp4.so

and you used apxs from here - 
"--with-apxs=/opt/apache/bin/apxs"

I presume they are the same install of apache?
 [2002-05-08 19:34 UTC] karyn dot joseph at teradyne dot com
Your assumption is exactly correct. The /opt/apache is just a link to /opt/apache.1.X. This way I can upgrade quickly without disrupting the whole server.

So I removed the /opt/apache_1.3_64/libexec/libphp4.so
file, removed the entries from the httpd.conf file, re-ran the config.nice, make, and make install for php4ORC1, then re-ran the gdb and still got the question marks. 

How do I remove a previous php install? Or any idea why it is not enabling the debugs? I'm obviously missing something. Any ideas? 

Karyn
 [2002-05-09 05:29 UTC] derick@php.net
You need to compile apache with debug sysmbols, the easiest way to do this is by making a static apach emodule of PHP.

Derick
 [2002-05-15 14:06 UTC] karyn dot joseph at teradyne dot com
You can close this issue.

I compile Apache 1.3.24 and redid the config file. Everything is working fine now. (Better than ever actually.)

thank you for your help,

Karyn
 [2002-05-15 14:07 UTC] derick@php.net
Closing on user request.
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Tue Dec 02 04:00:01 2025 UTC