#12518 [Com]: ocifreestatment doesn't free the Oracle cursor and so you run out of cursors

From: Date: Tue, 20 Jul 2004 15:12:19 +0000
Subject: #12518 [Com]: ocifreestatment doesn't free the Oracle cursor and so you run out of cursors
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-63163@lists.php.net to get a copy of this message
ID: 12518 Comment by: special-advanced1424 at hotmail dot com Reported By: derek at innovyx dot com Status: Bogus Bug Type: OCI8 related Operating System: Linux PHP Version: 4.0.6 New Comment: <a href=http://advanced-averagespe.da.ru>advanced special</a> Previous Comments: ------------------------------------------------------------------------ [2001-08-06 13:24:51] sniper@php.net user error ------------------------------------------------------------------------ [2001-08-06 13:23:13] derek at innovyx dot com With the help of v$open_cursor I've tracked down the problem and it was a case of user error, my apologies for having taken up your time. ------------------------------------------------------------------------ [2001-08-06 12:59:04] derek at innovyx dot com I have a long-running PHP script that eventually comes up with: Failed execution, error: ORA-00604: error occurred at recursive SQL level 2 ORA-01000: maximum open cursors exceeded. I don't explicitly use any cursors in this script btw. In addition I found (via a web search) that someone else has been experiencing the same thing. However, in response to your request I've been trying to build a test script to leak cursors and reproduce the problem, unfortunately, thus far, even deliberately leaking cursors is not producing it. :( ------------------------------------------------------------------------ [2001-08-01 16:18:03] thies@php.net what makes you belive it doesn't work? please send me a short testcase that shows leakage of resources. ------------------------------------------------------------------------ [2001-08-01 13:20:01] derek at innovyx dot com the ocifreestatment function doesn't actually free the Oracle cursor, these are only freed when the script exits. While this isn't a problem when using PHP as a web page it is a problem if you have a command line script that has to perform thousands (or tens of thousands) of queries eventually the open_cursors limit is exceeded and all further queries fail. The same appears to be true with connections. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=12518&edit=1

« previous php.bugs (#63163) next »