Uploaded image for project: 'JGroups'
  1. JGroups
  2. JGRP-2539

Disable spawning of new threads when the thread pool is full

    XMLWordPrintable

Details

    • Feature Request
    • Resolution: Done
    • Major
    • 4.2.12, 5.1.6
    • None
    • None
    • False
    • False
    • 0
    • 0% 0%
    • Undefined

    Description

      When an internal message is forwarded to the internal pool, and that pool is full, then a new thread is spawned to run the task.
      If we have a hiccup that for example causes a high number of internal messages (e.g. retransmission requests) to be received, then we might end up with a high number of temporary threads being created. This could lead to resource exhaustion and/or exceeding of ulimit levels.
      It is sometimes better to simply drop the internal message rather than spawning a new thread. In the example of retransmission requests, dropping would even be beneficial, to reduce the burden on the system.
      Note: timer tasks can never be dropped, but TimeScheulder3 has its own logic, which does spawn a new thread on a full pool, so these critical tasks are not dropped. Timer tasks are not numerous, so spawning is not critical.

      Attachments

        Activity

          People

            rhn-engineering-bban Bela Ban
            rhn-engineering-bban Bela Ban
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: