Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.0.2
    • Fix Version/s: 1.0.2
    • Component/s: NetUI
    • Labels:
      None

      Description

      There's a thread deadlock problem in the interaction between the
      NetUI DeferredSessionStorageHandler (DSSH) and a page flow that uses
      the NameService (either in an action calling the
      NameService.instance() or rendering a JSP with the netui:tree tag
      using the XHR support.

      The problem occurs when two concurrent threads get the locks on the
      session mutex object and page flow controller in reverse order. It can
      occur in the following way:

      Thread A, Step 1 - PageFlowRequestProcessor.process() completes the
      execute of the action and calls DSSH.applyChanges().
      Thread A, Step 2 - DSSH.applyChanges() gets a lock on the session mutex object.

      Thread B, Step 1 - PFRP.process() starts the process to execute the
      action of a page flow.
      Thread B, Step 2 - FlowController.execute() gets a lock on the page
      flow controller object.

      Thread A, Step 3 - DSSH.applyChanges() tries to get lock on page flow
      controller object (to apply changes from the request to the
      session)... and waits.

      Thread B, Step 3 - The PageFlow action calls NameService.instance()
      which in turn tries to get a lock on the session mutex object (to
      ensure that only a single NameService object is created within a
      specific user session)... and waits.

      ...in a deadlock now.

        Activity

        Carlin Rogers created issue -
        Hide
        Carlin Rogers added a comment -

        resolved with svn revision 467127.

        Show
        Carlin Rogers added a comment - resolved with svn revision 467127.
        Carlin Rogers made changes -
        Field Original Value New Value
        Resolution Fixed [ 1 ]
        Status Open [ 1 ] Resolved [ 5 ]
        Assignee Carlin Rogers [ crogers ]

          People

          • Assignee:
            Carlin Rogers
            Reporter:
            Carlin Rogers
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development