Quantcast
Channel: SmartClient Forums
Viewing all articles
Browse latest Browse all 4756

Deadlock: DataSource DataSourceManager DynamicDataSource

$
0
0
We're experiencing an intermittent deadlock between DataSource, DataSourceManager related to DynamicDataSource and would appreciate any insight. Thanks!

Problem: Deadlock between DataSource, DataSourceManager related to DynamicDataSource
Result: Application hangs once all request threads are consumed/blocked.
Version: SmartClient Version: v9.1p_2014-10-03/PowerEdition Deployment (built 2014-10-03)
jstack: (below)

Found one Java-level deadlock:
=============================
"http-8081-181":
waiting to lock monitor 0x00007f18401a5908 (object 0x00007f19602f1150, a java.lang.Class),
which is held by "http-8081-63"
"http-8081-63":
waiting to lock monitor 0x00007f164800a028 (object 0x00007f19602d9c10, a java.lang.Class),
which is held by "http-8081-40"
"http-8081-40":
waiting to lock monitor 0x00007f18401a5908 (object 0x00007f19602f1150, a java.lang.Class),
which is held by "http-8081-63"

Java stack information for the threads listed above:
===================================================
"http-8081-181":
at com.isomorphic.datasource.DataSourceManager.getDataSource(DataSourceManager.java)
- waiting to lock <0x00007f19602f1150> (a java.lang.Class for com.isomorphic.datasource.DataSourceManager)
at com.isomorphic.datasource.DataSourceManager.getDataSource(DataSourceManager.java:86)
at com.isomorphic.servlet.DataSourceLoader.processRequest(DataSourceLoader.java:157)
at com.isomorphic.servlet.DataSourceLoader.doGet(DataSourceLoader.java:100)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
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 com.dotomi.zisa.servlets.UtilFilter.doFilter(UtilFilter.java:60)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.dotomi.zisa.servlets.GWTCacheControlFilter.doFilter(GWTCacheControlFilter.java:40)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:260)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
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.valves.AccessLogValve.invoke(AccessLogValve.java:555)
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:857)
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(Thread.java:724)
"http-8081-63":
at com.isomorphic.datasource.DataSource.getDynamicDataSource(DataSource.java)
- waiting to lock <0x00007f19602d9c10> (a java.lang.Class for com.isomorphic.datasource.DataSource)
at com.isomorphic.datasource.DataSource.forName(DataSource.java:270)
at com.isomorphic.datasource.DataSource.forName(DataSource.java:264)
at com.isomorphic.datasource.DataSource.forName(DataSource.java:253)
at com.isomorphic.datasource.PoolableDataSourceFactory.makeUnpooledObject(PoolableDataSourceFactory.java:135)
- locked <0x00007f195d0c2640> (a com.isomorphic.datasource.PoolableDataSourceFactory)
at com.isomorphic.datasource.PoolableDataSourceFactory.makeObject(PoolableDataSourceFactory.java:151)
at org.apache.commons.pool.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool.java:1220)
at com.isomorphic.pool.ISCKeyedObjectPool.borrowObject(ISCKeyedObjectPool.java:106)
- locked <0x00007f195d092b38> (a com.isomorphic.pool.ISCKeyedObjectPool)
at com.isomorphic.pool.PoolManager.borrowObject(PoolManager.java:84)
at com.isomorphic.datasource.DataSourceManager.getDataSource(DataSourceManager.java:135)
- locked <0x00007f19602f1150> (a java.lang.Class for com.isomorphic.datasource.DataSourceManager)
at com.isomorphic.datasource.ValidationContext.getType(ValidationContext.java:306)
at com.isomorphic.datasource.ValidationContext.getType(ValidationContext.java:286)
at com.isomorphic.datasource.DataSource.getElementType(DataSource.java:1275)
at com.isomorphic.datasource.DataSource.recordsFromXML(DataSource.java:1296)
at com.isomorphic.xml.XML.toDSRecords(XML.java:363)
at com.isomorphic.xml.XML.toDSRecords(XML.java:349)
at com.isomorphic.xml.XML.toDSRecords(XML.java:345)
at com.isomorphic.xml.XML.toDSRecords(XML.java:328)
at com.isomorphic.rpc.RPCManager.parseRequest(RPCManager.java:2207)
at com.isomorphic.rpc.RPCManager.<init>(RPCManager.java:321)
at com.isomorphic.rpc.RPCManager.<init>(RPCManager.java:301)
at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:132)
at com.isomorphic.servlet.IDACall.doPost(IDACall.java:73)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
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 com.dotomi.zisa.servlets.UtilFilter.doFilter(UtilFilter.java:60)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.dotomi.zisa.servlets.GWTCacheControlFilter.doFilter(GWTCacheControlFilter.java:40)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:260)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
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.valves.AccessLogValve.invoke(AccessLogValve.java:555)
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:857)
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(Thread.java:724)
"http-8081-40":
at com.isomorphic.datasource.DataSourceManager.getDataSource(DataSourceManager.java)
- waiting to lock <0x00007f19602f1150> (a java.lang.Class for com.isomorphic.datasource.DataSourceManager)
at com.isomorphic.datasource.ValidationContext.getType(ValidationContext.java:306)
at com.isomorphic.datasource.ValidationContext.getType(ValidationContext.java:286)
at com.isomorphic.datasource.DataSource.getElementType(DataSource.java:1275)
at com.isomorphic.datasource.DataSource.recordsFromXML(DataSource.java:1296)
at com.isomorphic.xml.XML.toDSRecords(XML.java:363)
at com.isomorphic.xml.XML.toDSRecords(XML.java:349)
at com.isomorphic.xml.XML.toDSRecords(XML.java:345)
at com.isomorphic.xml.XML.toDSRecords(XML.java:328)
at com.isomorphic.datasource.DataSource.fromXML(DataSource.java:695)
at com.isomorphic.datasource.DataSource.fromXML(DataSource.java:679)
at com.isomorphic.datasource.DataSource.fromXML(DataSource.java:648)
at com.dotomi.zisa.server.DynamicDataSourceLoader.getPromoGridDataSource(DynamicDataSourceLoader.java:95)
at com.dotomi.zisa.server.DynamicDataSourceLoader$1.getDataSource(DynamicDataSourceLoader.java:68)
at com.isomorphic.datasource.DataSource.getDynamicDataSource(DataSource.java:434)
- locked <0x00007f19602d9c10> (a java.lang.Class for com.isomorphic.datasource.DataSource)
at com.isomorphic.datasource.DataSource.forName(DataSource.java:270)
at com.isomorphic.datasource.DataSource.forName(DataSource.java:264)
at com.isomorphic.datasource.DataSource.forName(DataSource.java:253)
at com.isomorphic.datasource.DataSource.forName(DataSource.java:249)
at com.isomorphic.tools.BatchUpload.batchUpload(BatchUpload.java:89)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.isomorphic.base.Reflection.adaptArgsAndInvoke(Reflection.java:975)
at com.isomorphic.datasource.DataSourceDMI.execute(DataSourceDMI.java:416)
at com.isomorphic.datasource.DataSourceDMI.execute(DataSourceDMI.java:64)
at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:2531)
at com.isomorphic.servlet.IDACall.handleDSRequest(IDACall.java:215)
at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:172)
at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:137)
at com.isomorphic.servlet.IDACall.doPost(IDACall.java:73)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
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 com.dotomi.zisa.servlets.UtilFilter.doFilter(UtilFilter.java:60)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.dotomi.zisa.servlets.GWTCacheControlFilter.doFilter(GWTCacheControlFilter.java:40)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:260)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
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.valves.AccessLogValve.invoke(AccessLogValve.java:555)
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:857)
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(Thread.java:724)

Viewing all articles
Browse latest Browse all 4756

Trending Articles