Longer-term, we need to make some more refined adjustments to the algorithm / process that Puppet Server uses to calculate the default max-active-instances for JRubies. The details of the longer-term plans are covered by
For the forthcoming release of 1.X Puppet Server, however, we need to at least make a targeted improvement which caps this default number at a value that should be safer to use with the default 2Gb JVM Heap which is configured.
For the next release, this ticket proposes changing default-pool-size in "jruby_puppet_core.clj" from...
The above would ensure that by default the number of JRubies would never exceed 4 and would never exceed 1 less the number of cores on the node. The latter would be useful for ensuring that the master doesn't consume every available core on the node under high workload situations, at least by default.
Risk assessment: Medium (QA will perform functional review, but no automated testing)
Probability: Low (small simple code change)
Severity: Low (High, could cause OOM errors)