`foreman-installer` broken after updating `puppet-agent` (The parameter '$slowlog_log_slower_than' must be a literal type, not a Puppet::Pops::Model::AccessExpression)

Problem:
Updating the package puppet-agent on EL8 breaks the foreman-installer.
When foreman-installer is run, it breaks off with the following error:

2024-02-28 14:06:21 [ERROR ] [root] Error: The parameter '$slowlog_log_slower_than' must be a literal type, not a Puppet::Pops::Model::AccessExpression (file: /usr/share/foreman-installer/modules/redis/manifests/init.pp, line: 426, column: 15) on node myforemanserver.my.org

Before updating the package puppet-agent, the foreman-installer runs correctly.

Expected outcome:
Updating puppet-agent should not break foreman-installer.

Foreman and Proxy versions:
3.9.1

Foreman and Proxy plugin versions:
foreman-tasks: 9.0.1
foreman_ansible: 13.0.3
foreman_leapp 1.1.1
foreman_remote_execution: 12.0.5
katello: 4.11.0

Distribution and version:
Rocky Linux release 8.9 (Green Obsidian)

Other relevant data:

# dnf update puppet-agent
Last metadata expiration check: 2:06:44 ago on Mi 28 Feb 2024 12:06:11 CET.
Dependencies resolved.
==============================================================================================================================================================================================================================================
 Package                                                     Architecture                                          Version                                                       Repository                                              Size
==============================================================================================================================================================================================================================================
Upgrading:
 puppet-agent                                                x86_64                                                7.29.0-1.el8                                                  puppet7                                                 22 M

Transaction Summary
==============================================================================================================================================================================================================================================
Upgrade  1 Package

Total download size: 22 M
Is this ok [y/N]: y
Downloading Packages:
puppet-agent-7.29.0-1.el8.x86_64.rpm                                                                                                                                                                           28 MB/s |  22 MB     00:00    
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                                                          28 MB/s |  22 MB     00:00     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                                                                      1/1 
  Running scriptlet: puppet-agent-7.29.0-1.el8.x86_64                                                                                                                                                                                     1/1 
  Running scriptlet: puppet-agent-7.29.0-1.el8.x86_64                                                                                                                                                                                     1/2 
  Upgrading        : puppet-agent-7.29.0-1.el8.x86_64                                                                                                                                                                                     1/2 
  Running scriptlet: puppet-agent-7.29.0-1.el8.x86_64                                                                                                                                                                                     1/2 
  Running scriptlet: puppet-agent-7.27.0-1.el8.x86_64                                                                                                                                                                                     2/2 
  Cleanup          : puppet-agent-7.27.0-1.el8.x86_64                                                                                                                                                                                     2/2 
  Running scriptlet: puppet-agent-7.27.0-1.el8.x86_64                                                                                                                                                                                     2/2 
  Running scriptlet: puppet-agent-7.29.0-1.el8.x86_64                                                                                                                                                                                     2/2 
  Running scriptlet: puppet-agent-7.27.0-1.el8.x86_64                                                                                                                                                                                     2/2 
  Verifying        : puppet-agent-7.29.0-1.el8.x86_64                                                                                                                                                                                     1/2 
  Verifying        : puppet-agent-7.27.0-1.el8.x86_64                                                                                                                                                                                     2/2 

Upgraded:
  puppet-agent-7.29.0-1.el8.x86_64                                                                                                                                                                                                            

