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.

Reply via email to