ICEfaces
  1. ICEfaces
  2. ICE-5535

Threads hunging when session gets destroyed

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Duplicate
    • Affects Version/s: 1.8.2
    • Fix Version/s: EE-1.8.2.GA_P04
    • Component/s: Release
    • Labels:
      None
    • Environment:
      AIX, WebSphere Application Server v6.1

      Description

      When we call explicit session invalidation within our application, sometimes the thread stucks with the stacktrace attached below. These threads are staying in the wait() forever. And due to IBM's session implementation, this blocks further threads, which require session data as well.

      at java/lang/Object.wait(Native Method)
      at java/lang/Object.wait(Object.java:199(Compiled Code))
      at edu/emory/mathcs/backport/java/util/concurrent/locks/ReentrantLock$NonfairSync.lock(ReentrantLock.java:199(Compiled Code))
      at edu/emory/mathcs/backport/java/util/concurrent/locks/ReentrantLock.lock(ReentrantLock.java:481(Compiled Code))
      at com/icesoft/faces/context/View.acquireLifecycleLock(View.java:231(Compiled Code))
      at com/icesoft/faces/context/View.dispose(View.java:213(Compiled Code))
      at com/icesoft/faces/webapp/http/servlet/MainSessionBoundServlet$5.run(MainSessionBoundServlet.java:172(Compiled Code))
      at com/icesoft/faces/webapp/http/servlet/MainSessionBoundServlet.shutdown(MainSessionBoundServlet.java:196)
      at com/icesoft/faces/webapp/http/servlet/SessionDispatcher.sessionShutdown(SessionDispatcher.java:105(Compiled Code))
      at com/icesoft/faces/webapp/http/servlet/SessionDispatcher.notifySessionShutdown(SessionDispatcher.java:164(Compiled Code))
      at com/icesoft/faces/webapp/http/servlet/SessionDispatcher.access$500(SessionDispatcher.java:30(Compiled Code))
      at com/icesoft/faces/webapp/http/servlet/SessionDispatcher$Listener.sessionDestroyed(SessionDispatcher.java:243(Compiled Code))
      at com/icesoft/faces/util/event/servlet/ContextEventRepeater.sessionDestroyed(ContextEventRepeater.java:318(Compiled Code))
      at com/ibm/ws/webcontainer/httpsession/SessionContext.sessionDestroyedEvent(SessionContext.java:3652(Compiled Code))
      at com/ibm/ws/webcontainer/httpsession/SessionData.sessionUnbound(SessionData.java:1021(Compiled Code))
      at com/ibm/ws/webcontainer/httpsession/SessionContext.notifySessionInvalidated(SessionContext.java:1115(Compiled Code))
      at com/ibm/ws/webcontainer/httpsession/SessionData.invalidate(SessionData.java:624(Compiled Code))
      at com/ibm/ws/webcontainer/httpsession/HttpSessionFacade.invalidate(HttpSessionFacade.java:181(Compiled Code))
      at com/ibm/_jsp/_error._jspService(_error.java:111)

      We tried to exchange the backport-util-concurrent.jar to the latest version (3.1). We hoped that there may be some problem with the ReentrantLock implementation. But after a couple of days we again had the similar issue.

      Could you please help us find a solution for this? What is the purpose of this lifecyclelock within the dispose? Or what event should bring it out of the lock?
      Thanks for your help in advance!

        Issue Links

          Activity

          Hide
          Simon Erhardt added a comment -

          Having the same issue...

          Show
          Simon Erhardt added a comment - Having the same issue...
          Hide
          Ken Fyten added a comment -

          Duplicate issue.

          Show
          Ken Fyten added a comment - Duplicate issue.

            People

            • Assignee:
              Unassigned
              Reporter:
              Peter Balogh
            • Votes:
              2 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: