PE known issues

These are the known issues in PE 2021.7.

Installation and upgrade known issues

These are the known issues for installation and upgrade in this release.

Puppet Server JVM segfaults during RHEL 7 to RHEL 8 migration

During migration of PE from Red Hat Enterprise Linux (RHEL) 7 to RHEL 8, if your puppetlabs-stdlib module version is older than 9.1.0, the puppetserver Java Virtual Machine (JVM) might experience segfaults at seemingly random intervals. This issue is caused by underlying logic related to password hashing. To avoid this problem, upgrade the puppetlabs-stdlib module to version 9.1.0 or newer.

Converting legacy compilers fails with an external certificate authority

If you use an external certificate authority (CA), the puppet infrastructure run convert_legacy_compiler command fails with an error during the certificate-signing step.
Agent_cert_regen: ERROR: Failed to regenerate agent certificate on node <compiler-node.domain.com>
Agent_cert_regen: bolt/run-failure:Plan aborted: run_task 'enterprise_tasks::sign' failed on 1 target
Agent_cert_regen: puppetlabs.sign/sign-cert-failed Could not sign request for host with certname <compiler-node.domain.com> using caserver <master-host.domain.com>
To work around this issue when it appears:
  1. Log on to the CA server and manually sign certificates for the compiler.
  2. On the compiler, run Puppet: puppet agent -t
  3. Unpin the compiler from PE Master group, either from the console, or from the CLI using the command: /opt/puppetlabs/bin/puppet resource pe_node_group "PE Master" unpinned="<COMPILER_FQDN>"
  4. On your primary server, in the pe.conf file, remove the entry puppet_enterprise::profile::database::private_temp_puppetdb_host
  5. If you have an external PE-PostgreSQL node, run Puppet on that node: puppet agent -t
  6. Run Puppet on your primary server: puppet agent -t
  7. Run Puppet on all compilers: puppet agent -t

Converted compilers can slow PuppetDB in multi-region installations

In configurations that rely on high-latency connections between your primary servers and compilers – for example, in multi-region installations – converted compilers running the PuppetDB service might experience significant slowdowns. If your primary server and compilers are distributed among multiple data centers connected by high-latency links or congested network segments, reach out to Support for guidance before converting legacy compilers.

Disaster recovery known issues

These are the known issues for disaster recovery in this release.

Provisioning a replica may occasionally fail due to a race condition

During provisioning of a replica, with either the puppet infra provision replica or puppet infra run enable_ha_failover commands, when the subscription on the replica is established, the Puppet agent does not wait for the subscription initialization to complete and lets it run in the background. This can result in a race condition in which pglogical is performing a pg_restore on the database structure while the Puppet agent is simultaneously making other database changes. This can cause a variety of error signatures, but typically shows as ERROR: tuple concurrently updated in the PostgreSQL log. However, running into this issue is relatively rare. If you run into this issue:
  1. Run puppet infra run reinitialize replica on the replica node.
  2. Unpin the replica from the PE Infrastructure Agent node group.
  3. Run puppet agent -t on the primary and replica until no changes are observed.
  4. Wait for puppet infra status to show all services are operating normally.
  5. Run puppet infra enable replica if desired.

FIPS known issues

These are the known issues with FIPS-enabled PE in this release.

FIPS-enabled PE 2021.7 and later can't use the default system cert store

PE 2021.7 and later FIPS builds can't use the default system cert store, which is used automatically with some reporting services. This setting is configured by the report_include_system_store Puppet parameter that ships with PE.

Removing the puppet-cacerts file (located at /opt/puppetlabs/puppet/ssl/puppet-cacerts) can allow a report processor that eagerly loads the system store to continue with a warning that the file is missing.

If HTTP clients require external certs, we recommend using a custom cert store containing only the necessary certs. You can create this cert store by concatenating existing pem files and configuring the ssl_trust_store Puppet parameter to point to the new cert store.

Puppet Server FIPS installations don’t support Ruby’s OpenSSL module

