ID:               29864
 Updated by:       [EMAIL PROTECTED]
 Reported By:      Volker dot Weinberger at pharma dot novartis dot com
-Status:           Open
+Status:           Feedback
 Bug Type:         OCI8 related
 Operating System: Solaris 5.8
 PHP Version:      5.0.1
 New Comment:

Please, see bug #31533 and try the patch supplied there.
Seems that werdie Solarises are broken (or Oracle for Solaris is).
Also I should note that your last bt is very odd. 
I've never seen such senseless backtraces before =)


Previous Comments:
------------------------------------------------------------------------

[2005-01-18 14:05:03] Volker dot Weinberger at pharma dot novartis dot
com

I've managed to get --enable-debug compiled in with a recent CVS
version of PHP: php5-200501180930 .  The same error still occurs.

Following instructions for a gdb backtrace I get:

 gdb ./php ./core
GNU gdb 5.0
...
(gdb) bt
#0  0x34e204 in ZEND_RETURN_SPEC_CV_HANDLER ()
#1  0x31946c in execute ()
#2  0x319948 in zend_do_fcall_common_helper_SPEC ()
#3  0x319d84 in ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER ()
#4  0x31946c in execute ()
#5  0x319948 in zend_do_fcall_common_helper_SPEC ()
#6  0x319d84 in ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER ()
#7  0x31946c in execute ()
#8  0x319948 in zend_do_fcall_common_helper_SPEC ()
#9  0x319d84 in ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER ()
#10 0x31946c in execute ()
#11 0x2db78c in zend_execute_scripts ()
#12 0x265050 in php_execute_script ()
#13 0x370018 in main ()
(gdb) frame 1
#1  0x31946c in execute ()
(gdb) print (char
*)(executor_globals.function_state_ptr->function)->common.function_name
Attempt to extract a component of a value that is not a structure.
(gdb) 

Since PHP wasn't compiled with GCC, but with Solaris CC, using GDB
might not give the expected result.

