Qpid
  1. Qpid
  2. QPID-1879

The client library uses a new thread for every connection

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: M1, M2, M2.1, M3, M4, 0.5, 0.6
    • Fix Version/s: 0.7
    • Component/s: C++ Client
    • Labels:
      None

      Description

      This is actually slightly worse than just using a new thread per broker connection as it also uses a new Poller for every Connection and the Poller is fairly hefty and includes a number of fds for its own use. This multiplies the client fd use for clients with many Connections.

      It's not really acceptable that opening 1000 connections should create 1000 threads.

      It should be noted that this isn't the only aspect of the client library that uses excessive numbers of threads, lets knock them off one by one

        Activity

        Transition Time In Source Status Execution Times Last Executer Last Execution Date
        Open Open Resolved Resolved
        24m 14s 1 Andrew Stitcher 28/May/09 06:19
        Resolved Resolved Reopened Reopened
        194d 14h 33m 1 Andrew Stitcher 08/Dec/09 19:53
        Reopened Reopened Resolved Resolved
        43d 22h 42m 1 Andrew Stitcher 21/Jan/10 18:36
        Resolved Resolved Closed Closed
        1285d 16m 1 Justin Ross 29/Jul/13 19:52
        Justin Ross made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Andrew Stitcher made changes -
        Status Reopened [ 4 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Andrew Stitcher made changes -
        Fix Version/s 0.7 [ 12314455 ]
        Fix Version/s 0.6 [ 12313728 ]
        Affects Version/s 0.6 [ 12313728 ]
        Andrew Stitcher made changes -
        Resolution Fixed [ 1 ]
        Status Resolved [ 5 ] Reopened [ 4 ]
        Hide
        Andrew Stitcher added a comment -

        This fix was reverted, due to some unforeseen interactions

        Show
        Andrew Stitcher added a comment - This fix was reverted, due to some unforeseen interactions
        Andrew Stitcher made changes -
        Field Original Value New Value
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Hide
        Andrew Stitcher added a comment -

        Don't use a thread for every new client Connection

        • By default the max number of threads now used for network io
          is the number of cpus available.
        • This can be overridden with the QPID_MAX_IOTHREADS environment
          variable or the config file
        Show
        Andrew Stitcher added a comment - Don't use a thread for every new client Connection By default the max number of threads now used for network io is the number of cpus available. This can be overridden with the QPID_MAX_IOTHREADS environment variable or the config file
        Andrew Stitcher created issue -

          People

          • Assignee:
            Andrew Stitcher
            Reporter:
            Andrew Stitcher
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development