ID: 41889 Updated by: [EMAIL PROTECTED] Reported By: roman dot vanicek at gmail dot com -Status: Open +Status: Feedback Bug Type: Reproducible crash Operating System: Ubuntu Linux 6.06 PHP Version: 5.2.3 New Comment:
This looks like a symbol clash between OpenSSL and Oracle Client. Try updating Oracle Client and searching their bug database. Previous Comments: ------------------------------------------------------------------------ [2007-07-03 15:54:02] roman dot vanicek at gmail dot com Yes, these extensions are built together with the main PHP engine. I am using libssl.so.0.9.8 that comes with Ubuntu 6.06. I think that Oracle (instant-client) is not linked to openssl (at least not dynamically). For details see below. Anyhow, with CLI the sames script works without problems (both oci modules loaded). ldd /root/libphp5.so linux-gate.so.1 => (0xffffe000) libcrypt.so.1 => /lib/tls/i686/cmov/libcrypt.so.1 (0xb7aa2000) librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb7a9a000) libfbclient.so.2 => /root/build/bin/firebird/lib/libfbclient.so.2 (0xb7a09000) libssl.so.0.9.8 => /usr/lib/i686/cmov/libssl.so.0.9.8 (0xb79cb000) libcrypto.so.0.9.8 => /usr/lib/i686/cmov/libcrypto.so.0.9.8 (0xb789c000) libresolv.so.2 => /lib/tls/i686/cmov/libresolv.so.2 (0xb7889000) libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7867000) libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7864000) libnsl.so.1 => /lib/tls/i686/cmov/libnsl.so.1 (0xb784f000) libz.so.1 => /usr/lib/libz.so.1 (0xb783a000) libiodbc.so.2 => /usr/lib/libiodbc.so.2 (0xb77f7000) libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb76e8000) libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb75b9000) libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb75a7000) /lib/ld-linux.so.2 (0x80000000) libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0xb74ec000) libncurses.so.5 => /lib/libncurses.so.5 (0xb74ab000) libiodbcinst.so.2 => /usr/lib/libiodbcinst.so.2 (0xb7499000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb748f000) ldd oci8.so linux-gate.so.1 => (0xffffe000) libclntsh.so.10.1 => /usr/local/lib/oracli/libclntsh.so.10.1 (0xb7189000) libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7054000) libnnz10.so => /usr/local/lib/oracli/libnnz10.so (0xb6e50000) libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb6e4c000) libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb6e2a000) libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb6e18000) libnsl.so.1 => /lib/tls/i686/cmov/libnsl.so.1 (0xb6e03000) /lib/ld-linux.so.2 (0x80000000) ldd pdo_oci.so linux-gate.so.1 => (0xffffe000) libclntsh.so.10.1 => /usr/local/lib/oracli/libclntsh.so.10.1 (0xb7194000) libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb705f000) libnnz10.so => /usr/local/lib/oracli/libnnz10.so (0xb6e5b000) libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb6e57000) libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb6e35000) libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb6e23000) libnsl.so.1 => /lib/tls/i686/cmov/libnsl.so.1 (0xb6e0e000) /lib/ld-linux.so.2 (0x80000000) ------------------------------------------------------------------------ [2007-07-03 15:42:30] [EMAIL PROTECTED] Are each and every one of those extensions linked with same SSL libraries? And none of them is linked with static ssl libs? ------------------------------------------------------------------------ [2007-07-03 15:38:16] roman dot vanicek at gmail dot com I have more details and the strack-trace (below). The problem appears only if there are both oci8.so and pdo_oci.so loaded as dynamic modules. If there is none of them loaded or just one of them present, it works ok. When there are both of them, it segfaults. The static linking i have not tried. The stack trace (--disable-debug). #3 0xb7f4eb30 in _dl_rtld_di_serinfo () from /lib/ld-linux.so.2 #4 0xb65c2115 in __do_global_dtors_aux () from /usr/local/lib/oracli/libclntsh.so.10.1 #5 0xb71120be in _fini () from /usr/local/lib/oracli/libclntsh.so.10.1 #6 0xb7f4f8f4 in _dl_rtld_di_serinfo () from /lib/ld-linux.so.2 #7 0xb7cd75d7 in exit () from /lib/tls/i686/cmov/libc.so.6 #8 0x0805dd58 in ap_start_restart () #9 0x0805f070 in ap_update_child_status () #10 0x08060e0f in main () (gdb) The stack trace (--enable-debug). Program received signal SIGSEGV, Segmentation fault. [Switching to Thread -1211394368 (LWP 13339)] 0xb7f593d3 in _dl_rtld_di_serinfo () from /lib/ld-linux.so.2 (gdb) bt #0 0xb7f593d3 in _dl_rtld_di_serinfo () from /lib/ld-linux.so.2 #1 0xb7f597c9 in _dl_rtld_di_serinfo () from /lib/ld-linux.so.2 #2 0xb7f5cbf6 in _dl_rtld_di_serinfo () from /lib/ld-linux.so.2 #3 0xb7f5cb30 in _dl_rtld_di_serinfo () from /lib/ld-linux.so.2 #4 0xb6303055 in A_X931RandomContextDestroy () from /usr/local/lib/oracli/libnnz10.so #5 0xb7c1f7d6 in ssl3_get_key_exchange () from /usr/lib/i686/cmov/libssl.so.0.9.8 #6 0xb7c22207 in ssl3_connect () from /usr/lib/i686/cmov/libssl.so.0.9.8 #7 0xb7c345f4 in SSL_connect () from /usr/lib/i686/cmov/libssl.so.0.9.8 #8 0xb7c287ce in ssl23_connect () from /usr/lib/i686/cmov/libssl.so.0.9.8 #9 0xb7c345f4 in SSL_connect () from /usr/lib/i686/cmov/libssl.so.0.9.8 #10 0xb19a782e in php_openssl_enable_crypto (stream=0x8115de4, sslsock=0x8115d80, cparam=0xbfe5fd30) at /root/build/php/php-5.2.3/ext/openssl/xp_ssl.c:418 #11 0xb19a72a5 in php_openssl_sockop_set_option (stream=0x8115de4, option=8, value=0, ptrparam=0xbfe5fd30) at /root/build/php/php-5.2.3/ext/openssl/xp_ssl.c:666 #12 0xb1c13631 in _php_stream_set_option (stream=0x8115de4, option=8, value=0, ptrparam=0xbfe5fd30) at /root/build/php/php-5.2.3/main/streams/streams.c:1133 #13 0xb1c2132e in php_stream_xport_crypto_enable (stream=0x8115de4, activate=1) at /root/build/php/php-5.2.3/main/streams/transports.c:371 ---Type <return> to continue, or q <return> to quit--- ------------------------------------------------------------------------ [2007-07-03 14:56:30] [EMAIL PROTECTED] Thank you for this bug report. To properly diagnose the problem, we need a backtrace to see what is happening behind the scenes. To find out how to generate a backtrace, please read http://bugs.php.net/bugs-generating-backtrace.php for *NIX and http://bugs.php.net/bugs-generating-backtrace-win32.php for Win32 Once you have generated a backtrace, please submit it to this bug report and change the status back to "Open". Thank you for helping us make PHP better. ------------------------------------------------------------------------ [2007-07-03 14:21:59] roman dot vanicek at gmail dot com Description: ------------ I have a PHP compiled with OpenSSL support. Calling function file_get_contents with an URL should give me a string but it crashes instead (segmentation fault). If my PHP runs as CLI or Apache2 module, it works fine. If my PHP runs as Apache1.3 module, it segfaults. With HTTP url, it works. With HTTPS url it works for some sites and crashes for others. With PHP version 5.2.0, everything works fine under the same circumstances (Apache1.3 module, HTTPS, same sites). Reproduce code: --------------- <?php $s = file_get_contents( "https://www.mikropost.cz/index.php" ); var_dump($s); ?> Expected result: ---------------- The contents of the web-page. Actual result: -------------- Nothing - Apache process ends with segmentation fault. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=41889&edit=1