You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by Christopher Blythe <cj...@gmail.com> on 2007/01/05 20:45:42 UTC

Concurrency issues with SLSBs in Geronimo 1.2?

All,

I think there may be some issues with SLSBs in Geronimo 1.2 and was
wondering if anyone had experienced anything similar or if this is already a
known issue.

- Built Geronimo from geronimo/sever/branches/1.2 (01/04/2007)
- Deployed Daytrader (built from geronimo/daytrader/branches/1.2)
- Stressed "EJB" and "Session to JDBC" mode with multiple clients using load
driver

Both tests resulted in the following exception when more than 1 client was
driven.

NOTE: I went back and double checked on Geronimo 1.1.1 and this does not
occur.

java.util.ConcurrentModificationException
        at java.util.HashMap$HashIterator.remove(HashMap.java:860)
        at
org.apache.geronimo.connector.outbound.connectiontracking.ConnectionTrackingCoordinator.exit
(ConnectionTrackingCoordinator.java:92)
        at
org.apache.geronimo.connector.outbound.connectiontracking.ConnectionTrackingCoordinator$$FastClassByCGLIB$$5d33aabf.invoke
(<generated>)
        at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
        at org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(
FastMethodInvoker.java:38)
        at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(
GBeanOperation.java:122)
        at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(
GBeanInstance.java:820)
        at org.apache.geronimo.gbean.runtime.RawInvoker.invoke(
RawInvoker.java:57)
        at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(
RawOperationInvoker.java:35)
        at org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept
(ProxyMethodInterceptor.java:96)
        at
org.apache.geronimo.connector.outbound.connectiontracking.ConnectionTracker$$EnhancerByCGLIB$$8f3374f8.exit
(<generated>)
        at org.apache.openejb.NoConnectionEnlistingInterceptor.invoke(
NoConnectionEnlistingInterceptor.java:70)
        at org.apache.openejb.SystemExceptionInterceptor.invoke(
SystemExceptionInterceptor.java:35)
        at org.apache.openejb.security.DefaultSubjectInterceptor.invoke(
DefaultSubjectInterceptor.java:49)
        at org.apache.openejb.slsb.DefaultStatelessEjbContainer.invoke(
DefaultStatelessEjbContainer.java:178)
        at
org.apache.openejb.slsb.DefaultStatelessEjbContainer$$FastClassByCGLIB$$7ad7a562.invoke
(<generated>)
        at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
        at org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(
FastMethodInvoker.java:38)
        at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(
GBeanOperation.java:122)
        at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(
GBeanInstance.java:820)
        at org.apache.geronimo.gbean.runtime.RawInvoker.invoke(
RawInvoker.java:57)
        at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(
RawOperationInvoker.java:35)
        at org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept
(ProxyMethodInterceptor.java:96)
        at
org.apache.openejb.StatelessEjbContainer$$EnhancerByCGLIB$$34d791e3.invoke
(<generated>)
        at org.apache.openejb.AbstractEjbDeployment.invoke(
AbstractEjbDeployment.java:195)
        at org.apache.openejb.proxy.EJBMethodInterceptor.intercept(
EJBMethodInterceptor.java:145)
        at
org.apache.openejb.proxy.SessionEJBObject$$EnhancerByCGLIB$$3eb3ed90.getQuote
(<generated>)
        at org.apache.geronimo.samples.daytrader.TradeAction.getQuote(
TradeAction.java:331)
        at org.apache.jsp.displayQuote_jsp._jspService(
org.apache.jsp.displayQuote_jsp:71)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java
:97)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
        at org.apache.jasper.servlet.JspServletWrapper.service(
JspServletWrapper.java:332)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(
JspServlet.java:314)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:173)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(
ApplicationDispatcher.java:672)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(
ApplicationDispatcher.java:574)
        at org.apache.catalina.core.ApplicationDispatcher.include(
ApplicationDispatcher.java:499)
        at org.apache.jasper.runtime.JspRuntimeLibrary.include(
JspRuntimeLibrary.java:966)
        at org.apache.jsp.quote_jsp._jspService(org.apache.jsp.quote_jsp:212
)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java
:97)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
        at org.apache.jasper.servlet.JspServletWrapper.service(
JspServletWrapper.java:332)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(
JspServlet.java:314)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:173)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(
ApplicationDispatcher.java:672)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(
ApplicationDispatcher.java:574)
        at org.apache.catalina.core.ApplicationDispatcher.include(
ApplicationDispatcher.java:499)
        at
org.apache.geronimo.samples.daytrader.web.TradeServletAction.requestDispatch
(TradeServletAction.java:729)
        at
org.apache.geronimo.samples.daytrader.web.TradeServletAction.doQuotes(
TradeServletAction.java:583)
        at
org.apache.geronimo.samples.daytrader.web.TradeAppServlet.performTask(
TradeAppServlet.java:155)
        at org.apache.geronimo.samples.daytrader.web.TradeAppServlet.doGet(
TradeAppServlet.java:77)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:597)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:173)
        at
