Content Settings Missing

Problem:
Maybe I’m losing my marbles but the Content Settings tab is blank. I’m sure it had “stuff” in it before and I honestly don’t know what I could have done to cause the settings to vanish but…

They are gone! All other tabs work correctly.

Foreman and Proxy versions:

  • foreman-2.3.1-1.el7.noarch
  • foreman-proxy-2.3.1-1.el7.noarch

Foreman and Proxy plugin versions:

  • foreman-tasks - 3.0.2
  • foreman_openscap - 4.1.2
  • foreman_remote_execution - 4.2.1
  • katello - 3.18.0

Distribution and version:
CentOS Linux release 7.9.2009 (Core)

Other relevant data:
Is it in any way related to this:

|Jan 06, 02:05:51 PM|WARN|File at /var/lib/pulp/content defined in pulp_content_dir parameter doesn’t exist or is unreadable|
|—|—|—|
|Jan 06, 02:05:51 PM|WARN|File at /var/lib/mongodb defined in mongodb_dir parameter doesn’t exist or is unreadable|

Are there any errors in the browser console? (Right-click the page, then click Inspect, then find Console.)

Does the problem persist after reloading the page, restarting the browser, or restarting foreman services?

@jeremylenz

No errors direct to the browser just the one above in the log file and these errors in the Browser console.

react-dom.production.min.js:187 TypeError: Cannot read property ‘find’ of undefined
at h (SettingsTableHelpers.js:122)
at t.valueToString (SettingsTableHelpers.js:105)
at SettingsTableHelpers.js:134
at Array.reduce ()
at SettingsTableHelpers.js:130
at l (SettingCellInner.js:17)
at Ra (react-dom.production.min.js:148)
at Gs (react-dom.production.min.js:245)
at Ds (react-dom.production.min.js:216)
at Ns (react-dom.production.min.js:210)
Ii @ react-dom.production.min.js:187
SettingsTableHelpers.js:122 Uncaught (in promise) TypeError: Cannot read property ‘find’ of undefined
at h (SettingsTableHelpers.js:122)
at t.valueToString (SettingsTableHelpers.js:105)
at SettingsTableHelpers.js:134
at Array.reduce ()
at SettingsTableHelpers.js:130
at l (SettingCellInner.js:17)
at Ra (react-dom.production.min.js:148)
at Gs (react-dom.production.min.js:245)
at Ds (react-dom.production.min.js:216)
at Ns (react-dom.production.min.js:210)
13[Violation] ‘setInterval’ handler took ms
bundle-6c2361a41ea623194ed2.js:1 [Violation] ‘setInterval’ handler took 235ms
bundle-6c2361a41ea623194ed2.js:1 [Violation] ‘setInterval’ handler took 232ms
bundle-6c2361a41ea623194ed2.js:1 [Violation] ‘setInterval’ handler took 235ms
bundle-6c2361a41ea623194ed2.js:1 [Violation] ‘setInterval’ handler took 257ms
bundle-6c2361a41ea623194ed2.js:1 [Violation] ‘setInterval’ handler took 250ms
bundle-6c2361a41ea623194ed2.js:1 [Violation] ‘setInterval’ handler took 262ms
bundle-6c2361a41ea623194ed2.js:1 [Violation] ‘setInterval’ handler took 230ms
bundle-6c2361a41ea623194ed2.js:1 [Violation] ‘setInterval’ handler took 230ms
bundle-6c2361a41ea623194ed2.js:1 [Violation] ‘setInterval’ handler took 225ms
bundle-6c2361a41ea623194ed2.js:1 [Violation] ‘setInterval’ handler took 204ms
bundle-6c2361a41ea623194ed2.js:1 [Violation] ‘setInterval’ handler took 232ms
bundle-6c2361a41ea623194ed2.js:1 [Violation] ‘setInterval’ handler took 202ms
bundle-6c2361a41ea623194ed2.js:1 [Violation] ‘setInterval’ handler took 275ms
[Violation] Forced reflow while executing JavaScript took 30ms

Seems like a Javascript bug, or it may also be a particular Setting you have with a funky value. As a workaround you could try the CLI; they all should be there:

hammer settings list --fields="Name,Value"

Hi @jeremylenz

I can list the settings using hammer but I’m not convinced I’m seeing them all there. Any idea how I could confirm that? I was specifically looking for confirmation that katello jobs would be run using remote exec ssh rather than katello agent.

hammer settings list --fields=“Name”


NAME

