ID: 20022
Comment by: mjsee7707 at paran dot com
Reported By: jesper at sivertsen dot org
Status: No Feedback
Bug Type: OCI8 related
Operating System: * (ZTS)
PHP Version: 4.3.0-dev
New Comment:
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~~~
Previous Comments:
------------------------------------------------------------------------
[2005-09-16 01:00:02] 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".
------------------------------------------------------------------------
[2004-06-18 12:32:20] [EMAIL PROTECTED]
>Is 9i ( 9.2.0.1.0 ) supported ?
yes
>PHP has encountered an Access Violation at {NUMBER}
any reproduce script ?
------------------------------------------------------------------------
[2004-06-18 12:28:32] 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
------------------------------------------------------------------------
[2003-01-02 05:44:19] [EMAIL PROTECTED]
OCI(in_call) is a thread-local variable. so it's only global the the
current thread.
------------------------------------------------------------------------
[2002-12-23 07:59:47] 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++ ;)
------------------------------------------------------------------------
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/20022
--
Edit this bug report at http://bugs.php.net/?id=20022&edit=1