[ 
https://issues.apache.org/jira/browse/POOL-230?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13462344#comment-13462344
 ] 

jerrybi commented on POOL-230:
------------------------------

I am sure everytime after I use the connection, I close it (release it to the 
pool)


the blocked threads or related Exceptions:

1.

"http-8093-96" daemon prio=10 tid=0x000000004106c800 nid=0x64f4 in 
Object.wait() [0x00007f57fc4c2000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x00000000e7389990> (a 
org.apache.commons.pool.impl.GenericObjectPool$Latch)
        at 
org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1112)
        - locked <0x00000000e7389990> (a 
org.apache.commons.pool.impl.GenericObjectPool$Latch)
        at 
org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)
        at 
org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
        at 
com.netease.backend.db.cloudadmin.sysdb.dao.impl.DBPoolDbcpImpl.getConn(DBPoolDbcpImpl.java:46)
        at 
com.netease.backend.db.cloudadmin.sysdb.dao.ConnectionManager.startTransaction(ConnectionManager.java:29)
        at 
com.netease.backend.db.cloudadmin.sysdb.dao.impl.DBAccessImpl.getProductDdbList(DBAccessImpl.java:872)
        at 
com.netease.backend.db.cloudadmin.logicaltier.handler.impl.SysStatusHandlerImpl.getProductDdbList(SysStatusHandlerImpl.java:194)
        at 
com.netease.backend.db.cloudadmin.logicaltier.handler.impl.CmdHandlerImpl.getProductDdbList(CmdHandlerImpl.java:168)
        at 
com.netease.backend.db.cloudadmin.logicaltier.handler.impl.CmdHandler.proc(CmdHandler.java:183)
        at 
com.netease.backend.db.cloudadmin.front.control.RequestAndResponseHandler.getResponseWrapper(RequestAndResponseHandler.java:99)
        at 
com.netease.backend.db.cloudadmin.front.control.RequestAndResponseHandler.handleResult(RequestAndResponseHandler.java:52)
        at 
com.netease.backend.db.cloudadmin.front.control.WebAdminController.doGet(WebAdminController.java:35)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
        at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
        at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
        at 
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Unknown Source)

2. 
"QueueCapacityLimitedThreadPool-1-thread-9" daemon prio=10 
tid=0x00000000411f7000 nid=0x6086 waiting on condition [0x00007f580ca79000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x00000000e63391e8> (a 
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(Unknown Source)
        at 
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown
 Source)
        at java.util.concurrent.ArrayBlockingQueue.take(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

3. 
"CachedDaemonThreadPool-1-thread-18" daemon prio=10 tid=0x0000000041097000 
nid=0x6052 waiting on condition [0x00007f580cb7a000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x00000000e63064b8> (a 
java.util.concurrent.SynchronousQueue$TransferStack)
        at java.util.concurrent.locks.LockSupport.park(Unknown Source)
        at 
java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(Unknown Source)
        at java.util.concurrent.SynchronousQueue$TransferStack.transfer(Unknown 
Source)
        at java.util.concurrent.SynchronousQueue.take(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)


4. 
org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool error 
Timeout waiting for idle object
        at 
org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:114)
        at 
org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
        at 
com.netease.backend.db.cloudadmin.sysdb.dao.impl.DBPoolDbcpImpl.getConn(DBPoolDbcpImpl.java:46)
        at 
com.netease.backend.db.cloudadmin.sysdb.dao.ConnectionManager.getConnection(ConnectionManager.java:90)
        at 
com.netease.backend.db.cloudadmin.sysdb.dao.impl.DBAccessImpl.getBackupCount(DBAccessImpl.java:1975)
        at 
com.netease.backend.db.cloudadmin.logicaltier.handler.impl.ResultCountHandlerImpl.getProductBackupCount(ResultCountHandlerImpl.java:103)
        at 
com.netease.backend.db.cloudadmin.logicaltier.handler.impl.CmdHandlerImpl.getProductBackupCount(CmdHandlerImpl.java:296)
        at 
com.netease.backend.db.cloudadmin.logicaltier.handler.impl.CmdHandler.proc(CmdHandler.java:241)
        at 
com.netease.backend.db.cloudadmin.front.control.RequestAndResponseHandler.getResponseWrapper(RequestAndResponseHandler.java:99)
        at 
com.netease.backend.db.cloudadmin.front.control.RequestAndResponseHandler.handleResult(RequestAndResponseHandler.java:52)
        at 
com.netease.backend.db.cloudadmin.front.control.WebAdminController.doGet(WebAdminController.java:35)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
        at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
        at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
        at 
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.util.NoSuchElementException: Timeout waiting for idle object
        at 
org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1134)
        at 
org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)
        ... 24 more



QueueCapacityLimitedThreadPool-1-thread-9, CachedDaemonThreadPool-1-thread-18  
wait on Database Operation
when Database Operation returns (either success or exception ) they will be 
notified.

getConnection() blocks so the threads wait forever

after getConnection() timesout, throws Exception 4 

                
> waiting on <0x00000000e7440168> (a 
> org.apache.commons.pool.impl.GenericObjectPool$Latch)
> ----------------------------------------------------------------------------------------
>
>                 Key: POOL-230
>                 URL: https://issues.apache.org/jira/browse/POOL-230
>             Project: Commons Pool
>          Issue Type: Bug
>    Affects Versions: 1.5.4
>         Environment: tomcat using dbcp
>            Reporter: jerrybi
>
> "Thread-20" daemon prio=10 tid=0x00007f5810214000 nid=0x5f7b in Object.wait() 
> [0x00007f581527c000]
>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
>       at java.lang.Object.wait(Native Method)
>       - waiting on <0x00000000e7440168> (a 
> org.apache.commons.pool.impl.GenericObjectPool$Latch)
>       at 
> org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1112)
>       - locked <0x00000000e7440168> (a 
> org.apache.commons.pool.impl.GenericObjectPool$Latch)
>       at 
> org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)
>       at 
> org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
> it seems that the problem bellow still exits. 
> https://issues.apache.org/jira/browse/POOL-149
> I am using commons-dbcp-1.3 and commons-pool-1.5.4

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to