ID:               37292
 User updated by:  crescentfreshpot at yahoo dot com
 Reported By:      crescentfreshpot at yahoo dot com
-Status:           Feedback
+Status:           Open
 Bug Type:         OCI8 related
 Operating System: WinXP
 PHP Version:      5.1.3
 New Comment:

> Sorry, I don't see a word about OCI8 in these backtraces.

That's all that's there.

However, I've adjusted the reproduce code slightly and oci8 does turn
up in the backtrace now:

Reproduce Code
--------------
<?php
$conn = oci_connect('scott', 'tiger', 'xxx') 
            or die('Cannot connect');
$stmt = oci_parse($conn, "select lobdata from lobtest");
oci_execute($stmt);
$lob = oci_fetch_array($stmt,OCI_ASSOC+OCI_RETURN_LOBS); // crash
var_dump($lob);



Backtrace:
php_oci8.dll!php_oci_fetch_row(int ht=2, _zval_struct *
return_value=0x009bec98, _zval_struct * * return_value_ptr=0x00000000,
_zval_struct * this_ptr=0x00000000, int return_value_used=1, void * * *
tsrm_ls=0x00322bd0, int mode=10217840, int expected_args=2)  Line
1678    C
php_oci8.dll!zif_oci_fetch_array(int ht=2, _zval_struct *
return_value=0x009bec98, _zval_struct * * return_value_ptr=0x00000000,
_zval_struct * this_ptr=0x00000000, int return_value_used=1, void * * *
tsrm_ls=0x00322bd0)  Line 1469 + 0x27   C
php5ts.dll!zend_do_fcall_common_helper_SPEC(_zend_execute_data *
execute_data=0x0012fb88, void * * * tsrm_ls=0x00322bd0)  Line 200 +
0x35    C
php5ts.dll!ZEND_DO_FCALL_SPEC_CONST_HANDLER(_zend_execute_data *
execute_data=0x00000000, void * * * tsrm_ls=0x00322bd0)  Line 1640 +
0xe     C
php5ts.dll!execute(_zend_op_array * op_array=0x10008ffd, void * * *
tsrm_ls=0x009b0000)  Line 92 + 0xc      C
ntdll.dll!77f58a3a()    
php5ts.dll!php_execute_script(_zend_file_handle *
primary_file=0x00000008, void * * * tsrm_ls=0x00322bd0)  Line 1703 +
0xd     C
php5ts.dll!php_execute_script(_zend_file_handle *
primary_file=0x65736265, void * * * tsrm_ls=0x72657672)  Line 1732 +
0x12    C
775c7665()      
ntdll.dll!77f58a3a()    
msvcrt.dll!77c2ac14()   
msvcrt.dll!77c2ac19()   
msvcrt.dll!77c2ac19()   
msvcrt.dll!77c2ac2a()   
msvcrt.dll!77c2ac55()   
php5ts.dll!_zend_hash_add_or_update(_hashtable * ht=0x100db525, char *
arKey=0x0000000b, unsigned int nKeyLength=10208336, void *
pData=0x100091e2, unsigned int nDataSize=0, void * * pDest=0x00322bd0,
int flag=10208312)  Line 248 + 0x2e     C
php5ts.dll!zend_register_constant(_zend_constant * c=0x0012ffb0, void *
* * tsrm_ls=0x00000000)  Line 322 + 0x27        C
php.exe!main(int argc=1244888, char * * argv=0x00322bd0)  Line 692 +
0x63    C
php.exe!main(int argc=2, char * * argv=0x00322bb0)  Line 1093   C
php.exe!_mainCRTStartup()  + 0xe3       
kernel32.dll!77e8141a()         
ntdll.dll!77f944a8()    

And now the kicker: changing OCI_ASSOC to OCI_NUM works fine.


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

[2006-05-05 08:02:18] [EMAIL PROTECTED]

Sorry, I don't see a word about OCI8 in these backtraces.

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

[2006-05-05 06:15:12] crescentfreshpot at yahoo dot com

Sorry here is a more complete backtrace (had a couple lines commented
out when running it previously):

