ID: 37292 Comment by: sswpwp at poczta dot onet dot pl Reported By: crescentfreshpot at yahoo dot com Status: Open Bug Type: OCI8 related Operating System: WinXP PHP Version: 5.1.3 New Comment:
I have the same problem. After fix for bug #36934 PHP crashes when reading BFILES with OCI8. I receive the same backtrace as crescentfreshpot. Here is the code to reproduce the bug: $conn = oci_connect('rtg_owner', 'rtg', $tnsname); $stmt = oci_parse($conn, "SELECT BFILE FROM IMAGES WHERE IMAGE_ID = 3872"); oci_execute($stmt); $row = oci_fetch_assoc($stmt); $img = $row['BFILE']; var_dump($img); $img->read(128); // this line causes a crash echo $img->tell(); I'm using PHP 5CVS-2006-05-08(snap), Apache 2.0.55 and Oracle Instant Client 10.2.0 Previous Comments: ------------------------------------------------------------------------ [2006-05-06 22:29:43] crescentfreshpot at yahoo dot com Two side notes: 1) Seems to me that any calls to OCI-Lob::xxx() methods in user code will wipe out oci8 from turning up in the call stack window. E.g. adjusting reproduce code like: <code> oci_execute($stmt); $lob = oci_fetch_array($stmt,OCI_ASSOC); var_dump($lob['LOBDATA']->load()); </code> and no more oci8 in the call stack window 2) Related to bug #37331 ------------------------------------------------------------------------ [2006-05-06 22:25:33] crescentfreshpot at yahoo dot com > 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. ------------------------------------------------------------------------ [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() ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/37292 -- Edit this bug report at http://bugs.php.net/?id=37292&edit=1