FIPS-enabled PE installations don't support extensions or modules that use the standard Ruby Open SSL library, such as hiera-eyaml. As a workaround, you can use a non-FIPS-enabled primary server with FIPS-enabled agents, which limits the issue to situations where only the primary uses the Ruby library. This limitation does not apply to versions 1.1.0 and later of the splunk_hec module, which supports FIPS-enabled servers. The FIPS Mode section of the module's Forge page explains the limitations of running this module in a FIPS environment.

Configuration and maintenance known issues

These are the known issues for configuration and maintenance in this release.

SAML Organization URL accepts invalid values

When you Connect to a SAML identity provider, make sure the Organization URL is a valid, well-formed URL. Supplying an invalid value does not produce a field validation error, but it does cause the following error at login: Invalid settings: organization_not_enough_data.

puppet infrastructure tune fails with multi-environment environmentpath

The puppet infrastructure tune command fails if environmentpath (in your puppet.conf file) is set to multiple environments. To avoid the failure, comment out this setting before running this command. For details about the environmentpath setting, refer to environmentpath in the open source Puppet documentation.

Restarting or running Puppet on infrastructure nodes can trigger an illegal reflective access operation warning

When restarting PE services or performing agent runs on infrastructure nodes, you might see this warning in the command-line output or logs: Illegal reflective access operation ... All illegal access operations will be denied in a future release

These warnings are internal to PE service components and have no impact on their functionality. You can safely disregard them.

Orchestration services known issues

These are the known issues for the orchestration services in this release.

There are no known issues related to orchestration services at this time.

Console and console services known issues

These are the known issues for the console and console services in this release.

Node groups visibility issue for non-admin users

In PE version 2021.7.3 and later, non-admin console users might encounter an error when trying to view the groups of a node. This happens if a node is part of multiple groups and the user doesn't have permission to view some of those groups. In such cases, when clicking on the node's Groups tab, users see an error message indicating they lack the required permissions.

Patching known issues

These are the known issues for patching in this release.

Patching fails with excluded YUM packages

In the patching task or plan, using yum_params to pass the --exclude flag in order to exclude certain packages can result in task or plan failure if the only packages requiring updates are excluded. As a workaround, use the versionlock command (which requires installing the yum-plugin-versionlock package) to lock the packages you want to exclude at their current version. Alternatively, you can fix a package at a particular version by specifying the version with a package resource for a manifest that applies to the nodes to be patched.

Code management known issues

These are the known issues for Code Manager, r10k, and file sync in this release.

Changing a file type in a control repo produces a checkout conflict error

Changing a file type in a control repository – for example, deleting a file and replacing it with a directory of the same name – generates the error JGitInternalException: Checkout conflict with files accompanied by a stack trace in the Puppet Server log. As a workaround, deploy the control repo with the original file deleted, and then deploy again with the replacement file or directory.

Code Manager and r10k do not identify the default branch for module repositories

When you use Code Manager or r10k to deploy modules from a Git source, the default branch of the source repository is always assumed to be main. If the module repository uses a default branch that is not main, an error occurs. To work around this issue, specify the default branch with the ref: key in your Puppetfile.

The toggle lockless deploys plan does not configure the replica in disaster recovery architecture

The toggle_lockless_deploys plan does not properly switch over a replica in disaster recovery to have lockless deploys because doing so requires updating Hiera data. Users who already have disaster recovery enabled and are toggling lockless deploys are recommended to update their pe.conf after running the plan.

The toggle lockless deploys plan runs some actions verbosely, and failures are expected while polling for changes

While polling for changes, do not prematurely abort the toggle_lockless_deploys plan run if you see errors on the console. Wait until the plan fully completes before assessing whether the failures were an expected part of polling for changes or not.

The toggle lockless deploys plan does not support Ubuntu 18.04

The toggle_lockless_deploys plan currently supports Ubuntu 20.04 and 22.04. The plan supports Ubuntu 18.04 in the next release.