php5ts.dll!zend_do_fcall_common_helper_SPEC(_zend_execute_data *
execute_data=0x0012fb88, void * * * tsrm_ls=0x00322bd0)  Line 215 +
0x3
php5ts.dll!ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER(_zend_execute_data *
execute_data=0x0012fb88, void * * * tsrm_ls=0x00322bd0)  Line 322 +
0x11
php5ts.dll!execute(_zend_op_array * op_array=0x10008ffd, void * * *
tsrm_ls=0x009b0000)  Line 92 + 0xc
ntdll.dll!77f58a3a()
php5ts.dll!php_execute_script(_zend_file_handle *
primary_file=0x00000008, void * * * tsrm_ls=0x00322bd0)  Line 1703 +
0xd
php5ts.dll!php_execute_script(_zend_file_handle *
primary_file=0x65736265, void * * * tsrm_ls=0x72657672)  Line 1732 +
0x12
775c7665()
ntdll.dll!77f58a3a()
msvcrt.dll!77c2ac14()
msvcrt.dll!77c2ac19()
msvcrt.dll!77c2ac19()
msvcrt.dll!77c2ac2a()
msvcrt.dll!77c2ac55()
php5ts.dll!_zend_hash_add_or_update(_hashtable * ht=0x100db525, char *
arKey=0x0000000b, unsigned int nKeyLength=10208336, void *
pData=0x100091e2, unsigned int nDataSize=0, void * * pDest=0x00322bd0,
int flag=10208312)  Line 248 + 0x2e
php5ts.dll!zend_register_constant(_zend_constant * c=0x0012ffb0, void *
* * tsrm_ls=0x00000000)  Line 322 + 0x27
php.exe!main(int argc=1244888, char * * argv=0x00322bd0)  Line 692 +
0x63
php.exe!main(int argc=2, char * * argv=0x00322bb0)  Line 1093
php.exe!_mainCRTStartup()  + 0xe3
kernel32.dll!77e8141a()
ntdll.dll!77f944a8()

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

[2006-05-05 04:42:26] crescentfreshpot at yahoo dot com

With latest snaps win32 debug pack and 5.1.5-dev this is everything in
the Visual Studio .NET 2003 call stack window when the crash happens.
This is running the reproduce script from the command line. Hope this
helps:

php5ts.dll!zend_do_fcall_common_helper_SPEC(_zend_execute_data *
execute_data=0x0012fb88, void * * * tsrm_ls=0x00323ad8)  Line 215 +
0x3
php5ts.dll!ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER(_zend_execute_data *
execute_data=0x0012fb88, void * * * tsrm_ls=0x00323ad8)  Line 322 +
0x11
php5ts.dll!execute(_zend_op_array * op_array=0x10008ffd, void * * *
tsrm_ls=0x009b0000)  Line 92 + 0xc
ntdll.dll!RtlAllocateHeap()  + 0xe8c    
php5ts.dll!php_execute_script(_zend_file_handle *
primary_file=0x009bd268, void * * * tsrm_ls=0x77c5ace0)  Line 1703 +
0xd
00323ac8()      
php.exe!_mainCRTStartup()  + 0xe3       
ntdll.dll!RtlRemoteCall()  + 0x1be      
00000002()

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

[2006-05-03 14:00:57] [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.

Works perfectly fine on Linux.

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

[2006-05-03 13:46:07] crescentfreshpot at yahoo dot com

Description:
------------
OCI-Lob->read()/load() crashes php when reading clobs.

using 10g instant client, oracle v10.1.0.2.0.

Works in 5.1.3RC2 and prior (prior to fix for bug #36934 ).

Reproduce code:
---------------
sql:

alter session set current_schema = scott;
create table lobtest (lobdata clob);
insert into lobtest (lobdata) values('data data data data data data
data data');
commit;

php:
error_reporting(E_ALL);
//oci_internal_debug(1);
// uncommenting above shows the script crashes at 
// OCILobRead2 at (ext\oci8\oci8_lob.c:242) 
// introduced in the fix for bug #36934

$conn = oci_connect('scott', 'tiger', 'xxx') 
            or die('Cannot connect');
$stmt = oci_parse($conn, "select lobdata from lobtest");
oci_execute($stmt);
list($lob) = oci_fetch_row($stmt);
oci_free_statement($stmt); // 5.1.2 crashes without this
if($lob) {
    $data = $lob->read(256);
    //$data = $lob->load(); // this fails too
    var_dump($data);
    $lob->free(); // 5.1.2 crashes without this
}

Expected result:
----------------
string(39) "data data data data data data data data"

Actual result:
--------------
php crash


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


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

Reply via email to