RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 2128998 - Error: Unable to enable booth@booth: Failed to enable unit: File boothd: Invalid cross-device link
Summary: Error: Unable to enable booth@booth: Failed to enable unit: File boothd: Inva...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 9
Classification: Red Hat
Component: booth
Version: 9.1
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: rc
: ---
Assignee: Jan Friesse
QA Contact: cluster-qe@redhat.com
URL:
Whiteboard:
Depends On:
Blocks: 2133833
TreeView+ depends on / blocked
 
Reported: 2022-09-22 09:09 UTC by michal novacek
Modified: 2023-05-09 07:40 UTC (History)
6 users (show)

Fixed In Version: booth-1.0-251.5.bfb2f92.git.el9_1
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
: 2133833 (view as bug list)
Environment:
Last Closed: 2023-05-09 07:19:16 UTC
Type: Bug
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker CLUSTERQE-6233 0 None None None 2022-12-01 17:22:14 UTC
Red Hat Issue Tracker RHELPLAN-134665 0 None None None 2022-10-05 10:55:40 UTC
Red Hat Product Errata RHBA-2023:2157 0 None None None 2023-05-09 07:19:20 UTC

Description michal novacek 2022-09-22 09:09:03 UTC
Description of problem:
boothd system service cannot be enabled. This disables the possibility for boothd to start after reboot.

Version-Release number of selected component (if applicable): 

RHEL9.1 Beta
booth-core-1.0-251.3.bfb2f92.git.el9_0.1.x86_64
systemd-250-11.el9.x86_64

How reproducible: always


Steps to Reproduce:
1. pcs booth enable 


Actual results:
Error: Unable to enable booth@booth: Failed to enable unit: File boothd: Invalid cross-device link


Expected results:
booth@booth systemd service enabled

Additional info:

> [root@virt-561 ~]# pcs booth stop 
booth@booth stopped

> [root@virt-561 ~]# pcs booth start
booth@booth started

> [root@virt-561 ~]# pcs booth status
TICKETS:
ticket: Le-ticket, leader: 10.15.107.151, expires: 2022-09-22 10:52:52

PEERS:
site         10.15.107.151, last recv: 2022-09-22 10:50:10
        Sent pkts:1 error:0 resends:0
        Recv pkts:1 error:0 authfail:0 invalid:0

site         10.37.165.103, last recv: 2022-09-22 10:50:10
        Sent pkts:1 error:0 resends:0
        Recv pkts:1 error:0 authfail:0 invalid:0


DAEMON STATUS:
booth_lockpid=123967 booth_lockfile='/var/run/booth//booth.pid' booth_pid=123967 booth_state=started booth_type=arbitrator booth_cfg_name='booth' booth_id=386158056 booth_addr_string='10.37.165.252' booth_port=9929

> [root@virt-561 ~]# pcs booth enable
Error: Unable to enable booth@booth: Failed to enable unit: File boothd: Invalid cross-device link

> [root@virt-561 ~]# systemctl enable booth@booth
Failed to enable unit: File boothd: Invalid cross-device link


> [root@virt-561 ~]# lsblk
NAME                    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
vda                     252:0    0    8G  0 disk 
├─vda1                  252:1    0    1G  0 part /boot
└─vda2                  252:2    0    7G  0 part 
  ├─rhel_virt--561-root 253:0    0  6.2G  0 lvm  /
  └─rhel_virt--561-swap 253:1    0  820M  0 lvm  [SWAP]

Also this seems to work correctly on rhel9.0 and rhel8.7.

Comment 1 michal novacek 2022-09-22 09:10:05 UTC
This is 'mount' output:

> [root@virt-561 ~]# mount
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=4096k,nr_inodes=1048576,mode=755,inode64)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel,size=2020956k,nr_inodes=505239,inode64)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,size=808384k,nr_inodes=819200,mode=755,inode64)
cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,seclabel,nsdelegate,memory_recursiveprot)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime,seclabel)
none on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700)
/dev/mapper/rhel_virt--561-root on / type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,nosuid,noexec,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=36,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=14041)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel,pagesize=2M)
mqueue on /dev/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime,seclabel)
debugfs on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,relatime,seclabel)
tracefs on /sys/kernel/tracing type tracefs (rw,nosuid,nodev,noexec,relatime,seclabel)
configfs on /sys/kernel/config type configfs (rw,nosuid,nodev,noexec,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,nosuid,nodev,noexec,relatime)
none on /run/credentials/systemd-sysusers.service type ramfs (ro,nosuid,nodev,noexec,relatime,mode=700)
/dev/vda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=404120k,nr_inodes=101030,mode=700,inode64)
tracefs on /sys/kernel/debug/tracing type tracefs (rw,nosuid,nodev,noexec,relatime,seclabel)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,nosuid,nodev,noexec,relatime)

Comment 2 Jan Friesse 2022-09-22 11:14:56 UTC
Not exactly sure (yet) why it is happening, but removing `Alias=` from booth@.service helps. This is (without any problems) reproducible also in Fedora.

