<commit_before>---
layout: default
title: "Puppet Server: Release Notes"
canonical: "/puppetserver/latest/release_notes.html"
---

[layout]: https://github.com/puppetlabs/puppet-specifications/blob/2818c90163837ae6a45eb070cf9f6edfb39a1e3f/file_paths.md
[pup4install]: /puppet/latest/reference/install_linux.html
[semver]: http://semver.org/
[configuration directory]: /puppet/latest/reference/dirs_confdir.html
[code directory]: /puppet/latest/reference/dirs_codedir.html
[cache directory]: /puppet/latest/reference/dirs_vardir.html
[Configuration documentation]: ./configuration.html
[deprecated]: ./deprecated_features.html
[Puppet `auth.conf` file]: /puppet/latest/reference/config_file_auth.html
[`auth.conf`]: ./config_file_auth.html
[`ca.conf`]: ./config_file_ca.html
[`master.conf`]: ./config_file_master.html
[`puppetserver.conf`]: ./config_file_puppetserver.html

## Puppet Server 2.2.0

Released November 18, 2015.

### Supported Platforms

* Enterprise Linux 7
* Enterprise Linux 6
* Ubuntu 14.04
* Ubuntu 12.04
* Debian 8
* Debian 7

### Bug Fixes

#### `max-requests-per-instance` Setting No Longer Leaks Memory

When using the optional `max-requests-per-instance` setting in [`puppetserver.conf`][], Puppet Server should flush the JRuby instance from memory and replaced with a fresh instance after serving a number of requests defined by that setting. This should be useful when dealing with memory leaks in module code.

However, the outgoing JRuby instances were not being flushed as expected during garbage collection, resulting in Puppet Server leaking memory. This could destabilize the server after a sufficient number of replacement cycles.

Puppet Server 2.2.0 resolves this issue by properly flushing the JRuby instance after serving the configured number of requests.

