Bug 2045096

Summary: Unable to show metadata for "service" agents with "@" and "." in the name
Product: Red Hat Enterprise Linux 8 Reporter: Markéta Smazová <msmazova>
Component: pacemakerAssignee: Chris Lumens <clumens>
Status: CLOSED ERRATA QA Contact: cluster-qe <cluster-qe>
Severity: low Docs Contact:
Priority: low    
Version: 8.6CC: cluster-maint, kgaillot, nwahl, sbradley
Target Milestone: rcKeywords: Triaged
Target Release: 8.7   
Hardware: All   
OS: All   
Whiteboard:
Fixed In Version: pacemaker-2.1.3-1.el8 Doc Type: Bug Fix
Doc Text:
Cause: Pacemaker required a specifier after "@" in a systemd unit name in order to show meta-data. Consequence: Meta-data could not be shown for a unit such as "chrony-dnssrv@.timer". Fix: Pacemaker now allows @ to be used without a specifier for meta-data calls. Result: Meta-data can be shown for all usable systemd units.
Story Points: ---
Clone Of:
: 2045110 (view as bug list) Environment:
Last Closed: 2022-11-08 09:42:25 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Markéta Smazová 2022-01-25 15:28:36 UTC
Description of problem:
Pacemaker is unable to show metadata for "service" agents with "@" and "." in the name.

Version-Release number of selected component (if applicable):
pacemaker-2.1.2-2.el8

How reproducible:
Always

Steps to Reproduce:
1. List "service" agents that have "@" and "." in the name:
# crm_resource --list-agents service | grep -E "@.\.*"
chrony-dnssrv@.timer

2. Try to show metadata:
# crm_resource --show-metadata service:chrony-dnssrv@.timer
crm_resource: Metadata query for service:chrony-dnssrv@.timer failed: No such device or address
Error performing operation: No such object

Actual results:
Unable to show metadata.

Expected results:
Metadata are displayed.

Additional info:
# crm_resource --show-metadata service:chrony-dnssrv@.timer -VVVVVV
(set_crm_log_level) 	trace: New log level: 8
(crm_log_args) 	notice: Invoked: crm_resource --show-metadata service:chrony-dnssrv@.timer -VVVVVV
(mainloop_add_fd) 	trace: Added connection 1 for dbus[0x55ac1d872f50].3
(add_dbus_watch) 	trace: Added DBus watch for file descriptor 3
(mainloop_add_fd) 	trace: Added connection 2 for dbus[0x55ac1d873c40].3
(add_dbus_watch) 	trace: Added DBus watch for file descriptor 3
(update_dispatch_status) 	trace: DBus connection has messages available for dispatch
(systemd_new_method) 	trace: Calling: LoadUnit on org.freedesktop.systemd1.Manager
(add_dbus_timer) 	trace: Added 25000ms DBus timer
(remove_dbus_timer) 	trace: Removing 25000ms DBus timer
(pcmk_dbus_find_error) 	trace: DBus reply indicated error 'org.freedesktop.DBus.Error.InvalidArgs' (Unit name chrony-dnssrv@.timer is missing the instance name.)
(pcmk_dbus_find_error) 	trace: DBus reply indicated error 'org.freedesktop.DBus.Error.InvalidArgs' (Unit name chrony-dnssrv@.timer is missing the instance name.)
(expand_resource_class) 	info: Assuming resource class lsb for agent chrony-dnssrv@.timer for chrony-dnssrv@.timer
(services__get_lsb_metadata) 	trace: Looking into /etc/rc.d/init.d/chrony-dnssrv@.timer
(services_action_sync) 	trace:  > chrony-dnssrv@.timer_meta-data_0: /etc/rc.d/init.d/chrony-dnssrv@.timer = 193
(lrmd_api_get_metadata_params) 	error: Failed to retrieve meta-data for service:(null):chrony-dnssrv@.timer
(lrmd_api_disconnect) 	info: Disconnecting IPC local executor connection
crm_resource: Metadata query for service:chrony-dnssrv@.timer failed: No such device or address
Error performing operation: No such object
(mainloop_destroy_signal_entry) 	trace: Destroying signal 0
(mainloop_destroy_signal_entry) 	trace: Destroying signal 1

    [...]

(mainloop_destroy_signal_entry) 	trace: Destroying signal 64
(crm_xml_cleanup) 	info: Cleaning up memory from libxml2
(crm_exit) 	info: Exiting crm_resource | with status 105

Comment 1 Ken Gaillot 2022-02-15 20:29:34 UTC
Fixed upstream as of commit 13d00a74

Comment 7 Markéta Smazová 2022-06-07 16:59:12 UTC
after fix
----------

[root@virt-535 ~]# rpm -q pacemaker
pacemaker-2.1.3-2.el8.x86_64

List "service" agents that have "@" and "." in the name:

[root@virt-535 ~]# crm_resource --list-agents service | grep -E "@.\.*"
chrony-dnssrv@.timer

Show metadata:

[root@virt-535 ~]# crm_resource --show-metadata service:chrony-dnssrv@.timer
<?xml version="1.0"?>
<!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd">
<resource-agent name="chrony-dnssrv@.timer" version="0.1">
  <version>1.1</version>
  <longdesc lang="en">
    Periodic DNS SRV lookup of pacemaker for chrony
  </longdesc>
  <shortdesc lang="en">systemd unit file for chrony-dnssrv@.timer</shortdesc>
  <parameters/>
  <actions>
    <action name="start"     timeout="100" />
    <action name="stop"      timeout="100" />
    <action name="status"    timeout="100" />
    <action name="monitor"   timeout="100" interval="60"/>
    <action name="meta-data" timeout="5"   />
  </actions>
  <special tag="systemd"/>
</resource-agent>

Metadata are displayed, marking verified in pacemaker-2.1.3-2.el8

Comment 9 errata-xmlrpc 2022-11-08 09:42:25 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (pacemaker bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2022:7573