Mantis - Resin
|
|||||
Viewing Issue Advanced Details | |||||
|
|||||
ID: | Category: | Severity: | Reproducibility: | Date Submitted: | Last Update: |
3052 | minor | always | 11-07-08 06:28 | 09-03-09 21:04 | |
|
|||||
Reporter: | ferg | Platform: | |||
Assigned To: | ferg | OS: | |||
Priority: | urgent | OS Version: | |||
Status: | closed | Product Version: | 3.1.6 | ||
Product Build: | Resolution: | fixed | |||
Projection: | none | ||||
ETA: | none | Fixed in Version: | 4.0.2 | ||
|
|||||
Summary: | 0003052: database connection pooling issue | ||||
Description: |
I'm currently having a problem trying to upgrade one of our applications from resin 3.0.x to 3.1.6. while the application runs fine on 3.0.x when i try to run it on 3.1.6 the server locks up after 30-60 seconds of web requests. looking at the stack trace it appears to be some sort of deadlock in the caucho database ConnectionPool class. I've attached a stack trace of what the threads look like immediately after the server has been started and it stops accepting connections. you can see that there are 336 threads stuck in a BLOCKED state trying to create database connections while the only remaining 16 running threads are the socket acceptors. no exceptions are displayed in the logs and the code on our end does not leave any database connections unclosed so i do not believe a leak is an issue (this code runs great on 3.0.x for months at a time). Thread 23959: (state = BLOCKED) - java.lang.Object.wait(long) @bci=0 (Compiled frame; information may be imprecise) - com.caucho.jca.ConnectionPool.create(javax.resource.spi.ManagedConnectionFactory, javax.security.auth.Subject, javax.resource.spi.ConnectionRequestInfo, boolean, com.caucho.jca.UserPoolItem) @bci=94, line=913 (Compiled frame) - com.caucho.jca.ConnectionPool.allocatePool(javax.resource.spi.ManagedConnectionFactory, javax.security.auth.Subject, javax.resource.spi.ConnectionRequestInfo, com.caucho.jca.UserPoolItem) @bci=42, line=795 (Interpreted frame) - com.caucho.jca.ConnectionPool.allocate(javax.resource.spi.ManagedConnectionFactory, javax.security.auth.Subject, javax.resource.spi.ConnectionRequestInfo) @bci=49, line=756 (Interpreted frame) - com.caucho.jca.ConnectionPool.allocateConnection(javax.resource.spi.ManagedConnectionFactory, javax.resource.spi.ConnectionRequestInfo) @bci=6, line=567 (Interpreted frame) - com.caucho.sql.DataSourceImpl.getConnection() @bci=9, line=65 (Interpreted frame) - com.caucho.sql.DBPool.getConnection() @bci=4, line=701 (Interpreted frame) - org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(javax.sql.DataSource) @bci=79, line=113 (Interpreted frame) - org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy.getConnection() @bci=21, line=109 (Interpreted frame) - org.springframework.orm.ibatis.SqlMapClientTemplate.execute(org.springframework.orm.ibatis.SqlMapClientCallback) @bci=106, line=190 (Interpreted frame) - org.springframework.orm.ibatis.SqlMapClientTemplate.executeWithListResult(org.springframework.orm.ibatis.SqlMapClientCallback) @bci=2, line=249 (Interpreted frame) - org.springframework.orm.ibatis.SqlMapClientTemplate.queryForList(java.lang.String, java.lang.Object) @bci=11, line=296 (Interpreted f |
||||
Steps To Reproduce: | |||||
Additional Information: | |||||
Relationships | |||||
Attached Files: |
There are no notes attached to this issue. |