Uploaded image for project: 'Puppet Server'
  1. Puppet Server
  2. SERVER-408

Expose configurable `borrow-timeout` to allow JRuby pool borrows to timeout


    • Type: Improvement
    • Status: Closed
    • Priority: Normal
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: SERVER 1.0.8, SERVER 2.1.0
    • Component/s: None
    • Labels:


      When Puppet Server's master is handling a request that needs to be handled by JRuby, the master will borrow a JRuby request instance from a pool. Currently, the borrow attempt will block indefinitely. Under high-load situations where all of the instances of the pool are in use, then, requests could back up indefinitely waiting for a JRuby instance to become available.

      In order to bound the amount of time that a borrow attempt could take, a borrow-timeout setting should be made available to the user to configure the maximum wait time. A reasonably high value should be used as the default, however, to avoid introducing large numbers of request failures for "normal" cases where a master might be experiencing temporary traffic spikes. This ticket proposes that a 20 minute maximum be used as the default value.

      The work for this ticket was already done on the Puppet Server master branch – in SERVER-246 and SERVER-389. This ticket basically just tracks the backport of the borrow-timeout functionality to the Puppet Server stable branch for inclusion in a 1.x release.
      Risk assessment: Low (QA will not perform any validation)
      Probability: Low
      Severity: Low (generally only affects a single puppet agent run)


          Issue Links



              • Assignee:
                qa qa
                chris Chris Price
                QA Contact:
                Erik Dasher
              • Votes:
                0 Vote for this issue
                2 Start watching this issue


                • Created:

                  Zendesk Support