Tracer errors (and no reports back to Foreman) on Rocky 10.1 client

Problem: Installs of katello-host-tools-tracer (as well as any further dnf package installations after adding that package) fail with the error below; although a REX task for tracer installation will report back to Foreman as successful, traces won’t be reported, and the following error appears both in task output and the situations described above:

Traceback (most recent call last):
  File "/usr/lib/python3.12/site-packages/dnf-plugins/subscription-manager.py", line 297, in _upload_profile
    with open("/var/lock/subsys/rhsmcertd", "r") as lock_file:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/var/lock/subsys/rhsmcertd'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.12/site-packages/dnf/plugin.py", line 108, in _caller
    getattr(plugin, method)()
  File "/usr/lib/python3.12/site-packages/dnf-plugins/subscription-manager.py", line 270, in transaction
    self._upload_profile()
  File "/usr/lib/python3.12/site-packages/dnf-plugins/subscription-manager.py", line 301, in _upload_profile
    self._upload_profile_blocking()
  File "/usr/lib/python3.12/site-packages/dnf-plugins/subscription-manager.py", line 279, in _upload_profile_blocking
    with LiveStatusMessage("Uploading DNF profile"):
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/dnf-plugins/subscription-manager.py", line 283, in _upload_profile_blocking
    profile_mgr.update_check(self.cp, identity.uuid)
                             ^^^^^^^
AttributeError: 'SubscriptionManager' object has no attribute 'cp'

Expected outcome: Successful installation & usage of tracer, given that repos for Foreman client things & Rocky Linux 10 repos are all configured in Foreman and available to client.

Foreman and Proxy versions: 3.17

Foreman and Proxy plugin versions:

Name Description Author Version
foreman-tasks The goal of this plugin is to unify the way of showing task statuses across the Foreman instance. It defines Task model for keeping the information about the tasks and Lock for assigning the tasks to resources. The locking allows dealing with preventing multiple colliding tasks to be run on the same resource. It also optionally provides Dynflow infrastructure for using it for managing the tasks. Ivan Nečas 11.0.6
foreman_ansible Ansible integration with Foreman Daniel Lobato Garcia 17.0.2
foreman_puppet Allow assigning Puppet environments and classes to the Foreman Hosts. Ondřej Ezr and Shira Maximov 9.1.0
foreman_remote_execution A plugin bringing remote execution to the Foreman, completing the config management functionality with remote management functionality. Foreman Remote Execution team 16.3.1
foreman_salt Foreman Plug-in for Salt Stephen Benjamin 17.0.2
foreman_statistics Statistics and Trends for Foreman gives users overview of their infrastructure. Ondrej Ezr 2.1.0
katello Katello adds Content and Subscription Management to Foreman. For this it relies on Candlepin and Pulp. N/A 4.19.0.1
puppetdb_foreman Disable hosts on PuppetDB after they are deleted or built in Foreman. Follow GitHub - theforeman/puppetdb_foreman: PuppetDB proxy in Foreman and raise an issue/submit a pull request if you need extra functionality. You can also find some help via the Foreman support pages ( Foreman :: Support ). Daniel Lobato Garcia 6.0.2

Distribution and version: Rocky Linux 10.1 (client)

Other relevant data:

Full dnf install katello-host-tools-tracer output from client

[root@rl10-test admin]# dnf install katello-host-tools-tracer
Updating Subscription Management repositories.
Rocky Linux CRB 10 x86_64 94 kB/s | 2.3 kB 00:00
Microsoft EL10 65 kB/s | 1.5 kB 00:00
Rocky Linux AppStream 10 x86_64 92 kB/s | 2.3 kB 00:00
Rocky Linux BaseOS 10 x86_64 68 kB/s | 2.3 kB 00:00
Foreman Client EL10 x86_64 58 kB/s | 1.5 kB 00:00
Dependencies resolved.

Package Arch Version Repository Size

Installing:
katello-host-tools-tracer noarch 4.5.0-2.el10 Ex_Foreman_Foreman_Client_EL10_x86_64 20 k
Installing dependencies:
katello-host-tools noarch 4.5.0-2.el10 Ex_Foreman_Foreman_Client_EL10_x86_64 31 k
python3-psutil x86_64 5.9.8-6.el10 Ex_Rocky_Linux_AppStream_10_x86_64 270 k

Transaction Summary

Install 3 Packages

Total download size: 322 k
Installed size: 1.5 M
Is this ok [y/N]: y
Downloading Packages:
(1/3): katello-host-tools-4.5.0-2.el10.noarch.rpm 453 kB/s | 31 kB 00:00
(2/3): katello-host-tools-tracer-4.5.0-2.el10.noarch.rpm 287 kB/s | 20 kB 00:00
(3/3): python3-psutil-5.9.8-6.el10.x86_64.rpm 3.4 MB/s | 270 kB 00:00

Total 4.0 MB/s | 322 kB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : katello-host-tools-4.5.0-2.el10.noarch 1/3
Installing : python3-psutil-5.9.8-6.el10.x86_64 2/3
Installing : katello-host-tools-tracer-4.5.0-2.el10.noarch 3/3
Running scriptlet: katello-host-tools-tracer-4.5.0-2.el10.noarch 3/3
Installed products updated.
Traceback (most recent call last):
File “/usr/lib/python3.12/site-packages/dnf-plugins/subscription-manager.py”, line 297, in _upload_profile
with open(“/var/lock/subsys/rhsmcertd”, “r”) as lock_file:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: ‘/var/lock/subsys/rhsmcertd’

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/usr/lib/python3.12/site-packages/dnf/plugin.py”, line 108, in _caller
getattr(plugin, method)()
File “/usr/lib/python3.12/site-packages/dnf-plugins/subscription-manager.py”, line 270, in transaction
self._upload_profile()
File “/usr/lib/python3.12/site-packages/dnf-plugins/subscription-manager.py”, line 301, in _upload_profile
self._upload_profile_blocking()
File “/usr/lib/python3.12/site-packages/dnf-plugins/subscription-manager.py”, line 279, in _upload_profile_blocking
with LiveStatusMessage(“Uploading DNF profile”):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3.12/site-packages/dnf-plugins/subscription-manager.py”, line 283, in _upload_profile_blocking
profile_mgr.update_check(self.cp, identity.uuid)
^^^^^^^
AttributeError: ‘SubscriptionManager’ object has no attribute ‘cp’

Installed:
katello-host-tools-4.5.0-2.el10.noarch katello-host-tools-tracer-4.5.0-2.el10.noarch
python3-psutil-5.9.8-6.el10.x86_64

Complete!

What subscription-manager version do you have? Do you have rhsmcertd on your system? This is required for package profile uploads (and possibly tracer uploads too.)

For subscription-manager:

[root@rl10-test ~]# subscription-manager version
server type: Red Hat Subscription Management
subscription management server: 4.6.4-2
subscription management rules: 5.44
subscription-manager: 1.30.10.1-1.el10_1.rocky.0.1

As for rhsmcertd, while doing some research to respond to your question, I realized that the queries I was using that seemed to indicate rhsmcertd wasn’t present were faulty. (D’oh! Note to self and others: systemctl list-units --type=service on its own doesn’t include inactive services; you need to pass –-all as well to see those)
It now appears that rhsmcertd.service was enabled and loaded, but simply never started.

Having directly started rhsmcertd, I tried starting fresh by removing katello-host-tools-tracer and dependencies from the client, then using the tracer installation REX tool from the Foreman UI. That seems to have done the trick, and the Traces section of the host details is clearly in better shape than before:

So, thanks for helping me debug that :slight_smile:

1 Like