Uploaded image for project: 'CXF'
  1. CXF
  2. CXF-7145

synchronized store and getMessages of JmsPullPoint would cause deadlock

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 3.1.9, 3.2.0
    • Services
    • None
    • Unknown

    Description

      The JmsPullPoint would be accessed by both the producer client and consumer client, currently the whole store(used by producer) and getMessages(used by consumer) method was synchronized. For some flow control scenario[1], the

      producer.send(message);
      

      in store method would be blocked if the jms queue exceed some certain size, in this case the getMessages method never get chance to be invoked to decrease the queue size which cause deadlock.

      Actually in the methods only the session init and reset should be synchronized, so we should synchronize the session only to avoid this deadlock

      [1]http://activemq.apache.org/producer-flow-control.html

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            ffang Freeman Yue Fang
            ffang Freeman Yue Fang
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment