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

          Peter Balogh created issue -
          Ken Fyten made changes -
          Field Original Value New Value
          Link This issue duplicates ICE-5649 [ ICE-5649 ]
          Ken Fyten made changes -
          Status Open [ 1 ] Closed [ 6 ]
          Fix Version/s EE-1.8.2.GA_P04 [ 10280 ]
          Resolution Duplicate [ 3 ]

            People

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

              Dates

              • Created:
                Updated:
                Resolved: