Mantis Bugtracker
  

Viewing Issue Advanced Details Jump to Notes ] View Simple ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0001472 [Quercus] major always 11-24-06 08:52 05-30-08 16:39
Reporter foxtango View Status public  
Assigned To ferg
Priority normal Resolution fixed Platform
Status closed   OS
Projection none   OS Version
ETA none Fixed in Version 3.2.0 Product Version 3.1.0
  Product Build
Summary 0001472: OutOfMemoryError with OCIFetchStatement
Description On using OCIFetchStatement in a php page that runs over quercus we receive an OutOfMemoryError exception: "java.lang.OutOfMemoryError: Java heap space"

We created a very simple case to reproduce this bug. See in additional info please.
Steps To Reproduce
Additional Information <?

function getConnection() {
    $db = OCILogon('user', 'pass', '//server:1521/ORCL');
    return $db;
}


$db = getConnection();

$curs = OCINewCursor($db);
$sql = OCIParse($db, 'BEGIN user.package.sp_xxxx(:return_cursor); END;');
OCIBindByName($sql, ':return_cursor', &$curs, -1, OCI_B_CURSOR);
OCIExecute($sql);
OCIExecute($curs);

$pes = array();
// !!! HERE THE PROBLEM OCCOURS !!!
OCIFetchStatement($curs, $pes);

?>
Attached Files

- Relationships

- Notes
(0002172)
nam
08-02-07 01:49

(rep by osmedd)

I developed a very short program that replicates the problem, it appears to be in the return from the oci_fetch_all() php call (it doesn't seem to get to the 'never get here' line when logging is added in). I don't see any references to the OracleModule in the stack trace, so I think I've gone about as far as I can go.

php file:
<?
$conn = oci_connect("USERID", "PASSWD", "java:com/env/jdbc/DB");
$stmt = oci_parse($conn, "select client_id, client_name from client where client_id = 'XYZZY' and client_status = 'A' order by client_name");
oci_execute($stmt);
$rows = oci_fetch_all($stmt, $oraresults);
// never get here...
if ($rows == 0) {
echo 'No results.';
}
else {
echo 'Got results!';
}
oci_free_statement($stmt);
?>

We are alive.

Stack trace:

com.caucho.quercus.QuercusModuleException: java.lang.OutOfMemoryError: Java heap space
com.caucho.quercus.QuercusModuleException.create(QuercusModuleException.java:60)
com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:109)
com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:614)
com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:487)
com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:473)
com.caucho.quercus.env.JavaInvoker.callCopy(JavaInvoker.java:482)
com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:178)
com.caucho.quercus.expr.FunctionExpr.evalCopy(FunctionExpr.java:149)
com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:77)
com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64)
com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99)
com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:239)
com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:61)
com.caucho.quercus.page.QuercusPage.executeTop(QuercusPage.java:115)
com.caucho.quercus.servlet.QuercusServletImpl.service(QuercusServletImpl.java:121)
com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:341)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
 
(0003128)
ferg
05-30-08 16:39

php/440d
 

- Issue History
Date Modified Username Field Change
11-24-06 08:52 foxtango New Issue
08-02-07 01:49 nam Note Added: 0002172
05-30-08 16:39 ferg Note Added: 0003128
05-30-08 16:39 ferg Assigned To  => ferg
05-30-08 16:39 ferg Status new => closed
05-30-08 16:39 ferg Resolution open => fixed
05-30-08 16:39 ferg Fixed in Version  => 3.2.0


Mantis 1.0.0rc3[^]
Copyright © 2000 - 2005 Mantis Group
32 total queries executed.
28 unique queries executed.
Powered by Mantis Bugtracker