#29013 [NEW]: Multiple logons cause handles to become invalid
| From: | cjbj at hotmail dot com | Date: | Mon, 05 Jul 2004 07:38:04 +0000 |
| Subject: | #29013 [NEW]: Multiple logons cause handles to become invalid | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-61676@lists.php.net to get a copy of this message | ||
From: cjbj at hotmail dot com
Operating system: Windows 2000
PHP version: 4.3.7
PHP Bug Type: OCI8 related
Bug description: Multiple logons cause handles to become invalid
Description:
------------
Multiple logons within the same request cause handles to become invalid
and queries to fail.
Also see:
http://forums.oracle.com/forums/thread.jsp?forum=178&thread=251141
To reproduce, restart Apache and run the following file.
The same incorrect output occurs with ocilogon() inplace of ocinlogon().
Reproduce code:
---------------
<?php
ociinternaldebug(1);
function qry(&$c, $s) {
echo "<br>===>BEGIN<br><br>";
$rSth = OCIParse($c, $s);
$rRet = OCIExecute($rSth);
echo "<br>";
while ($succ = OCIFetchInto($rSth, $row)) {
foreach ($row as $item) {
echo ($item?htmlentities($item):' ')." ";
}
echo "<br>\n";
}
echo "<br>===>CLOSE<br><br>";
ocifreestatement($rSth);
}
$statement1 = "select dname from dept";
$statement2 = "select user from dual;";
echo "<br>===>OCINLogin #1<br><br>";
$c1 = OCINlogon('scott', 'tiger', 'MYDB' );
echo "<br>===>Query first connection<br><br>";
qry($c1, $statement1);
echo "<br>===>OCINLogin #2<br><br>";
$c2 = OCINlogon('hr', 'hr', 'MYDB');
echo "<br>===>Re-query first connection<br><br>";
qry($c1, $statement1);
echo "<br>===>Re-query first connection<br><br>";
qry($c1, $statement2);
?>
Expected result:
----------------
Three queries are successfully completed.
Actual result:
--------------
===>OCINLogin #1
OCIDebug: _oci_open_server new conn=0 dname=MYDB
OCIDebug: _oci_open_session new sess=3 user=scott
OCIDebug: oci_do_connect: id=4
===>Query first connection
===>BEGIN
OCIDebug: oci_parse "select dname from dept" id=5 conn=4
ACCOUNTING
RESEARCH
SALES
OPERATIONS
===>CLOSE
OCIDebug: START _oci_stmt_list_dtor: id=5 last_query="select dname from
dept"
OCIDebug: START _oci_column_hash_dtor: DNAME
OCIDebug: END _oci_column_hash_dtor: DNAME
OCIDebug: END _oci_stmt_list_dtor: id=5
===>OCINLogin #2
OCIDebug: _oci_open_session new sess=6 user=hr
OCIDebug: oci_do_connect: id=7
===>Re-query first connection
===>BEGIN
OCIDebug: oci_parse "select dname from dept" id=8 conn=4
Warning: ociexecute(): OCIStmtExecute: ORA-00942: table or view does not
exist in c:\cj\php\cj\contest.php on line 13
Warning: ocifetchinto(): OCIFetchInto: ORA-24374: define not done before
fetch or execute and fetch in c:\cj\php\cj\contest.php on line 15
===>CLOSE
OCIDebug: START _oci_stmt_list_dtor: id=8 last_query="select dname from
dept"
OCIDebug: END _oci_stmt_list_dtor: id=8
===>Re-query first connection
===>BEGIN
OCIDebug: oci_parse "select user from dual;" id=9 conn=4
Warning: ociexecute(): OCIStmtExecute: ORA-00911: invalid character in
c:\cj\php\cj\contest.php on line 13
Warning: ocifetchinto(): OCIFetchInto: ORA-24374: define not done before
fetch or execute and fetch in c:\cj\php\cj\contest.php on line 15
===>CLOSE
OCIDebug: START _oci_stmt_list_dtor: id=9 last_query="select user from
dual;"
OCIDebug: END _oci_stmt_list_dtor: id=9
OCIDebug: START php_rshutdown_oci
OCIDebug: END php_rshutdown_oci
OCIDebug: START _oci_conn_list_dtor: id=4
OCIDebug: nothing to do..
OCIDebug: START _oci_close_session: logging-off sess=3
OCIDebug: END _oci_conn_list_dtor: id=4
OCIDebug: START _oci_conn_list_dtor: id=7
OCIDebug: nothing to do..
OCIDebug: START _oci_close_session: logging-off sess=6
OCIDebug: END _oci_conn_list_dtor: id=7
OCIDebug: START _oci_close_server: detaching conn=2 dbname=MYDB
--
Edit bug report at http://bugs.php.net/?id=29013&edit=1
--
Try a CVS snapshot (php4): http://bugs.php.net/fix.php?id=29013&r=trysnapshot4
Try a CVS snapshot (php5): http://bugs.php.net/fix.php?id=29013&r=trysnapshot5
Fixed in CVS: http://bugs.php.net/fix.php?id=29013&r=fixedcvs
Fixed in release: http://bugs.php.net/fix.php?id=29013&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=29013&r=needtrace
Need Reproduce Script: http://bugs.php.net/fix.php?id=29013&r=needscript
Try newer version: http://bugs.php.net/fix.php?id=29013&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=29013&r=support
Expected behavior: http://bugs.php.net/fix.php?id=29013&r=notwrong
Not enough info: http://bugs.php.net/fix.php?id=29013&r=notenoughinfo
Submitted twice: http://bugs.php.net/fix.php?id=29013&r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=29013&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=29013&r=php3
Daylight Savings: http://bugs.php.net/fix.php?id=29013&r=dst
IIS Stability: http://bugs.php.net/fix.php?id=29013&r=isapi
Install GNU Sed: http://bugs.php.net/fix.php?id=29013&r=gnused
Floating point limitations: http://bugs.php.net/fix.php?id=29013&r=float