org.apache.geronimo.samples.daytrader.web.OrdersAlertFilter.doFilter(
OrdersAlertFilter.java:91)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(
StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(
StandardContextValve.java:178)
        at org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke(
DefaultSubjectValve.java:56)
        at
org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(
GeronimoStandardContext.java:326)
        at org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(
GeronimoBeforeAfterValve.java:47)
        at org.apache.catalina.core.StandardHostValve.invoke(
StandardHostValve.java:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(
ErrorReportValve.java:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(
StandardEngineValve.java:107)
        at org.apache.catalina.valves.AccessLogValve.invoke(
AccessLogValve.java:541)
        at org.apache.catalina.connector.CoyoteAdapter.service(
CoyoteAdapter.java:148)
        at org.apache.coyote.http11.Http11Processor.process(
Http11Processor.java:869)
        at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection
(Http11BaseProtocol.java:667)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(
PoolTcpEndpoint.java:527)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(
LeaderFollowerWorkerThread.java:80)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:595)

Thanks...

Chris


-- 
"I say never be complete, I say stop being perfect, I say let... lets
evolve, let the chips fall where they may." - Tyler Durden

Re: Concurrency issues with ConnectionTracking in Geronimo 1.2?

Posted by Dain Sundstrom <da...@iq80.com>.
That is a problem with the Geronimo Connector ConnectionTracking code  
not SLSB.  Please file a JIRA.

-dain

On Jan 5, 2007, at 11:45 AM, Christopher Blythe wrote:

> All,
>
> I think there may be some issues with SLSBs in Geronimo 1.2 and was  
> wondering if anyone had experienced anything similar or if this is  
> already a known issue.
>
> - Built Geronimo from geronimo/sever/branches/1.2 (01/04/2007)
> - Deployed Daytrader (built from geronimo/daytrader/branches/1.2)
> - Stressed "EJB" and "Session to JDBC" mode with multiple clients  
> using load driver
>
> Both tests resulted in the following exception when more than 1  
> client was driven.
>
> NOTE: I went back and double checked on Geronimo 1.1.1 and this  
> does not occur.
>
> java.util.ConcurrentModificationException
>         at java.util.HashMap$HashIterator.remove(HashMap.java:860)
>         at  
> org.apache.geronimo.connector.outbound.connectiontracking.ConnectionTr 
> ackingCoordinator.exit(ConnectionTrackingCoordinator.java:92)
>         at  
> org.apache.geronimo.connector.outbound.connectiontracking.ConnectionTr 
> ackingCoordinator$$FastClassByCGLIB$$5d33aabf.invoke (<generated>)
>         at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>         at  
> org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke 
> (FastMethodInvoker.java:38)
>         at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke  
> (GBeanOperation.java:122)
>         at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke 
> (GBeanInstance.java:820)
>         at org.apache.geronimo.gbean.runtime.RawInvoker.invoke 
> (RawInvoker.java:57)
>         at  
> org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke  
> (RawOperationInvoker.java:35)
>         at  
> org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept 
> (ProxyMethodInterceptor.java:96)
>         at  
> org.apache.geronimo.connector.outbound.connectiontracking.ConnectionTr 
> acker$$EnhancerByCGLIB$$8f3374f8.exit (<generated>)
>         at  
> org.apache.openejb.NoConnectionEnlistingInterceptor.invoke 
> (NoConnectionEnlistingInterceptor.java:70)
>         at org.apache.openejb.SystemExceptionInterceptor.invoke 
> (SystemExceptionInterceptor.java :35)
>         at  
> org.apache.openejb.security.DefaultSubjectInterceptor.invoke 
> (DefaultSubjectInterceptor.java:49)
>         at  
> org.apache.openejb.slsb.DefaultStatelessEjbContainer.invoke 
> (DefaultStatelessEjbContainer.java :178)
>         at org.apache.openejb.slsb.DefaultStatelessEjbContainer$ 
> $FastClassByCGLIB$$7ad7a562.invoke(<generated>)
>         at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>         at  
> org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke  
> (FastMethodInvoker.java:38)
>         at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke 
> (GBeanOperation.java:122)
>         at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke 
> (GBeanInstance.java:820)
>         at org.apache.geronimo.gbean.runtime.RawInvoker.invoke 
> (RawInvoker.java:57)
>         at  
> org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke 
> (RawOperationInvoker.java:35)
>         at  
> org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept  
> (ProxyMethodInterceptor.java:96)
>         at org.apache.openejb.StatelessEjbContainer$$EnhancerByCGLIB 
> $$34d791e3.invoke(<generated>)
>         at org.apache.openejb.AbstractEjbDeployment.invoke 
> (AbstractEjbDeployment.java :195)
>         at org.apache.openejb.proxy.EJBMethodInterceptor.intercept 
> (EJBMethodInterceptor.java:145)
>         at org.apache.openejb.proxy.SessionEJBObject$ 
> $EnhancerByCGLIB$$3eb3ed90.getQuote(<generated>)
>         at  
> org.apache.geronimo.samples.daytrader.TradeAction.getQuote 
> (TradeAction.java:331)
>         at org.apache.jsp.displayQuote_jsp._jspService 
> (org.apache.jsp.displayQuote_jsp:71)
>         at org.apache.jasper.runtime.HttpJspBase.service  
> (HttpJspBase.java:97)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java: 
> 690)
>         at org.apache.jasper.servlet.JspServletWrapper.service 
> (JspServletWrapper.java:332)
>         at org.apache.jasper.servlet.JspServlet.serviceJspFile  
> (JspServlet.java:314)
>         at org.apache.jasper.servlet.JspServlet.service 
> (JspServlet.java:264)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java: 
> 690)
>         at  
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter  
> (ApplicationFilterChain.java:252)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter 
> (ApplicationFilterChain.java:173)
>         at org.apache.catalina.core.ApplicationDispatcher.invoke 
> (ApplicationDispatcher.java :672)
>         at org.apache.catalina.core.ApplicationDispatcher.doInclude 
> (ApplicationDispatcher.java:574)
>         at org.apache.catalina.core.ApplicationDispatcher.include 
> (ApplicationDispatcher.java:499)
>         at org.apache.jasper.runtime.JspRuntimeLibrary.include 
> (JspRuntimeLibrary.java:966)
>         at org.apache.jsp.quote_jsp._jspService 
> (org.apache.jsp.quote_jsp:212)
>         at org.apache.jasper.runtime.HttpJspBase.service 
> ( HttpJspBase.java:97)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java: 
> 690)
>         at org.apache.jasper.servlet.JspServletWrapper.service 
> (JspServletWrapper.java:332)
>         at org.apache.jasper.servlet.JspServlet.serviceJspFile  
> (JspServlet.java:314)
>         at org.apache.jasper.servlet.JspServlet.service 
> (JspServlet.java:264)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java: 
> 690)
>         at  
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter  
> (ApplicationFilterChain.java:252)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter 
> (ApplicationFilterChain.java:173)
>         at org.apache.catalina.core.ApplicationDispatcher.invoke 
> (ApplicationDispatcher.java :672)
>         at org.apache.catalina.core.ApplicationDispatcher.doInclude 
> (ApplicationDispatcher.java:574)
>         at org.apache.catalina.core.ApplicationDispatcher.include 
> (ApplicationDispatcher.java:499)
>         at  
> org.apache.geronimo.samples.daytrader.web.TradeServletAction.requestDi 
> spatch(TradeServletAction.java:729)
>         at  
> org.apache.geronimo.samples.daytrader.web.TradeServletAction.doQuotes( 
> TradeServletAction.java:583)
>         at  
> org.apache.geronimo.samples.daytrader.web.TradeAppServlet.performTask( 
> TradeAppServlet.java:155)
>         at  
> org.apache.geronimo.samples.daytrader.web.TradeAppServlet.doGet 
> (TradeAppServlet.java:77)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java: 
> 597)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java: 
> 690)
>         at  
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
> (ApplicationFilterChain.java :252)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter 
> (ApplicationFilterChain.java:173)
>         at  
> org.apache.geronimo.samples.daytrader.web.OrdersAlertFilter.doFilter 
> (OrdersAlertFilter.java:91)
>         at  
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
> (ApplicationFilterChain.java:202)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter 
> (ApplicationFilterChain.java:173)
>         at org.apache.catalina.core.StandardWrapperValve.invoke 
> (StandardWrapperValve.java:213)
>         at org.apache.catalina.core.StandardContextValve.invoke 
> (StandardContextValve.java:178)
>         at  
> org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke  
> (DefaultSubjectValve.java:56)
>         at org.apache.geronimo.tomcat.GeronimoStandardContext 
> $SystemMethodValve.invoke(GeronimoStandardContext.java:326)
>         at  
> org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke  
> (GeronimoBeforeAfterValve.java:47)
>         at org.apache.catalina.core.StandardHostValve.invoke 
> (StandardHostValve.java:126)
>         at org.apache.catalina.valves.ErrorReportValve.invoke 
> (ErrorReportValve.java:105)
>         at org.apache.catalina.core.StandardEngineValve.invoke 
> (StandardEngineValve.java:107)
>         at org.apache.catalina.valves.AccessLogValve.invoke 
> (AccessLogValve.java:541)
>         at org.apache.catalina.connector.CoyoteAdapter.service  
> (CoyoteAdapter.java:148)
>         at org.apache.coyote.http11.Http11Processor.process 
> (Http11Processor.java:869)
>         at org.apache.coyote.http11.Http11BaseProtocol 
> $Http11ConnectionHandler.processConnection(Http11BaseProtocol.java : 
> 667)
>         at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket 
> (PoolTcpEndpoint.java:527)
>         at  
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt 
> (LeaderFollowerWorkerThread.java:80)
>         at org.apache.tomcat.util.threads.ThreadPool 
> $ControlRunnable.run(ThreadPool.java:684)
>         at java.lang.Thread.run(Thread.java:595)
>
> Thanks...
>
> Chris
>
>
> -- 
> "I say never be complete, I say stop being perfect, I say let...  
> lets evolve, let the chips fall where they may." - Tyler Durden