* [SERVER-1006](https://tickets.puppetlabs.com/browse/SERVER-1006)

### What's New

#### New Authentication Method and `auth.conf` Format

Puppet Server 2.2.0 introduces support for the Clojure [`trapperkeeper-authorization`][] as a replacement for the [deprecated][] Ruby authentication system that uses the [Puppet `auth.conf` file][]. This also provides new authentication options for administration, certificate status, and certification authority endpoints.

If you enable this new authentication method, you must convert any custom authorization rules and settings to [the new HOCON-based format][`auth.conf`]. For more information on these new features, instructions on enabling them, and help converting authorization rules, see the updated [Configuration documentation][] and [`auth.conf` documentation][`auth.conf`].

* [SERVER-111](https://tickets.puppetlabs.com/browse/SERVER-111) - auth.conf replacement 
* [SERVER-763](https://tickets.puppetlabs.com/browse/SERVER-763) - Add allow-header-cert-info authorization support to all Puppet Server service APIs

### Deprecated Features

For detailed information about features deprecated in Puppet Server 2.2, see the new [Deprecated Features documentation][deprecated].

#### Ruby Authorization Methods and `auth.conf` Format

With the new authentication methods introduced in Puppet Server 2.2.0, the legacy [`auth.conf`][] rules and configuration file format are [deprecated][].

#### `certificate-authority` and `puppet-admin` Settings

The [`ca.conf`][] and [`master.conf`][] configuration files and their settings are now either [deprecated][] or provided by the new authentication methods and `auth.conf` format.

### All Changes

* [All Puppet Server tickets targeted at this release](https://tickets.puppetlabs.com/issues/?jql=project%20%3D%20SERVER%20AND%20fixVersion%20%3D%20%22SERVER%202.2.0%22)

## Puppet Server 2.1.3

Released November 18, 2015.

This release fixes the [`max-requests-per-instance` memory leak issue](#max-requests-per-instance-causes-a-memory-leak) bug. It adds no further support or functionality.

* [SERVER-1006](https://tickets.puppetlabs.com/browse/SERVER-1006)

## Puppet Server 2.1.2

Released October 19, 2015.

### Supported Platforms

Puppet Server 2.1.2 supports the following platforms:

* Enterprise Linux 7
* Enterprise Linux 6
* Ubuntu 14.04
* Ubuntu 12.04
* Debian 8
* Debian 7

### Known Issues

#### `max-requests-per-instance` Causes a Memory Leak 

When using the optional `max-requests-per-instance` setting in [`puppetserver.conf`](./configuration.html#puppetserverconf), Puppet Server should flush the JRuby instance from memory and replaced with a fresh instance after serving a number of requests defined by that setting. This can be handy when dealing with memory leaks in module code.

However, the outgoing JRuby instances are not flushed as expected during garbage collection, resulting in Puppet Server causing a memory leak that could destabilize the server after a sufficient number of replacement cycles.

This issue is resolved in Puppet Server 2.2.0 and 2.1.3. You can also avoid this issue by setting `max-requests-per-instance` to 0. If you're actively mitigating other memory leaks via the `max-active-instances` setting, you can replace the `max-requests-per-instance` behavior with a cron job that regularly flushes the entire JRuby pool, such as:

~~~ bash
curl -X DELETE \
  --cacert /etc/puppetlabs/puppet/ssl/certs/ca.pem \
  --cert /etc/puppetlabs/puppet/ssl/certs/pe-internal-classifier.pem \
  --key /etc/puppetlabs/puppet/ssl/private_keys/pe-internal-classifier.pem \
  https://<master hostname>:8140/puppet-admin-api/v1/jruby-pool
~~~

* [SERVER-1006](https://tickets.puppetlabs.com/browse/SERVER-1006)

### Bug Fixes

#### Make Certificate Authority and Master Private Keys Inaccessible to "World" Users
<commit_msg>(docs) Remove 2.1.3 note and shift release date.<commit_after>---
layout: default
title: "Puppet Server: Release Notes"
canonical: "/puppetserver/latest/release_notes.html"
---

[layout]: https://github.com/puppetlabs/puppet-specifications/blob/2818c90163837ae6a45eb070cf9f6edfb39a1e3f/file_paths.md
[pup4install]: /puppet/latest/reference/install_linux.html
[semver]: http://semver.org/
[configuration directory]: /puppet/latest/reference/dirs_confdir.html
[code directory]: /puppet/latest/reference/dirs_codedir.html
[cache directory]: /puppet/latest/reference/dirs_vardir.html
[Configuration documentation]: ./configuration.html
[deprecated]: ./deprecated_features.html
[Puppet `auth.conf` file]: /puppet/latest/reference/config_file_auth.html
[`auth.conf`]: ./config_file_auth.html
[`ca.conf`]: ./config_file_ca.html
[`master.conf`]: ./config_file_master.html
[`puppetserver.conf`]: ./config_file_puppetserver.html

## Puppet Server 2.2.0

Released November 19, 2015.

### Supported Platforms

* Enterprise Linux 7
* Enterprise Linux 6
* Ubuntu 14.04
* Ubuntu 12.04
* Debian 8
* Debian 7

### Bug Fixes

#### `max-requests-per-instance` Setting No Longer Leaks Memory

When using the optional `max-requests-per-instance` setting in [`puppetserver.conf`][], Puppet Server should flush the JRuby instance from memory and replaced with a fresh instance after serving a number of requests defined by that setting. This should be useful when dealing with memory leaks in module code.

However, the outgoing JRuby instances were not being flushed as expected during garbage collection, resulting in Puppet Server leaking memory. This could destabilize the server after a sufficient number of replacement cycles.

Puppet Server 2.2.0 resolves this issue by properly flushing the JRuby instance after serving the configured number of requests.

* [SERVER-1006](https://tickets.puppetlabs.com/browse/SERVER-1006)

### What's New

#### New Authentication Method and `auth.conf` Format

Puppet Server 2.2.0 introduces support for the Clojure [`trapperkeeper-authorization`][] as a replacement for the [deprecated][] Ruby authentication system that uses the [Puppet `auth.conf` file][]. This also provides new authentication options for administration, certificate status, and certification authority endpoints.

If you enable this new authentication method, you must convert any custom authorization rules and settings to [the new HOCON-based format][`auth.conf`]. For more information on these new features, instructions on enabling them, and help converting authorization rules, see the updated [Configuration documentation][] and [`auth.conf` documentation][`auth.conf`].

* [SERVER-111](https://tickets.puppetlabs.com/browse/SERVER-111) - auth.conf replacement 
* [SERVER-763](https://tickets.puppetlabs.com/browse/SERVER-763) - Add allow-header-cert-info authorization support to all Puppet Server service APIs

### Deprecated Features

For detailed information about features deprecated in Puppet Server 2.2, see the new [Deprecated Features documentation][deprecated].

#### Ruby Authorization Methods and `auth.conf` Format

With the new authentication methods introduced in Puppet Server 2.2.0, the legacy [`auth.conf`][] rules and configuration file format are [deprecated][].

#### `certificate-authority` and `puppet-admin` Settings

The [`ca.conf`][] and [`master.conf`][] configuration files and their settings are now either [deprecated][] or provided by the new authentication methods and `auth.conf` format.

### All Changes

* [All Puppet Server tickets targeted at this release](https://tickets.puppetlabs.com/issues/?jql=project%20%3D%20SERVER%20AND%20fixVersion%20%3D%20%22SERVER%202.2.0%22)

## Puppet Server 2.1.2

Released October 19, 2015.

### Supported Platforms

Puppet Server 2.1.2 supports the following platforms:

* Enterprise Linux 7
* Enterprise Linux 6
* Ubuntu 14.04
* Ubuntu 12.04
* Debian 8
* Debian 7

### Known Issues

#### `max-requests-per-instance` Causes a Memory Leak 

When using the optional `max-requests-per-instance` setting in [`puppetserver.conf`](./configuration.html#puppetserverconf), Puppet Server should flush the JRuby instance from memory and replaced with a fresh instance after serving a number of requests defined by that setting. This can be handy when dealing with memory leaks in module code.

However, the outgoing JRuby instances are not flushed as expected during garbage collection, resulting in Puppet Server causing a memory leak that could destabilize the server after a sufficient number of replacement cycles.

This issue is resolved in Puppet Server 2.2.0. You can also avoid this issue by setting `max-requests-per-instance` to 0. If you're actively mitigating other memory leaks via the `max-active-instances` setting, you can replace the `max-requests-per-instance` behavior with a cron job that regularly flushes the entire JRuby pool, such as:

~~~ bash
curl -X DELETE \
  --cacert /etc/puppetlabs/puppet/ssl/certs/ca.pem \
  --cert /etc/puppetlabs/puppet/ssl/certs/pe-internal-classifier.pem \
  --key /etc/puppetlabs/puppet/ssl/private_keys/pe-internal-classifier.pem \
  https://<master hostname>:8140/puppet-admin-api/v1/jruby-pool
~~~

* [SERVER-1006](https://tickets.puppetlabs.com/browse/SERVER-1006)

### Bug Fixes

#### Make Certificate Authority and Master Private Keys Inaccessible to "World" Users

{'fraction_non_alphanumeric': 0.10260128704794706, 'fraction_numerical': 0.027644339708148283, 'mean_word_length': 5.069306930693069, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 15, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1769207', 'n_tokens_mistral': 3507, 'n_tokens_neox': 3190, 'n_words': 1125}