php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #20022 OCI8 Recursive call!
Submitted: 2002-10-22 03:31 UTC Modified: 2007-07-04 11:25 UTC
Votes:10
Avg. Score:4.7 ± 0.6
Reproduced:8 of 8 (100.0%)
Same Version:5 (62.5%)
Same OS:2 (25.0%)
From: jesper at sivertsen dot org Assigned:
Status: No Feedback Package: OCI8 related
PHP Version: 4.3.0-dev OS: * (ZTS)
Private report: No CVE-ID: None
 [2002-10-22 03:31 UTC] jesper at sivertsen dot org
I have installed PHP as sapi on IIS.
I have Oracle 9.2.0.1.0 Enterprise edition.
I have removed all old PHP stuff, and reinstalled 4.2.3 from scratch.

When i try to run this script:

<?
echo "<li>Before OCILogon</li>";
$db = "ORCL";
$user = "system";
$pass = "***";
$con  = OCIPLogon("$user","$pass","$db");
echo "<li>After OCILogon</li>";
?>

I get this:

<li>Before OCILogon</li><br />
<b>Warning</b>:  OCI8 Recursive call!
 in <b>D:\Dokumenter\drift\oracle\session.php</b> on line <b>6</b><br />
PHP has encountered an Access Violation at 0165553E

Is 9i ( 9.2.0.1.0 ) supported ?


Best reagrds
Jesper


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2002-10-28 06:45 UTC] jesper at sivertsen dot org
Same problem in latest CVS:

Both 4.2.4-dev and 4.3.0-dev

Jesper
 [2002-10-28 07:47 UTC] thies@php.net
oracle9 is fully supported. 
 
does the same happen if you use php from the command line? 
 
BTW: what webserver are you using? 
 
 [2002-10-28 08:17 UTC] jesper at sivertsen dot org
Works OK from commandline !
 [2002-10-28 08:39 UTC] thies@php.net
as i don't use windows myself there's nothing i can do to 
help you. maybe try to find someone on php-db who has this 
setup working. 
 
 [2002-12-23 07:59 UTC] vivanov at tmsoft-ltd dot kiev dot ua
I have same problem with "OCI8 Recursive call".
This error happens when
PHP works as !ISAPI module! (not CGI) under IIS.

I just analyzed source and think I found where bug is.

In case of ISAPI module 
functions of this extension (and OCI8 calls) can be called _simultaneously_ (not recursive but parallel) from different threads. 
conclusion: following manner of using flag 'in_call' is erroneous:
---- ext/oci8.c -----
#define CALL_OCI(call) \
{ \
	if (OCI(in_call)) { \
		php_error(E_WARNING, "OCI8 Recursive call!\n"); \
		exit(-1); \
	} else { \
		OCI(in_call)=1; \
		call; \
		OCI(in_call)=0; \
	} \
}
#define CALL_OCI_RETURN(retcode,call) \
// ... similar code

I propose two alternatives:
1) remove away this checks
2) use some synchonization mechanizm instead

>as i don't use windows myself there's 
>nothing i can do to....
If need, I can provide help
-- 
P.S.
sorry about poor english... 
My native lang. is C/C++ ;)
 [2003-01-02 05:44 UTC] thies@php.net
OCI(in_call) is a thread-local variable. so it's only global the the current thread.


 [2004-06-18 12:28 UTC] FISHeR at smtp dot ru
PHP has encountered an Access Violation at {NUMBER}

Is 9i ( 9.2.0.1.0 ) supported ?

Windows 2000 / IIS 5.0 / isapi
 [2004-06-18 12:32 UTC] tony2001@php.net
>Is 9i ( 9.2.0.1.0 ) supported ?
yes

>PHP has encountered an Access Violation at {NUMBER}
any reproduce script ?
 [2005-09-16 01:00 UTC] php-bugs at lists dot php dot net
No feedback was provided for this bug for over a week, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
 [2007-07-04 02:29 UTC] mjsee7707 at paran dot com
SERVER = IIS + php5.0.4 + oracle9.2

*********** php source ******************************************
$con_string = "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS = (PROTOCOL= TCP)(HOST=localhost)(PORT=1521)))(CONNECT_DATA = (SERVICE_NAME=ORA9I)))"; 
$db_mw = ocilogon("test","test", $con_string); 


error ************************************

Warning : ocilogon() [function.ocilogon] : OCI8 Recursive call! 
Warning : PHP Shutdown : OCI8 Recursive call! 

Someday Suddenly appear error.
I don't know why error.
help me~~~
 [2007-07-04 11:25 UTC] tony2001@php.net
php5.0.4? Upgrade it ASAP!

 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sat Dec 21 11:01:30 2024 UTC