content_action_accept_timeout
access_unattended_without_build
administrator
foreman_tasks_proxy_batch_trigger
always_show_configuration_status
append_domain_name_for_hosts
applicability_batch_size
authorize_login_delegation
authorize_login_delegation_api
authorize_login_delegation_auth_source_user_autocreate
autosearch_while_typing
autosearch_delay
foreman_proxy_content_batch_size
bcrypt_cost
bmc_credentials_accessible
cdn_ssl_version
check_services_before_actions
clean_up_failed_deployment
remote_execution_cleanup_working_dirs
remote_execution_cockpit_url
remote_execution_connect_by_ip
dependency_solving_algorithm
content_view_solve_dependencies
create_new_host_when_facts_are_uploaded
create_new_host_when_report_is_uploaded
db_pending_migration
db_pending_seed
default_download_policy
default_global_registration_item
content_default_http_proxy
default_locale
default_location
default_location_puppet_content
default_location_subscribed_hosts
default_organization
Default_parameters_Lookup_Path
default_puppet_environment
default_pxe_item_global
default_pxe_item_local
default_redhat_download_policy
default_proxy_download_policy
remote_execution_ssh_key_passphrase
remote_execution_ssh_password
katello_default_atomic_provision
katello_default_finish
katello_default_iPXE
katello_default_kexec
katello_default_ptable
katello_default_provision
katello_default_PXEGrub2
katello_default_PXEGrub
katello_default_PXELinux
katello_default_user_data
default_timezone
unregister_delete_host
delivery_method
destroy_vm_on_host_delete
content_disconnected
dns_timeout
remote_execution_effective_user
remote_execution_effective_user_method
remote_execution_effective_user_password
email_reply_address
email_subject_prefix
dynflow_enable_console
remote_execution_global_proxy
enc_environment
entries_per_page
erratum_install_batch_size
excluded_facts
expire_soon_days
failed_login_attempts_limit
remote_execution_fallback_proxy
content_action_finish_timeout
fix_db_cache
foreman_url
instance_id
remote_execution_form_job_template
global_iPXE
global_PXEGrub2
global_PXEGrub
global_PXELinux
host_dmi_uuid_duplicates
host_owner
host_profile_assume
host_tasks_workers_pool_size
http_proxy
http_proxy_except_list
idle_timeout
ignore_facts_for_domain
ignore_facts_for_operatingsystem
ignored_interface_identifiers
ignore_puppet_facts_for_provisioning
errata_status_installable
instance_title
interpolate_erb_in_parameters
intermediate_ipxe_script
libvirt_default_console_address
local_boot_iPXE
local_boot_PXEGrub2
local_boot_PXEGrub
local_boot_PXELinux
location_fact
login_delegation_logout_url
login_text
manage_puppetca
manifest_refresh_timeout
matchers_inheritance
maximum_structured_facts
oauth_active
oauth_consumer_key
oauth_consumer_secret
oauth_map_users
oidc_algorithm
oidc_audience
oidc_issuer
oidc_jwks_url
organization_fact
outofsync_interval
foreman_tasks_polling_multiplier
foreman_tasks_proxy_action_retry_count
foreman_tasks_proxy_action_retry_interval
foreman_tasks_proxy_batch_size
pulpcore_export_destination
pulp_client_cert
pulp_client_key
pulp_docker_registry_port
pulp_export_destination
puppet_interval
puppet_out_of_sync_disabled
query_local_nameservers
remote_addr
dynflow_console_require_auth
require_ssl_smart_proxies
restrict_composite_view
restrict_registered_smart_proxies
root_pass
rss_enable
rss_url
safemode_render
sendmail_arguments
sendmail_location
send_welcome_email
lab_features
host_power_status
proxy_request_timeout
smtp_address
smtp_authentication
smtp_enable_starttls_auto
smtp_domain
smtp_openssl_verify_mode
smtp_password
smtp_port
smtp_user_name
remote_execution_ssh_port
ssh_timeout
remote_execution_ssh_user
ssl_ca_file
ssl_certificate
ssl_client_cert_env
ssl_client_dn_env
ssl_client_verify_env
ssl_priv_key
register_hostname_fact
register_hostname_fact_strict_match
remote_execution_sync_templates
foreman_proxy_content_auto_sync
foreman_tasks_sync_task_timeout
foreman_tasks_troubleshooting_url
token_duration
trusted_hosts
name_generator_type
unattended_url
update_environment_from_facts
update_hostgroup_from_facts
update_ip_from_built_request
update_subnets_from_facts
remote_execution_by_default
use_shortname_for_vms
use_uuid_for_certificates
websockets_encrypt
websockets_ssl_cert
websockets_ssl_key
remote_execution_workers_pool_size

@andyfry @jeremylenz It’s because of http proxy. If you have http proxy(Infrastructure > Http Proxies) created then this somehow affects content tab on settings page.

1 Like

I think the setting you’re looking for is remote_execution_by_default:

hammer settings show --name "remote_execution_by_default"

Id:            remote_execution_by_default
Name:          remote_execution_by_default
Description:   If set to true, use the remote execution over katello-agent for remote actions
Category:      Content
Settings type: boolean
Value:         false

@jpathan thanks for bringing this up! I created a couple ‘dummy’ HTTP proxies and I don’t seem to be hitting the issue. Do you have any more detailed reproduction steps?

This might be related to Bug #31587: Some Settings have a blank name on Settings page - Foreman which will be fixed in Foreman 2.3.2.

@jpathan, I do have a proxy configured but I’m sure this worked until quite recently. Not too sure when it all went wrong or what caused it.

@tbrisker I’m not too sure that’s related. This isn’t missing setting names it’s a completely blank tab.

Looks like a different issue indeed. the error seems to point to

and the fact that the select group has no children. Could it be you have some invalid value in a certain setting on that tab? I believe @jpathan was indicating a similar bug reported by RH QE, I’ve cloned it to redmine at Bug #31603: Settings "Content" page disappeared after setting the http-proxy. - Foreman which may share the root cause.
@Ondrej_Prazak @ezr-ondrej any ideas on this one? I’d like to get it into 2.3.2 if possible.

https://github.com/theforeman/foreman/pull/8245

1 Like

I’d completely forgotten about this issue but it seems to have “fixed” itself. I assume an update has occurred relating to #31603

Thanks everyone