php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #2537 Connect to Oracle produces SIGTRAP
Submitted: 1999-10-15 19:09 UTC Modified: 1999-10-28 10:16 UTC
From: daves at inerlog dot com Assigned:
Status: Closed Package: Oracle related
PHP Version: 4.0 Beta 2 OS: Linux RedHat 6.0
Private report: No CVE-ID: None
 [1999-10-15 19:09 UTC] daves at inerlog dot com
Linux = RedHat 6.0 + RPM updates (kernel = 2.2.5-15)
Oracle = Oracle 8i Enterprise Edition (+ patch !) for Linux - free download
Oracle version = version 8.1.5_01
Apache = 1.3.9
PHP4 = beta 2

I compiled PHP4b2 statically into Apache 1.3.9 from the tarballs.
The PHP modules (Oracle, gd...) were compiled statically into the PHP.

I am using the "free download" Oracle 8i Enterprise Edition (ver 8.1 with 8.1.5_01 patch)
I believe this version of Oracle was misidentified as Oracle 8.0 - see bug report #2536

This bug is basically the same as bug report #2527 (against PHP3), which I filed last night.
I attempted to use PHP4 to see if the bug had been resolved in this release.  It has not.

Here's the backtrace:
-----------------------
[root@cr309449-a bin]# gdb httpd
GNU gdb 4.17.0.11 with Linux support
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 "i386-redhat-linux"...
(gdb) run -X
Starting program: /www/bin/httpd -X

Program received signal SIGTRAP, Trace/breakpoint trap.
0x813e1ad in gdFontTiny ()
(gdb) bt
#0  0x813e1ad in gdFontTiny ()
#1  0x8081109 in php3_Ora_Do_Logon (ht=2, return_value=0xbffff914, 
    list=0x8151620, plist=0x815164c, this_ptr=0x0, persistent=0)
    at oracle.c:496
#2  0x8080eed in php3_ora_logon (ht=2, return_value=0xbffff914, 
    list=0x8151620, plist=0x815164c, this_ptr=0x0) at oracle.c:408
#3  0x80b5b6c in execute (op_array=0x8190a30) at zend_execute.c:1407
#4  0x80749e0 in php_execute_script (primary_file=0xbffffba4) at main.c:1138
#5  0x8074a59 in apache_php_module_main (r=0x818adac, fd=19, 
    display_source_mode=0) at main.c:1180
#6  0x8073343 in send_php ()
#7  0x8073388 in send_parsed_php ()
#8  0x80bbfd3 in ap_invoke_handler ()
#9  0x80cf2c9 in process_request_internal ()
#10 0x80cf32c in ap_process_request ()
#11 0x80c6cee in child_main ()
#12 0x80c6e7c in make_child ()
#13 0x80c6fd9 in startup_children ()
#14 0x80c7606 in standalone_main ()
#15 0x80c7d83 in main ()
#16 0x40637cb3 in __libc_start_main (main=0x80c7a4c <main>, argc=2, 
    argv=0xbffffd54, init=0x805b6bc <_init>, fini=0x810033c <_fini>, 
    rtld_fini=0x4000a350 <_dl_fini>, stack_end=0xbffffd4c)
    at ../sysdeps/generic/libc-start.c:78
(gdb) 

Here's the script which causes failure:
 --------------------------------------------
Trying to connect to Oracle<BR>
<?
 putenv("LD_LIBRARY_PATH=/home/OraHome1/lib");
 putenv("ORACLE_HOME=/home/OraHome1");
 putenv("ORACLE_SID=TS01");

 $conn = ora_logon("reader", "reader");
 if ($conn) {
   print("connected !<BR>\n");
   ora_logoff($conn);
 } else {
   print("not connected<BR>\n");
 }
?>

(Note: even the first line of text is not flushed out to the browser)

Here is the configure line I used for PHP:
-----------------------------------------------
./configure --with-apache=../apache_1.3.9 --with-gd --with-ttf --with-oci8 --with-oracle --enable-track-vars

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [1999-10-15 19:10 UTC] daves at inerlog dot com
Ahem... I mis-spelled my Email address.
The correct address is daves@interlog.com  (interlog with a 't').

 [1999-10-15 20:22 UTC] daves at inerlog dot com
OK, I found a work-around - I will use the OCI* functions instead of the ora_* functions.

But this causes me to wonder whether the ora_* functions were SUPPOSED to be my first choice...
(I became interested in PHP3 because of the "CORE PHP" book by Leon Atkinson, which contains no trace of an OCI interface).

If ora_* is not intended for recent versions of Oracle, then wouldn't it be better to document this clearly ?
Also, I believe that failure of the ora_logon() function, whether intentional or not, should produce some sort of error verbiage rather than a SIGTRAP.


 [1999-10-26 09:48 UTC] thies at cvs dot php dot net
b2 is way "old" - please try agains lastet cvs or try one of the
 daily snapshots available at http://va.php.net/~sas/


 [1999-10-28 10:16 UTC] daves at inerlog dot com
Maybe with the next 'official' release.  (This bug was also present in PHP3 - see bugid #2527.)
I only tried PHP4 to see if it corrected the PHP3 bug; I don't have enough time to try every new 'half-hourly' release.
(I probably would have fixed it myself if I had that much time).
And since my bug report appears to be alone in reporting this problem, I doubt that it was fixed.

I did find a work-around (the OCI* functions), so the priority of the bug is not so high anymore.
However there is a script in the bug report, so the support staff can run a quick test to see if it *is* fixed (far easier than I could keep up with new releases)...

 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Mar 29 07:01:28 2024 UTC