Uploaded image for project: 'ActiveMQ Classic'
  1. ActiveMQ Classic
  2. AMQ-6505

Auto transports can lead to high cpu usage and failed connections under high load

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

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 5.14.1
    • 5.15.0, 5.14.2
    • Broker
    • None

    Description

      There's an issue with the auto transports that can cause failed connections and very high cpu usage when there is a high number of concurrent connections attempted at the same time. I noticed this primarily under load testing the auto+nio+ssl transport. After some debugging, it turns out the issue is the ByteBuffer that is used to capture the initial bytes for protocol detection. The buffer should be local per thread and not shared but by mistake it was made a class level variable so under high load and contention the buffer can be manipulated by more than one thread causing failures and high cpu load (especially under NIO)

      Attachments

        Activity

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

          People

            cshannon Christopher L. Shannon
            cshannon Christopher L. Shannon
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment