Mantis Bugtracker
  

Viewing Issue Advanced Details Jump to Notes ] View Simple ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0002337 [Resin] minor always 01-16-08 08:22 02-07-08 12:44
Reporter ferg View Status public  
Assigned To ferg
Priority normal Resolution fixed Platform
Status closed   OS
Projection none   OS Version
ETA none Fixed in Version 3.1.5 Product Version 3.1.4
  Product Build
Summary 0002337: jms/db ArrayIndexException
Description (rep by Erlende Akre)

 I am trying out Resin and the JMS part.
I've successfully set up a queue that uses the default disk database.
 
I'm doing the sending and receiving from php using the very simple examples:
 
$queue = new JMSQueue("jms/myqueue");
 
$queue->send(...)
and
$queue->receive();
 
Everything works fine. But when doing some stress testing I start running into problems.
 
Using send() in a for loop works fine with 500,800,1000,2000 repetitions..
If I set this higher (5000 repetitions) the page is never returned (which means the loops stops executing?)
 
I removed the database and started off clean.. I slowly added 500 messages each time with around 30 sec apart.
There where no problems with sending, and the filesize of the database increased every time.
 
When I run the .php file with the receive() in it, I get an ArrayIndexOutOfBoundsException. This is not fixed by stopping and starting server, I actually have to delete the database on disk to get it to work again.
 
Anyone else had this kind of problem, that heavy use corrupts the database?
 
Error message from receive():
500 Servlet Exception

java.lang.ArrayIndexOutOfBoundsException: 128
        at com.caucho.db.sql.SelectResult.write(SelectResult.java:1013)
        at com.caucho.db.sql.SelectResult.writeBlob(SelectResult.java:919)
        at com.caucho.db.table.BlobColumn.evalToResult(BlobColumn.java:351)
        at com.caucho.db.table.TableIterator.evalToResult(TableIterator.java:424)
        at com.caucho.db.sql.IdExpr.evalToResult(IdExpr.java:226)
        at com.caucho.db.sql.SelectQuery.execute(SelectQuery.java:194)
        at com.caucho.db.sql.SelectQuery.execute(SelectQuery.java:161)
        at com.caucho.db.jdbc.PreparedStatementImpl.execute(PreparedStatementImpl.java:335)
        at com.caucho.db.jdbc.PreparedStatementImpl.executeQuery(PreparedStatementImpl.java:302)
        at com.caucho.sql.UserPreparedStatement.executeQuery(UserPreparedStatement.java:89)
        at com.caucho.jms.jdbc.JdbcQueueConsumer.receiveImpl(JdbcQueueConsumer.java:266)
        at com.caucho.jms.session.MessageConsumerImpl.receiveNoWait(MessageConsumerImpl.java:254)
        at com.caucho.jms.session.MessageConsumerImpl.receive(MessageConsumerImpl.java:222)
        at com.caucho.quercus.lib.jms.JMSQueue.receive(JMSQueue.java:154)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.caucho.quercus.env.JavaMethod.invoke(JavaMethod.java:97)
        at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:615)
        at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:622)
        at com.caucho.quercus.program.JavaClassDef.callMethod(JavaClassDef.java:542)
        at com.caucho.quercus.env.JavaValue.callMethod(JavaValue.java:294)
        at com.caucho.quercus.env.Var.callMethod(Var.java:1166)
        at _quercus._get__php.execute(usr/local/resin-pro-3.1.3/webapps/ROOT/get.php:10)
        at com.caucho.quercus.page.QuercusPage.executeTop(QuercusPage.java:119)
        at com.caucho.quercus.servlet.ResinQuercusServlet.service(ResinQuercusServlet.java:146)
        at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:353)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:91)
        at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103)
        at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:178)
        at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:241)
        at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:268)
        at com.caucho.server.port.TcpConnection.run(TcpConnection.java:586)
        at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:690)
        at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:612)
        at java.lang.Thread.run(Thread.java:619)
 
Steps To Reproduce
Additional Information
Attached Files

- Relationships

- Notes
(0002732)
ferg
02-07-08 12:44

db/01ka
 

- Issue History
Date Modified Username Field Change
01-16-08 08:22 ferg New Issue
02-07-08 12:44 ferg Note Added: 0002732
02-07-08 12:44 ferg Assigned To  => ferg
02-07-08 12:44 ferg Status new => closed
02-07-08 12:44 ferg Resolution open => fixed
02-07-08 12:44 ferg Fixed in Version  => 3.1.5
02-07-08 12:44 ferg Description Updated


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