Complete!
# foreman-installer
2024-02-28 14:14:26 [NOTICE] [root] Loading installer configuration. This will take some time.
Could not get default values, check log file at /var/log/foreman-installer/katello.log for more information
2024-02-28 14:14:29 [ERROR ] [root] echo '
        $kafo_config_file="/etc/foreman-installer/scenarios.d/katello.yaml"
                kafo_configure::puppet_version_semver { "puppetlabs-apache":
          requirement => ">= 7.9.0 < 9.0.0",
        }

        kafo_configure::puppet_version_semver { "puppetlabs-apt":
          requirement => ">= 7.0.0 < 9.0.0",
        }

        kafo_configure::puppet_version_semver { "katello-candlepin":
          requirement => ">= 7.0.0 < 9.0.0",
        }

        kafo_configure::puppet_version_semver { "katello-certs":
          requirement => ">= 7.0.0 < 9.0.0",
        }

        kafo_configure::puppet_version_semver { "puppetlabs-concat":
          requirement => ">= 7.0.0 < 9.0.0",
        }

        kafo_configure::puppet_version_semver { "theforeman-dhcp":
          requirement => ">= 7.0.0 < 9.0.0",
        }

        kafo_configure::puppet_version_semver { "theforeman-dns":
          requirement => ">= 7.0.0 < 9.0.0",
        }

        kafo_configure::puppet_version_semver { "puppet-extlib":
          requirement => ">= 7.0.0 < 9.0.0",
        }

        kafo_configure::puppet_version_semver { "theforeman-foreman":
          requirement => ">= 7.0.0 < 9.0.0",
        }

        kafo_configure::puppet_version_semver { "theforeman-foreman_proxy":
          requirement => ">= 7.0.0 < 9.0.0",
        }

        kafo_configure::puppet_version_semver { "katello-foreman_proxy_content":
          requirement => ">= 7.0.0 < 9.0.0",
        }

        kafo_configure::puppet_version_semver { "puppetlabs-inifile":
          requirement => ">= 7.0.0 < 9.0.0",
        }

        kafo_configure::puppet_version_semver { "katello-katello":
          requirement => ">= 7.0.0 < 9.0.0",
        }

        kafo_configure::puppet_version_semver { "puppet-mosquitto":
          requirement => ">= 7.0.0 < 9.0.0",
        }

        kafo_configure::puppet_version_semver { "puppetlabs-postgresql":
          requirement => ">= 7.0.0 < 9.0.0",
        }

        kafo_configure::puppet_version_semver { "theforeman-pulpcore":
          requirement => ">= 7.0.0 < 9.0.0",
        }

        kafo_configure::puppet_version_semver { "theforeman-puppet":
          requirement => ">= 7.0.0 < 9.0.0",
        }

        kafo_configure::puppet_version_semver { "theforeman-puppetserver_foreman":
          requirement => ">= 7.0.0 < 9.0.0",
        }

        kafo_configure::puppet_version_semver { "katello-qpid":
          requirement => ">= 7.0.0 < 9.0.0",
        }

        kafo_configure::puppet_version_semver { "puppet-redis":
          requirement => ">= 7.0.0 < 9.0.0",
        }

        kafo_configure::puppet_version_semver { "puppetlabs-stdlib":
          requirement => ">= 7.0.0 < 9.0.0",
        }

        kafo_configure::puppet_version_semver { "puppet-systemd":
          requirement => ">= 7.0.0 < 9.0.0",
        }

        kafo_configure::puppet_version_semver { "theforeman-tftp":
          requirement => ">= 7.0.0 < 9.0.0",
        }

        kafo_configure::puppet_version_semver { "puppet-trusted_ca":
          requirement => ">= 7.0.0 < 9.0.0",
        }

        kafo_configure::puppet_version_semver { "puppetlabs-vcsrepo":
          requirement => ">= 7.0.0 < 9.0.0",
        }

        kafo_configure::puppet_version_semver { "theforeman-kafo_configure":
          requirement => ">= 4.5.0 < 8.0.0",
        }

                  include certs::params include foreman::params include foreman::cli::params include foreman_proxy::params include foreman_proxy_content::params include foreman_proxy::plugin::ansible::params include foreman_proxy::plugin::discovery::params include foreman_proxy::plugin::salt::params include katello::params include puppet::params
          class { '::kafo_configure::dump_values':
            lookups   => ["apache::mod::status::requires","certs::server_cert","certs::server_key","certs::server_cert_req","certs::server_ca_cert","certs::tar_file","foreman::unattended_url","foreman::db_host","foreman::db_port","foreman::db_sslmode","foreman::db_root_cert","foreman::server_ssl_protocol","foreman::initial_admin_first_name","foreman::initial_admin_last_name","foreman::initial_admin_email","foreman::initial_admin_locale","foreman::initial_admin_timezone","foreman::initial_organization","foreman::initial_location","foreman::http_keytab","foreman::websockets_ssl_key","foreman::websockets_ssl_cert","foreman::logging_layout","foreman::email_delivery_method","foreman::email_sendmail_location","foreman::email_sendmail_arguments","foreman::email_smtp_address","foreman::email_smtp_domain","foreman::email_smtp_user_name","foreman::email_smtp_password","foreman::email_reply_address","foreman::email_subject_prefix","foreman::dynflow_redis_url","foreman::foreman_service_puma_threads_min","foreman::foreman_service_puma_workers","foreman::provisioning_ct_location","foreman::provisioning_fcct_location","foreman::cli::foreman_url","foreman::cli::username","foreman::cli::password","foreman::cli::ssl_ca_file","foreman::plugin::remote_execution::cockpit::ensure","foreman_proxy::foreman_ssl_ca","foreman_proxy::foreman_ssl_cert","foreman_proxy::foreman_ssl_key","foreman_proxy::puppetca_certificate","foreman_proxy::tftp_dirs","foreman_proxy::tftp_servername","foreman_proxy::dhcp_search_domains","foreman_proxy::dhcp_gateway","foreman_proxy::dhcp_range","foreman_proxy::dhcp_pxeserver","foreman_proxy::dhcp_ipxefilename","foreman_proxy::dhcp_network","foreman_proxy::dhcp_netmask","foreman_proxy::dhcp_key_name","foreman_proxy::dhcp_key_secret","foreman_proxy::dhcp_peer_address","foreman_proxy::dns_reverse","foreman_proxy::registered_proxy_url","foreman_proxy::registration_url","foreman_proxy_content::pulpcore_django_secret_key","foreman_proxy_content::pulpcore_cache_expires_ttl","foreman_proxy_content::pulpcore_import_workers_percent","foreman_proxy::plugin::acd::version","foreman_proxy::plugin::dhcp::infoblox::username","foreman_proxy::plugin::dhcp::infoblox::password","foreman_proxy::plugin::dhcp::remote_isc::key_name","foreman_proxy::plugin::dhcp::remote_isc::key_secret","foreman_proxy::plugin::discovery::version","foreman_proxy::plugin::dns::infoblox::dns_server","foreman_proxy::plugin::dns::infoblox::username","foreman_proxy::plugin::dns::infoblox::password","foreman_proxy::plugin::dns::powerdns::rest_api_key","foreman_proxy::plugin::dns::route53::aws_access_key","foreman_proxy::plugin::dns::route53::aws_secret_key","foreman_proxy::plugin::monitoring::version","foreman_proxy::plugin::openscap::version","foreman_proxy::plugin::openscap::proxy_name","foreman_proxy::plugin::remote_execution::script::ssh_log_level","foreman_proxy::plugin::remote_execution::script::mqtt_ttl","foreman_proxy::plugin::remote_execution::script::mqtt_rate_limit","foreman_proxy::plugin::remote_execution::script::mqtt_resend_interval","foreman_proxy::plugin::salt::group","foreman_proxy::plugin::shellhooks::version","katello::candlepin_oauth_key","katello::candlepin_oauth_secret","katello::candlepin_db_port","katello::candlepin_db_password","katello::candlepin_db_ssl_ca","puppet::run_hour","puppet::run_minute","puppet::server_puppetserver_telemetry","puppet::server_acceptor_threads","puppet::server_selector_threads","puppet::server_ssl_acceptor_threads","puppet::server_ssl_selector_threads","puppet::server_max_threads","puppet::server_versioned_code_id","puppet::server_versioned_code_content"],
            variables => ["certs::params::node_fqdn","certs::params::cname","certs::params::ca_common_name","certs::params::pki_dir","foreman::params::foreman_url","foreman::params::servername","foreman::params::db_password","foreman::params::server_ssl_ca","foreman::params::server_ssl_chain","foreman::params::server_ssl_cert","foreman::params::server_ssl_key","foreman::params::server_ssl_crl","foreman::params::client_ssl_ca","foreman::params::client_ssl_cert","foreman::params::client_ssl_key","foreman::params::oauth_consumer_key","foreman::params::oauth_consumer_secret","foreman::params::oauth_effective_user","foreman::params::initial_admin_password","foreman::params::client_ssl_ca","foreman::params::client_ssl_cert","foreman::params::client_ssl_key","foreman_proxy::params::ssl_ca","foreman_proxy::params::ssl_cert","foreman_proxy::params::ssl_key","foreman_proxy::params::trusted_hosts","foreman_proxy::params::ssldir","foreman_proxy::params::puppetdir","foreman_proxy::params::autosignfile","foreman_proxy::params::puppet_url","foreman_proxy::params::ssl_ca","foreman_proxy::params::ssl_cert","foreman_proxy::params::ssl_key","foreman_proxy::params::template_url","foreman_proxy::params::tftp_root","foreman_proxy::params::dhcp_option_domain","foreman_proxy::params::dhcp_interface","foreman_proxy::params::dhcp_config","foreman_proxy::params::dhcp_leases","foreman_proxy::params::dhcp_failover_address","foreman_proxy::params::dhcp_manage_acls","foreman_proxy::params::dns_interface","foreman_proxy::params::dns_zone","foreman_proxy::params::dns_tsig_keytab","foreman_proxy::params::dns_tsig_principal","foreman_proxy::params::realm_keytab","foreman_proxy::params::realm_principal","foreman_proxy::params::keyfile","foreman_proxy::params::foreman_base_url","foreman_proxy::params::registered_name","foreman_proxy::params::oauth_consumer_key","foreman_proxy::params::oauth_consumer_secret","foreman_proxy_content::params::pulpcore_postgresql_password","foreman_proxy_content::params::pulpcore_worker_count","foreman_proxy::plugin::ansible::params::enabled","foreman_proxy::plugin::ansible::params::listen_on","foreman_proxy::plugin::ansible::params::ansible_dir","foreman_proxy::plugin::ansible::params::working_dir","foreman_proxy::plugin::ansible::params::host_key_checking","foreman_proxy::plugin::ansible::params::roles_path","foreman_proxy::plugin::ansible::params::ssh_args","foreman_proxy::plugin::ansible::params::install_runner","foreman_proxy::plugin::ansible::params::callback","foreman_proxy::plugin::ansible::params::runner_package_name","foreman_proxy::plugin::ansible::params::collections_paths","foreman_proxy::plugin::discovery::params::install_images","foreman_proxy::plugin::discovery::params::tftp_root","foreman_proxy::plugin::discovery::params::source_url","foreman_proxy::plugin::discovery::params::image_name","foreman_proxy::plugin::salt::params::autosign_file","foreman_proxy::plugin::salt::params::autosign_key_file","foreman_proxy::plugin::salt::params::enabled","foreman_proxy::plugin::salt::params::listen_on","foreman_proxy::plugin::salt::params::user","foreman_proxy::plugin::salt::params::api","foreman_proxy::plugin::salt::params::api_url","foreman_proxy::plugin::salt::params::api_auth","foreman_proxy::plugin::salt::params::api_username","foreman_proxy::plugin::salt::params::api_password","foreman_proxy::plugin::salt::params::saltfile","puppet::params::version","puppet::params::user","puppet::params::group","puppet::params::dir","puppet::params::codedir","puppet::params::vardir","puppet::params::logdir","puppet::params::rundir","puppet::params::ssldir","puppet::params::sharedir","puppet::params::manage_packages","puppet::params::dir_owner","puppet::params::dir_group","puppet::params::package_provider","puppet::params::package_install_options","puppet::params::package_source","puppet::params::agent_server_port","puppet::params::splay","puppet::params::splaylimit","puppet::params::autosign","puppet::params::autosign_entries","puppet::params::autosign_mode","puppet::params::autosign_content","puppet::params::autosign_source","puppet::params::runinterval","puppet::params::usecacheonfailure","puppet::params::runmode","puppet::params::unavailable_runmodes","puppet::params::cron_cmd","puppet::params::systemd_cmd","puppet::params::systemd_randomizeddelaysec","puppet::params::agent_noop","puppet::params::agent_default_schedules","puppet::params::show_diff","puppet::params::module_repository","puppet::params::http_connect_timeout","puppet::params::http_read_timeout","puppet::params::ca_server","puppet::params::ca_port","puppet::params::ca_crl_filepath","puppet::params::certificate_revocation","puppet::params::prerun_command","puppet::params::postrun_command","puppet::params::dns_alt_names","puppet::params::use_srv_records","puppet::params::srv_domain","puppet::params::pluginsource","puppet::params::pluginfactsource","puppet::params::additional_settings","puppet::params::agent_additional_settings","puppet::params::agent_restart_command","puppet::params::classfile","puppet::params::hiera_config","puppet::params::localconfig","puppet::params::allow_any_crl_auth","puppet::params::auth_allowed","puppet::params::client_package","puppet::params::agent","puppet::params::report","puppet::params::client_certname","puppet::params::agent_server_hostname","puppet::params::systemd_unit_name","puppet::params::service_name","puppet::params::syslogfacility","puppet::params::environment","puppet::params::server","puppet::params::server_admin_api_allowlist","puppet::params::manage_user","puppet::params::user","puppet::params::group","puppet::params::dir","puppet::params::ip","puppet::params::agent_server_port","puppet::params::server_ca","puppet::params::server_ca_crl_sync","puppet::params::server_crl_enable","puppet::params::server_ca_auth_required","puppet::params::server_ca_client_self_delete","puppet::params::server_ca_client_allowlist","puppet::params::server_custom_trusted_oid_mapping","puppet::params::server_http","puppet::params::server_http_port","puppet::params::server_reports","puppet::params::server_puppetserver_dir","puppet::params::server_puppetserver_vardir","puppet::params::server_puppetserver_rundir","puppet::params::server_puppetserver_logdir","puppet::params::server_puppetserver_version","puppet::params::server_external_nodes","puppet::params::server_trusted_external_command","puppet::params::server_cipher_suites","puppet::params::server_connect_timeout","puppet::params::server_git_repo","puppet::params::server_default_manifest","puppet::params::server_default_manifest_path","puppet::params::server_default_manifest_content","puppet::params::server_environments_owner","puppet::params::server_environments_group","puppet::params::server_environments_mode","puppet::params::server_environments_recurse","puppet::params::server_envs_dir","puppet::params::server_envs_target","puppet::params::server_common_modules_path","puppet::params::server_git_repo_hook_mode","puppet::params::server_git_repo_path","puppet::params::server_git_repo_umask","puppet::params::server_git_repo_group","puppet::params::server_git_repo_user","puppet::params::server_git_branch_map","puppet::params::server_idle_timeout","puppet::params::server_post_hook_content","puppet::params::server_post_hook_name","puppet::params::server_storeconfigs","puppet::params::server_ruby_load_paths","puppet::params::server_ssl_dir","puppet::params::server_ssl_dir_manage","puppet::params::server_ssl_key_manage","puppet::params::server_ssl_protocols","puppet::params::server_ssl_chain_filepath","puppet::params::server_package","puppet::params::server_version","puppet::params::server_certname","puppet::params::server_request_timeout","puppet::params::server_strict_variables","puppet::params::server_additional_settings","puppet::params::server_foreman","puppet::params::server_foreman_url","puppet::params::server_foreman_ssl_ca","puppet::params::server_foreman_ssl_cert","puppet::params::server_foreman_ssl_key","puppet::params::server_foreman_facts","puppet::params::server_puppet_basedir","puppet::params::server_parser","puppet::params::server_environment_timeout","puppet::params::server_jvm_java_bin","puppet::params::server_jvm_config","puppet::params::server_jvm_min_heap_size","puppet::params::server_jvm_max_heap_size","puppet::params::server_jvm_extra_args","puppet::params::server_jvm_cli_args","puppet::params::server_jruby_gem_home","puppet::params::server_environment_vars","puppet::params::server_max_active_instances","puppet::params::server_max_requests_per_instance","puppet::params::server_max_queued_requests","puppet::params::server_max_retry_delay","puppet::params::server_multithreaded","puppet::params::server_check_for_updates","puppet::params::server_environment_class_cache_enabled","puppet::params::server_allow_header_cert_info","puppet::params::server_web_idle_timeout","puppet::params::server_metrics_jmx_enable","puppet::params::server_metrics_graphite_enable","puppet::params::server_metrics_graphite_host","puppet::params::server_metrics_graphite_port","puppet::params::server_metrics_server_id","puppet::params::server_metrics_graphite_interval","puppet::params::server_metrics_allowed","puppet::params::server_puppetserver_experimental","puppet::params::server_puppetserver_auth_template","puppet::params::server_puppetserver_trusted_agents","puppet::params::server_puppetserver_trusted_certificate_extensions","puppet::params::server_compile_mode","puppet::params::server_ca_allow_sans","puppet::params::server_ca_allow_auth_extensions","puppet::params::server_ca_enable_infra_crl","puppet::params::server_max_open_files","puppet::params::puppetconf_mode"],
          }

      ' | RUBYLIB=/usr/share/gems/gems/kafo-7.3.0/lib/kafo/../..//modules: /opt/puppetlabs/bin/puppet apply --config=/tmp/kafo_installation20240228-3519-1bzo01s/puppet.conf 
