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

Disable spawning of new threads when the thread pool is full

XMLWordPrintable

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

      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.

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

                Created:
                Updated:
                Resolved: