From: michael dot virnstein at brodos dot de Operating system: Linux PHP version: 5.2.5 PHP Bug Type: OCI8 related Bug description: Segmentation Fault when calling PL/SQL-function wich returns ref cursor
Description: ------------ PHP: since 5.2.4 Apache: 2.2.6 Oracle DB: 10.2.0.3.0 Oracle-Client: 10.2.0.3 OS: Linux When i'm calling a PL/SQL-function, which returns a ref cursor, more than once, php segfaults. When i call the PL/SQL-function only once, everything works. The bug is present since PHP 5.2.4, which introduced OCI 1.2.4 Create the following Oracle-package: create or replace package testpackage is type cursortype is ref Cursor; function testcursor return cursortype; end testpackage; / create or replace package body testpackage is function testcursor return cursortype is retCursor cursorType; begin Open retCursor For 'select * from dual'; return retCursor; end; end testpackage; / Reproduce code: --------------- <?php $conn = ocilogon('user', 'pass', 'db'); for ($i = 0; $i < 2; $i++) { var_dump(getCur($conn)); } function getCur($conn) { $cur = OCINewCursor($conn); $stmt = ociparse($conn, 'begin :cur := testpackage.testcursor; end;'); ocibindbyname($stmt, ':cur', $cur, -1, OCI_B_CURSOR); ociexecute($stmt, OCI_DEFAULT); // <-- segfault ociexecute($cur, OCI_DEFAULT); $ret = array(); while (ocifetchinto($cur, $row, OCI_ASSOC)) $ret[] = $row; ocifreestatement($cur); ocifreestatement($stmt); return $ret; } ?> Expected result: ---------------- display var_dump result Actual result: -------------- apache segmentation fault -- Edit bug report at http://bugs.php.net/?id=43449&edit=1 -- Try a CVS snapshot (PHP 4.4): http://bugs.php.net/fix.php?id=43449&r=trysnapshot44 Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=43449&r=trysnapshot52 Try a CVS snapshot (PHP 5.3): http://bugs.php.net/fix.php?id=43449&r=trysnapshot53 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=43449&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=43449&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=43449&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=43449&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=43449&r=needscript Try newer version: http://bugs.php.net/fix.php?id=43449&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=43449&r=support Expected behavior: http://bugs.php.net/fix.php?id=43449&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=43449&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=43449&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=43449&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=43449&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=43449&r=dst IIS Stability: http://bugs.php.net/fix.php?id=43449&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=43449&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=43449&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=43449&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=43449&r=mysqlcfg