Comment 3 Jan Friesse 2022-09-22 11:29:13 UTC
Not sure if it is problem or expected feature of systemd, but it's not caused by any change in booth package itself so it's definitively something in systemd/... so reassigning to systemd.

Service booth@.service:
```
#  This file is part of Booth.

[Unit]
Description=Booth - Ticket Manager for Pacemaker Clusters
Documentation=man:boothd(8)
After=network-online.target
ConditionFileNotEmpty=/etc/booth/%i.conf
Conflicts=pacemaker.service

[Install]
Alias=boothd
WantedBy=multi-user.target

[Service]
Type=simple
NotifyAccess=main
ExecStart=/usr/sbin/boothd daemon -S -c %i
```

When Alias is removed, everything works. No matter what Alias is used, when Alias= exists failure "Invalid cross-device link" is reported by systemctl enable booth@ANYTHING. Is it known problem? Is it expected? It's easy to workaround on booth side (just remove Alias), but it used to work in previous RHEL versions.

Comment 4 Lukáš Nykrýn 2022-09-27 15:45:29 UTC
To me, it sounds like it was a bug in 9.0. The Alias stanza does not make any sense. Your unit file is a template, so it requires an argument. But you are creating an alias that does not require one. So systemd will not know what to do when a user says systemctl start boothd. So you should really drop this from the unit file.

Comment 5 Jan Friesse 2022-09-27 16:36:04 UTC
(In reply to Lukáš Nykrýn from comment #4)
> To me, it sounds like it was a bug in 9.0. The Alias stanza does not make
> any sense. Your unit file is a template, so it requires an argument. But you
> are creating an alias that does not require one. So systemd will not know
> what to do when a user says systemctl start boothd. So you should really
> drop this from the unit file.

Ok. It used to work in RHEL 7 and RHEL 8 so my question is - is the systemd "fix" going to land in RHEL 7/8 (= we need to workaround RHEL 7/8 unit-file because of "fix" in systemd?). Are you sure it is really correct behavior to display "Invalid cross-device link" error message instead of something like "Alias directive is not supported in template unit file" - maybe something to improve?

Comment 7 David Tardon 2022-09-30 10:43:35 UTC
There are actually two problems with the Alias stanza. One has already been mentioned by Lukáš in comment 4. The other one--which I think is the main issue here--is that the name is missing suffix. Unit names must always be fully spelled in unit files; the shortcut with .service being the default only works on systemctl's command line. IOW, if this has ever worked as expected, it's been by a happy coincidence, not by intent. The alias should be specified like this:

Alias=boothd@%i.service

Comment 8 David Tardon 2022-09-30 10:45:07 UTC
(In reply to Jan Friesse from comment #5)
> Ok. It used to work in RHEL 7 and RHEL 8 so my question is - is the systemd
> "fix" going to land in RHEL 7/8 (= we need to workaround RHEL 7/8 unit-file
> because of "fix" in systemd?). Are you sure it is really correct behavior to
> display "Invalid cross-device link" error message instead of something like
> "Alias directive is not supported in template unit file" - maybe something
> to improve?

Already done, see https://github.com/systemd/systemd/pull/24728 .

Comment 9 Jan Friesse 2022-09-30 14:14:22 UTC
@dtardon Honestly I don't think alias itself ever worked AND it's not what the bug is about. The bug is about sudden change in systemd which made unit, which was working fine (eventho it may be incorrect) during RHEL 7/8/9.0, non-working and producing totally non-understandable error. Honestly RHEL is about compatibility so I would expect for RHEL fix will just produce warning - not error.

But back to main question - Do you expect the "fix" which made "incorrect" unit produce the error message going to get into RHEL 7? RHEL 8? If so, which versions do you expect it will happen? I need to know it to find out to which versions of RHEL we have to make release/Z-Stream of fixed unit.

Comment 10 David Tardon 2022-10-05 10:27:55 UTC
(In reply to Jan Friesse from comment #9)
> But back to main question - Do you expect the "fix" which made "incorrect"
> unit produce the error message going to get into RHEL 7? RHEL 8?

Certainly not.

Comment 12 michal novacek 2023-01-06 16:41:48 UTC
I have verified that enabling systemd unit booth@booth is possible with fixed booth-core-1.0-251.5.bfb2f92.git.el9_1.x86_64



> [root@virt-490 ~]# rpm -qa | grep booth
booth-core-1.0-251.5.bfb2f92.git.el9_1.x86_64
booth-arbitrator-1.0-251.5.bfb2f92.git.el9_1.noarch

> [root@virt-490 ~]# pcs booth enable
booth@booth enabled

> [root@virt-490 ~]# systemctl enable booth@booth

Comment 18 errata-xmlrpc 2023-05-09 07:19:16 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 (booth 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-2023:2157


Note You need to log in before you can comment on or make changes to this bug.