PHP 4.0 Bug #5615 Updated: SIGSEGV combining PHP/OCI8/SSL
| From: | Bug Database | Date: | Wed, 13 Sep 2000 11:20:58 +0000 |
| Subject: | PHP 4.0 Bug #5615 Updated: SIGSEGV combining PHP/OCI8/SSL | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-33133@lists.php.net to get a copy of this message | ||
ID: 5615
Updated by: sniper
Reported By: greg@insight.com
Status: Closed
Bug Type: Reproduceable crash
Assigned To:
Comments:
No feedback. Closed.
--Jani
Previous Comments:
---------------------------------------------------------------------------
[2000-08-23 05:16:56] sniper@php.net
Have you tried leaving that easysoft stuff out?
Does it solve this problem?
--Jani
---------------------------------------------------------------------------
[2000-08-06 09:37:19] rasmus@php.net
What do you mean "Have not seriously considered compiling PHP statically due to its 2MB+ size
and resulting performance hit." ?
PHP loaded statically is actually faster on most operating systems, including Linux. The size of
the static binary is irrelevant.
As for your problem. All I have to add here is that I have PHP 4 with Oracle 8.0.5 libs and mod_ssl
working fine. I don't have the EasySoft piece though.
---------------------------------------------------------------------------
[2000-07-14 23:52:32] greg@insight.com
We're observing silent crashes combining Apache+Mod_SSL+EasySoft+OCI8 as DSO's
Attempting to build all modules as DSO's, included modules: default Apache, rewrite, mod_ssl,
php4.
Observed problem: SIGSEGV, segmentation fault deep in PHP code, modf() calls when first loading
Apache.
Various combinations and results:
1. Configure Apache-mods (DSO), SSL (DSO), PHP/oci8 (DSO). Problem = Described above--SIGSEGV.
(GDBM trace provided)
2. Configure Apache-mods (DSO), SSL (DSO), PHP (DSO), remove OCI8. Apache works fine.
3. Configure Apache-mods (static), SSL (DSO), PHP/oci8 (DSO). Problem = Apache loads and responds
to requests, including Easysoft and Oracle. However, when sending a sigHUP (reload) to Apache a
similar SIGSEGV fault happens (2nd GDBM trace provided).
4. Configure Apache-mods (static), SSL (static), PHP/oci8 (DSO). Problem = same as #3. Works but
crashes on sigHUP.
5. Configure Apache-mods (DSO), PHP/oci8 (DSO), eliminate SSL. Apache works fine, DB's work
fine.
6. Configure Apache-mods (static), PHP/oci8 (DSO), eliminate SSL. Works fine also.
Have tried many variations on PHP configuration switches with no variation in the observed results.
Have not seriously considered compiling PHP statically due to its 2MB+ size and resulting
performance hit.
Looking at the GDB trace, it's obvious values are getting clobbered in some kind of
memory/buffer overrun. Removing SSL or OCI8 eliminates the problem, yet the traces don't
suggest any specific interaction problems. It looks more like some memory management
problem/conflict.
*****Apache 1.3.12 Config (all modules DSO):*****
OPTIM="-g -ggdb3"
LDFLAGS="-lpthread"
SSL_BASE="/home/gpaul/packages/openssl-0.9.5"
RSA_BASE="/home/gpaul/packages/rsaref-2.0/local"
./configure
"--with-layout=Apache"
"--with-perl=/usr/bin/perl"
"--enable-module=rewrite"
"--enable-module=ssl"
"--enable-shared=ssl"
"--enable-shared=max"
"--enable-module=so"
"--prefix=/usr/local/apache"
"--disable-rule=SSL_COMPAT"
*****PHP 4.0.1pl2 Config:*****
./configure
--enable-xml
--enable-wddx
--with-esoob=/usr/local/easysoft/oob/client
--enable-track-vars
--enable-magic-quotes
--with-apxs=/usr/local/apache/bin/apxs
--with-config-file-path=/usr/local/apache/conf
--enable-sigchild
--with-gnu-ld
--with-oci8=/home/oracle
--enable-shared
--libexecdir=/usr/local/apache/libexec
*****GDBM Crash Trace with all modules configured as DSO:*****
(gdb) run -X -DSSL
Starting program: /usr/local/apache/bin/httpd -X -DSSL
Program received signal SIGSEGV, Segmentation fault.
0x403ceb90 in modf () from /usr/local/apache/libexec/libphp4.so
(gdb) bt
#0 0x403ceb90 in modf () from /usr/local/apache/libexec/libphp4.so
#1 0x8072977 in ap_cvt (arg=47.640187918506648, ndigits=0, decpt=0xbffff708,
sign=0xbffff77c, eflag=-1073744200, buf=0x402e19b0 "Ø£r")
at ap_snprintf.c:144
#2 0x8072c47 in ap_fcvt (arg=47.640187918506648, ndigits=0, decpt=0xbffff708,
sign=0xbffff77c, buf=0xbffff6b8 "