Using SUN dbx instead:
dbx ./php ./cor
...
detected a multithreaded program
[EMAIL PROTECTED] ([EMAIL PROTECTED]) terminated by signal BUS (invalid address 
alignment)
Current function is ZEND_RETURN_SPEC_CV_HANDLER (optimized)
17699                                   || (opline->extended_value ==
ZEND_RETURNS_FUNCTION &&
!EX_T(opline->op1.u.var).var.fcall_returned_reference)) {

(/opt/SUNWspro/bin/../WS6U2/bin/sparcv9/dbx) where
current thread: [EMAIL PROTECTED]
=>[1] ZEND_RETURN_SPEC_CV_HANDLER(execute_data = ???) (optimized), at
0x34e204 (line ~17699) in "zend_vm_execute.h"
  [2] execute(op_array = ???) (optimized), at 0x319464 (line ~78) in
"zend_vm_execute.h"
  [3] zend_do_fcall_common_helper_SPEC(execute_data = ???) (optimized),
at 0x319940 (line ~204) in "zend_vm_execute.h"
  [4] ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER(execute_data = ???)
(optimized), at 0x319d7c (line ~288) in "zend_vm_execute.h"
  [5] execute(op_array = ???) (optimized), at 0x319464 (line ~78) in
"zend_vm_execute.h"
  [6] zend_do_fcall_common_helper_SPEC(execute_data = ???) (optimized),
at 0x319940 (line ~204) in "zend_vm_execute.h"
  [7] ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER(execute_data = ???)
(optimized), at 0x319d7c (line ~288) in "zend_vm_execute.h"
  [8] execute(op_array = ???) (optimized), at 0x319464 (line ~78) in
"zend_vm_execute.h"
  [9] zend_do_fcall_common_helper_SPEC(execute_data = ???) (optimized),
at 0x319940 (line ~204) in "zend_vm_execute.h"
  [10] ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER(execute_data = ???)
(optimized), at 0x319d7c (line ~288) in "zend_vm_execute.h"
  [11] execute(op_array = ???) (optimized), at 0x319464 (line ~78) in
"zend_vm_execute.h"
  [12] zend_execute_scripts(type = ???, retval = ???, file_count = ???,
...) (optimized), at 0x2db784 (line ~1058) in "zend.c"
  [13] php_execute_script(primary_file = ???) (optimized), at 0x265048
(line ~1636) in "main.c"
  [14] main(argc = ???, argv = ???) (optimized), at 0x370010 (line
~944) in "php_cli.c"

>frame 2
Current function is execute (optimized)
   78                   if (EX(opline)->handler(&execute_data
TSRMLS_CC) > 0) {

(char *)
executor_globals.function_state_ptr->function->common.function_name =
0xac55c0 "raiseError"

------------------------------------------------------------------------

[2004-08-27 15:47:28] Volker dot Weinberger at pharma dot novartis dot
com

Backtrace attempt:

unfortunately I'm not able to compile with --enable-debug (filed as a
separate bug report).

Backtrace info without --enable-debug:

(gdb) bt
#0  0x7edbe1ac in kpughndl0 ()from
/u01/home/oracle/product/9.2.0/lib32/libclntsh.so.9.0
#1  0xbcd5c in _oci_close_session ()
#2  0x2597ec in list_entry_destructor ()
#3  0x256fc4 in zend_hash_del_key_or_index ()
#4  0x259480 in _zend_list_delete ()
#5  0xb8ea0 in _oci_conn_list_dtor ()
#6  0x2597ec in list_entry_destructor ()
#7  0x2572a4 in zend_hash_apply_deleter ()
#8  0x25746c in zend_hash_graceful_reverse_destroy ()
#9  0x23d1cc in shutdown_executor ()
#10 0x24ec38 in zend_deactivate ()
#11 0x1eda8c in php_request_shutdown ()
#12 0x28a984 in main ()


(gdb) frame 2
#2  0x2597ec in list_entry_destructor ()
<tor_globals.function_state_ptr->function)->common.function_name       
     
Attempt to extract a component of a value that is not a structure.

(gdb) frame 1
#1  0xbcd5c in _oci_close_session ()
<function_state_ptr->function)->common.function_name
Attempt to extract a component of a value that is not a structure.
<tor_globals.function_state_ptr->function)->common.function_name

------------------------------------------------------------------------

[2004-08-27 13:17:14] [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

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.

------------------------------------------------------------------------

[2004-08-27 12:40:03] Volker dot Weinberger at pharma dot novartis dot
com

Description:
------------
PHP CLI script consistently crashes with 5.0.1 *after* successful
completion, i.e. the script executes successfully right to the end
("just before the end" line is printed in sample script below). Then,
after a short delay, a bus error is produced (core dump).

The same scripts (as well as the original script, sample script is
shortened) work fine with CLI PHP 4.3.6 .

The issue is tracked down to the d.seq field in the Oracle query, which
is a CLOB 4000 field. The script does not crash when this field is
omitted from the query.

PEAR DB is used for Oracle connection. PEAR DB version: 
//
// $Id: DB.php,v 1.59 2004/07/08 21:15:11 danielc Exp $
//


Reproduce code:
---------------
#!.../php501
<?php
require_once('DB.php');

$dbh = DB::connect("oci8://...");
if (!$dbh) {
        die("ERROR:Cannot connect to BCH1!");
}

$sql =  " SELECT d.seq " .
        " FROM sqbox.seqmandata d WHERE d.nvs_id = 'NVS00002050'" ;

$sth=$dbh->query($sql);
if(DB::isError($sth)){
   die ($sth->getMessage());
}

print "just before the end\n";
?>

Expected result:
----------------
No core dump.

Actual result:
--------------
Script produces full correct results, but core dumps right at the end.


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=29864&edit=1

Reply via email to