Carlin, Thanks for the quick response. This occured once a month and I still can seem to find a way to reproduce it. It only happens on the production environment. I will try to reproduce this scenario and let you know how this is occuring.
I think it has something to do with multiple iframe accessing the same page. Will update you when I find more information. Thanks. John Liew Carlin Rogers-2 wrote: > > John, > > I,m not sure I see why you're experiencing this behavior. In this case > it is not obvious and without any knowledge about what your app is > doing it is difficult to say. It may be a bug in the Faces / NetUI > Page Flow integration though I honestly can't tell. > > Both threads seem to show that the locking order is reversed from what > is expected (lock on Session Mutex then lock on Page Flow Controller) > and in addition thread 277 is trying to lock a second and different > instance of the UserProfileController than the one it already has a > lock on. Seems odd. > > From the stack trace, this is what appears to be going on... I think... > > Thread 280 looks like it is handling a request for a faces page. It > locks on the associated Controller (a > portlets.admin.userlifecycle.UserProfileController - 0xbf42f380). Then > the Faces /NetUI integration raises a Page Flow action for the JSF > page (via a request dispatcher forward). After the action has been > executed, the PageFlowRequestProcessor tries to update the session so > it tries to get the Session Mutex lock... but waits in a deadlock > because... > > Thread 277 is also handing a request for a faces page (same page?). It > locks on the associated Controller (a > portlets.admin.userlifecycle.UserProfileController - 0xbf950570)... a > different instance than the one from thread 280 (this seems odd for > two concurrent thread requests from the same user session). So it does > not wait for the other thread. It gets a lock on this instance and the > Faces /NetUI integration raises a Page Flow action for the JSF page, > like thread 280. After the action has been executed, the > PageFlowRequestProcessor tries to update the session. It is the first > to get the Session Mutex. It then tries to get a lock on the current > Controller. At this point this request tries to get a lock on the > instance of UserProfileController that thread 280 has a lock on - > 0xbf42f380 - and not the instance this thread already got a lock on. > Deadlock. > > Any details about the application or use scenario that might help? > > Kind regards, > Carlin > > On 10/30/07, JLiew <[EMAIL PROTECTED]> wrote: >> >> Carlin, >> >> I'm seeing another instance of deadlock in HttpSessionMutexListener. >> I'm using release 1.0.2. Any idea what's going on? >> >> Below are the details and stack trace: >> >> "ExecuteThread: '280' for queue: 'default'" daemon prio=1 tid=0x08636268 >> nid=0xd71 waiting for monitor entry [0x6e873000..0x6e874470] >> at >> org.apache.beehive.netui.pageflow.internal.DeferredSessionStorageHandler.applyChanges(DeferredSessionStorageHandler.java:2 >> 04) >> - waiting to lock <0xb4642f50> (a >> org.apache.beehive.netui.pageflow.HttpSessionMutexListener$Mutex) >> at >> com.bea.portlet.adapter.scopedcontent.ScopedContentStorageHandler.applyChanges(ScopedContentStorageHandler.java:73) >> at >> org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.process(PageFlowRequestProcessor.java:863) >> at >> org.apache.beehive.netui.pageflow.AutoRegisterActionServlet.process(AutoRegisterActionServlet.java:631) >> at >> org.apache.beehive.netui.pageflow.PageFlowActionServlet.process(PageFlowActionServlet.java:158) >> at >> org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:763) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) >> at >> weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:223) >> at >> weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) >> at >> weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283) >> at >> weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) >> at >> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) >> at >> com.bea.p13n.servlets.PortalServletFilter.doFilter(PortalServletFilter.java:251) >> at >> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) >> at >> weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:501) >> at >> weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:245) >> at >> org.apache.beehive.netui.pageflow.faces.internal.PageFlowNavigationHandler.handleNavigation(PageFlowNavigationHandler.java >> :110) >> at >> com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:89) >> at >> org.apache.beehive.netui.pageflow.faces.internal.PageFlowActionListener.processAction(PageFlowActionListener.java:60) >> at javax.faces.component.UICommand.broadcast(UICommand.java:312) >> at >> javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267) >> at >> javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381) >> at >> com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75) >> at >> com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200) >> at >> com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90) >> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197) >> at >> weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:223) >> at >> weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) >> at >> weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283) >> at >> weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) >> at >> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) >> at >> org.apache.beehive.netui.pageflow.PageFlowPageFilter.runPage(PageFlowPageFilter.java:385) >> - locked <0xbf42f380> (a >> portlets.admin.userlifecycle.UserProfileController) >> at >> org.apache.beehive.netui.pageflow.PageFlowPageFilter.doFilter(PageFlowPageFilter.java:284) >> at >> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) >> at >> com.citi.gpb.portal.admin.filter.AdminAuthenticationFilter.doFilter(AdminAuthenticationFilter.java:167) >> at >> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) >> at >> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:183) >> at >> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77) >> at >> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) >> at >> com.bea.p13n.servlets.PortalServletFilter.doFilter(PortalServletFilter.java:251) >> at >> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) >> at >> weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3243) >> at >> weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) >> at >> weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) >> at >> weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2003) >> at >> weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1909) >> at >> weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1359) >> at >> weblogic.work.ExecuteRequestAdapter.execute(ExecuteRequestAdapter.java:21) >> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145) >> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:117) >> >> "ExecuteThread: '277' for queue: 'default'" daemon prio=1 tid=0x08633598 >> nid=0xd6e waiting for monitor entry [0x6e9f6000..0x6e9f76f0] >> at >> org.apache.beehive.netui.pageflow.internal.DeferredSessionStorageHandler.applyChanges(DeferredSessionStorageHandler.java:233) >> - waiting to lock <0xbf42f380> (a >> portlets.admin.userlifecycle.UserProfileController) >> - locked <0xb4642f50> (a >> org.apache.beehive.netui.pageflow.HttpSessionMutexListener$Mutex) >> at >> com.bea.portlet.adapter.scopedcontent.ScopedContentStorageHandler.applyChanges(ScopedContentStorageHandler.java:73) >> at >> org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.process(PageFlowRequestProcessor.java:863) >> at >> org.apache.beehive.netui.pageflow.AutoRegisterActionServlet.process(AutoRegisterActionServlet.java:631) >> at >> org.apache.beehive.netui.pageflow.PageFlowActionServlet.process(PageFlowActionServlet.java:158) >> at >> org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:763) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) >> at >> weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:223) >> at >> weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) >> at >> weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283) >> at >> weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) >> at >> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) >> at >> com.bea.p13n.servlets.PortalServletFilter.doFilter(PortalServletFilter.java:251) >> at >> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) >> at >> weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:501) >> at >> weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:245) >> at >> org.apache.beehive.netui.pageflow.faces.internal.PageFlowNavigationHandler.handleNavigation(PageFlowNavigationHandler.java:110 >> ) >> at >> com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:89) >> at >> org.apache.beehive.netui.pageflow.faces.internal.PageFlowActionListener.processAction(PageFlowActionListener.java:60) >> at javax.faces.component.UICommand.broadcast(UICommand.java:312) >> at >> javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267) >> at >> javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381) >> at >> com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75) >> at >> com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200) >> at >> com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90) >> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197) >> at >> weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:223) >> at >> weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) >> at >> weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283) >> at >> weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) >> at >> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) >> at >> org.apache.beehive.netui.pageflow.PageFlowPageFilter.runPage(PageFlowPageFilter.java:385) >> - locked <0xbf950570> (a >> portlets.admin.userlifecycle.UserProfileController) >> at >> org.apache.beehive.netui.pageflow.PageFlowPageFilter.doFilter(PageFlowPageFilter.java:284) >> at >> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) >> at >> com.citi.gpb.portal.admin.filter.AdminAuthenticationFilter.doFilter(AdminAuthenticationFilter.java:167) >> at >> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) >> at >> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:183) >> at >> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77) >> at >> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) >> at >> com.bea.p13n.servlets.PortalServletFilter.doFilter(PortalServletFilter.java:251) >> at >> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) >> at >> weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3243) >> at >> weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) >> at >> weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) >> at >> weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2003) >> at >> weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1909) >> at >> weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1359) >> at >> weblogic.work.ExecuteRequestAdapter.execute(ExecuteRequestAdapter.java:21) >> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145) >> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:117) >> >> >> -- >> View this message in context: >> http://www.nabble.com/Deadlocks-in-HttpSessionMutexListener-tf1976622.html#a13494691 >> Sent from the Beehive - User mailing list archive at Nabble.com. >> >> > > -- View this message in context: http://www.nabble.com/Deadlocks-in-HttpSessionMutexListener-tf1976622.html#a13510113 Sent from the Beehive - User mailing list archive at Nabble.com.