2024-02-28 14:14:29 [ERROR ] [root] Error: The parameter '$slowlog_log_slower_than' must be a literal type, not a Puppet::Pops::Model::AccessExpression (file: /usr/share/foreman-installer/modules/redis/manifests/init.pp, line: 426, column: 15) on node myforemanserver.my.org

2024-02-28 14:14:29 [ERROR ] [root] Could not get default values, cannot continue

This is already known as a bug in this puppet release: Puppet 7.29.0/8.5.0 breaks our installer

2 Likes

Hi Tony,

I hit the same issue as you. To recover from it:

  1. dnf downgrade puppet puppetdb puppetdb-termini puppetserver

  2. Foreman-installer

The installer should run clean after that.

2 Likes

I understand that for the time being, there is no solution, other than not updating puppet-agent, right?

Yes, if it is only Foreman. If you run also Puppetserver, this should also not be updated.

I would recommend an exclude in the dnf configuration like excludepkgs=puppet-agent-7.29.0*,puppet-agent-8.5.0* so dnf will take care of ignoring the package.

1 Like

Thanks for this, just encountered this error when trying to set up a new foreman server to replace our old… Saved me some headache :slight_smile:

1 Like

I can confirm that the dnf updates to puppet puppetdb puppetdb-termini puppetserver on foreman 3.9.1 / katello 4.11.0 / CentOS 8 Stream no longer cause an issue with foreman-installer for me.

1 Like

This issue does no longer exist.
The underlying issue has been resolved.
dnf update can now be run normally.