Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-8531

[Broker-J] SelectorThread disobeys eat-what-you-kill pattern

Attach filesAttach ScreenshotAdd voteVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments


    • Type: Improvement
    • Status: Open
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Broker-J
    • Labels:


      The SelectorThread.SelectTask inner class is responsible for selecting the incoming data from the connection socket.

      If the new connection data are pick up by the selector from the socket then a connection job is pushed into the scheduler queue but the thread that selected the connection data tries also to process the job. If there is a free thread in the pool then the new connection job could be processed by the free thread.

      But if the new connection socket is selected from server socked then a new job is pushed into the scheduler queue and it will wait for a free thread. The thread that selected the new socket never processes the job and the thread does not process what it killed.

      The first selector 0 is always registered in the server socket to wait for a new connection. It makes the first selector special but the work load should be distributed among all selectors.




            • Assignee:
              lacam Marek Laca


              • Created:

                Issue deployment