[ http://issues.apache.org/jira/browse/JS2-522?page=all ]
Ate Douma resolved JS2-522:
---------------------------
Fix Version: 2.1
2.1-dev
Resolution: Fixed
Fixed by David Sean Taylor, April 7
> Infinite loop created in PortletWindowAccessorImpl.getWindowFromCache() while
> under load
> ----------------------------------------------------------------------------------------
>
> Key: JS2-522
> URL: http://issues.apache.org/jira/browse/JS2-522
> Project: Jetspeed 2
> Type: Bug
> Components: Aggregation
> Versions: 2.0-FINAL
> Environment: Solaris 8, Oracle 9, Java 1.5
> Reporter: Ethan Adams
> Priority: Critical
> Fix For: 2.1, 2.1-dev
>
> I am running a load test on J2 FINAL (Solaris 8, Java 1.5, Oracle 9) and
> noticed that the java utilization spiked to 100% (it was running around 45%).
> I did a thread dump using kill -3 and found 200 of these:
> "TP-Processor1" daemon prio=10 tid=0x01009fc8 nid=0x47 runnable
> [0xb087f000..0xb0881888]
> at java.util.HashMap.get(HashMap.java:329)
> at
> org.apache.jetspeed.container.window.impl.PortletWindowAccessorImpl.getWindowFromCache(PortletWindowAccessorImpl.java:226)
> at
> org.apache.jetspeed.container.window.impl.PortletWindowAccessorImpl.getPortletWindow(PortletWindowAccessorImpl.java:98)
> at
> org.apache.jetspeed.decoration.DecorationValve.initActionsForFragment(DecorationValve.java:206)
> at
> org.apache.jetspeed.decoration.DecorationValve.initFragment(DecorationValve.java:434)
> at
> org.apache.jetspeed.decoration.DecorationValve.initFragment(DecorationValve.java:427)
> at
> org.apache.jetspeed.decoration.DecorationValve.invoke(DecorationValve.java:98)
> at
> org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203)
> at
> org.apache.jetspeed.pipeline.valve.impl.ActionValveImpl.invoke(ActionValveImpl.java:132)
> at
> org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203)
> at
> org.apache.jetspeed.container.ContainerValve.invoke(ContainerValve.java:76)
> at
> org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203)
> at
> org.apache.jetspeed.profiler.impl.ProfilerValveImpl.invoke(ProfilerValveImpl.java:179)
> at
> org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203)
> at
> org.apache.jetspeed.security.impl.LoginValidationValveImpl.invoke(LoginValidationValveImpl.java:143)
> at
> org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203)
> at
> org.apache.jetspeed.security.impl.PasswordCredentialValveImpl.invoke(PasswordCredentialValveImpl.java:148)
> at
> org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203)
> at
> com.covisint.cep.jetspeed.pipeline.LocalizationValveImpl.invoke(LocalizationValveImpl.java:69)
> at
> org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203)
> at
> org.apache.jetspeed.security.impl.AbstractSecurityValve$1.run(AbstractSecurityValve.java:117)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAsPrivileged(Subject.java:454)
> at
> org.apache.jetspeed.security.impl.AbstractSecurityValve.invoke(AbstractSecurityValve.java:111)
> at
> org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203)
> at
> org.apache.jetspeed.container.url.impl.PortalURLValveImpl.invoke(PortalURLValveImpl.java:55)
> at
> org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203)
> at
> org.apache.jetspeed.capabilities.impl.CapabilityValveImpl.invoke(CapabilityValveImpl.java:128)
> at
> org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203)
> at
> com.covisint.cep.auto.pipeline.AutomotivePortalValve.invoke(AutomotivePortalValve.java:96)
> at
> org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203)
> at
> org.apache.jetspeed.pipeline.JetspeedPipeline.invoke(JetspeedPipeline.java:185)
> at
> org.apache.jetspeed.engine.JetspeedEngine.service(JetspeedEngine.java:231)
> at
> org.apache.jetspeed.engine.JetspeedServlet.doGet(JetspeedServlet.java:212)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> 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.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
> at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:514)
> 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.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
> at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)
> at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
> at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:744)
> at
> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:674)
> at
> org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:866)
> at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> at java.lang.Thread.run(Thread.java:595)
> Seems that access to the HashMap windows needs to be synchronized
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]