#33383 [Opn->Fbk]: PHP crashes while retrieving data from Oracle

From: Date: Fri, 09 Sep 2005 06:28:55 +0000
Subject: #33383 [Opn->Fbk]: PHP crashes while retrieving data from Oracle
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-84769@lists.php.net to get a copy of this message
ID: 33383 Updated by: derick@php.net Reported By: johnny at ouranous dot idv dot tw -Status: Open +Status: Feedback Bug Type: OCI8 related Operating System: Solaris 9 PHP Version: 5.0.4 Assigned To: tony2001 New Comment: http://www.php.net/anoncvs.php (And please leave at Feedback until you can provide more information) Previous Comments: ------------------------------------------------------------------------ [2005-09-09 05:07:50] johnny at ouranous dot idv dot tw Sorry, I'm having a business trip now, will not be able to test until October. And I have no experience of build php from CVS, where can I get information about it? ------------------------------------------------------------------------ [2005-09-08 11:51:36] tony2001@php.net Please try OCI8 v.1.1, which is available in CVS HEAD and PECL (use pear install oci8-beta to install it). ------------------------------------------------------------------------ [2005-06-20 11:39:06] johnny at ouranous dot idv dot tw http://snaps.php.net/php5-latest.tar.gz did not work, either. After some simple but stupid work by added some oci_debug in ext/oci8/oci8.c, I found the program crashed at line 2254: CALL_OCI_RETURN(connection->error, OCILobRead( connection->pServiceContext, connection->pError, mydescr->ocidescr, &readlen, /* IN/OUT bytes toread/read */ siz + 1, /* offset (starts with 1) */ (dvoid *) ((char *) buf + siz), readlen, /* size of buffer */ (dvoid *)0, (OCICallbackLobRead) 0, /* callback... */ (ub2) connection->session->charsetId, /* The character set ID of the buffer data. */ (ub1) SQLCS_IMPLICIT /* The character set form of the buffer data. */ ) ); when readlen == 1 and whenever the real data store in lob field is ' ' or not. (I was mistake in previous post, there is a ' ' in the clob field) I tried add readlen++; before buf = emalloc(readlen + 1); and it works in all my test case but I don't know if this is the correctly way to solve it. ------------------------------------------------------------------------ [2005-06-19 21:36:26] sniper@php.net Please try using this CVS snapshot: http://snaps.php.net/php5-latest.tar.gz For Windows: http://snaps.php.net/win32/php5-win32-latest.zip ------------------------------------------------------------------------ [2005-06-19 17:30:59] johnny at gorilla dot com dot tw Configuration: CFLAGS="getconf LFS_CFLAGS" ./configure --prefix=/usr/local/php5 --with-oci8=/data/oracle/OraHome1 --with-ncurses=/usr/local/lib --enable-mbstring=all --enable-debug $gdb /usr/local/php5/bin/php core GNU gdb 6.0 Copyright 2003 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 "sparc-sun-solaris2.9"... Core was generated by `/usr/local/php5/bin/php -q test.php'. Program terminated with signal 11, Segmentation fault. Reading symbols from /usr/local/lib/libpanel.so.5...done. Loaded symbols for /usr/local/lib/libpanel.so.5 Reading symbols from /usr/local/lib/libncurses.so.5...done. Loaded symbols for /usr/local/lib/libncurses.so.5 Reading symbols from /usr/lib/libresolv.so.2...done. Loaded symbols for /usr/lib/libresolv.so.2 Reading symbols from /usr/lib/libm.so.1...done. Loaded symbols for /usr/lib/libm.so.1 Reading symbols from /usr/lib/libdl.so.1...done. Loaded symbols for /usr/lib/libdl.so.1 Reading symbols from /usr/lib/libnsl.so.1...done. Loaded symbols for /usr/lib/libnsl.so.1 Reading symbols from /usr/lib/libsocket.so.1...done. Loaded symbols for /usr/lib/libsocket.so.1 Reading symbols from /usr/lib/libz.so.1...done. Loaded symbols for /usr/lib/libz.so.1 Reading symbols from /usr/lib/libgen.so.1...done. Loaded symbols for /usr/lib/libgen.so.1 Reading symbols from /usr/lib/libsched.so.1...done. Loaded symbols for /usr/lib/libsched.so.1 Reading symbols from /data/oracle/OraHome1/lib32/libclntsh.so.9.0...done. Loaded symbols for /data/oracle/OraHome1/lib32/libclntsh.so.9.0 Reading symbols from /usr/local/lib/libxml2.so.2...done. Loaded symbols for /usr/local/lib/libxml2.so.2 Reading symbols from /usr/lib/libpthread.so.1...done. Loaded symbols for /usr/lib/libpthread.so.1 Reading symbols from /usr/local/lib/libiconv.so.2...done. Loaded symbols for /usr/local/lib/libiconv.so.2 ---Type <return> to continue, or q <return> to quit--- Reading symbols from /usr/lib/libc.so.1...done. Loaded symbols for /usr/lib/libc.so.1 Reading symbols from /usr/lib/libmp.so.2...done. Loaded symbols for /usr/lib/libmp.so.2 Reading symbols from /data/oracle/OraHome1/lib32/libwtc9.so...done. Loaded symbols for /data/oracle/OraHome1/lib32/libwtc9.so Reading symbols from /usr/lib/libaio.so.1...done. Loaded symbols for /usr/lib/libaio.so.1 Reading symbols from /usr/lib/librt.so.1...done. Loaded symbols for /usr/lib/librt.so.1 Reading symbols from /usr/local/lib/libgcc_s.so.1...done. Loaded symbols for /usr/local/lib/libgcc_s.so.1 Reading symbols from /usr/lib/libmd5.so.1...done. Loaded symbols for /usr/lib/libmd5.so.1 Reading symbols from /usr/platform/SUNW,Sun-Fire-V240/lib/libc_psr.so.1...done. Loaded symbols for /usr/platform/SUNW,Sun-Fire-V240/lib/libc_psr.so.1 Reading symbols from /usr/lib/libthread.so.1...done. Loaded symbols for /usr/lib/libthread.so.1 #0 0xfe924eb4 in ttci2u () from /data/oracle/OraHome1/lib32/libclntsh.so.9.0 (gdb) bt #0 0xfe924eb4 in ttci2u () from /data/oracle/OraHome1/lib32/libclntsh.so.9.0 #1 0xfe604060 in kpulbcr () from /data/oracle/OraHome1/lib32/libclntsh.so.9.0 #2 0xfe8f0ab0 in ttcdrv () from /data/oracle/OraHome1/lib32/libclntsh.so.9.0 (gdb) And I found one thing, everytime crashed, always because there is an empty value of clob fileds. But I don't know if this is caused by OCI itself, I'll try to write a small C program to test it tomorrow morning. ------------------------------------------------------------------------ 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/33383 -- Edit this bug report at http://bugs.php.net/?id=33383&edit=1

« previous php.bugs (#84769) next »