Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixed Ordering cycle found, causing spurious issues during boot (no tangd.socket enabled, or no network, etc.) #42

Merged
merged 1 commit into from
Jan 30, 2020

Conversation

rmetrich
Copy link
Contributor

This commit fixes the following ordering cycle found on Fedora 30+ and RHEL 8.1:

systemd[1]: sockets.target: Found ordering cycle on tangd.socket/start
systemd[1]: sockets.target: Found dependency on tangd-keygen.service/start
systemd[1]: sockets.target: Found dependency on basic.target/start
systemd[1]: sockets.target: Found dependency on sockets.target/start
systemd[1]: sockets.target: Job tangd.socket/start deleted to break ordering cycle starting with sockets.target/start
[ SKIP ] Ordering cycle found, skipping Tang Server socket

This is tracked by Red Hat through BZ #1792173

The previous implementation of the Tang socket was making it depend on services, which is not how sockets are expected to be configured.
Additionally, the Tang socket was installed in multi-user.target instead of sockets.target.

This implementation creates a standard socket installed in sockets.target, and modifies the corresponding service so that it makes sure the requirement on the key presence is met.
The requirement on tangd-update.service has been removed since it is useless: the service doesn't need tangd-update.service at all.

tangd.socket enabled, or no network, etc.)

This commit fixes the following ordering cycle found on Fedora 30+ and
RHEL 8.1:

-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------
systemd[1]: sockets.target: Found ordering cycle on tangd.socket/start
systemd[1]: sockets.target: Found dependency on tangd-keygen.service/start
systemd[1]: sockets.target: Found dependency on basic.target/start
systemd[1]: sockets.target: Found dependency on sockets.target/start
systemd[1]: sockets.target: Job tangd.socket/start deleted to break ordering cycle starting with sockets.target/start
[ SKIP ] Ordering cycle found, skipping Tang Server socket
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------

This is tracked by Red Hat through BZ #1792173
(https://bugzilla.redhat.com/show_bug.cgi?id=1792173)

The previous implementation of the Tang socket was making it depend on
services, which is not how sockets are expected to be configured.
Additionally, the Tang socket was installed in multi-user.target instead
of sockets.target.

This implementation creates a "standard" socket installed in
sockets.target, and modifies the corresponding service so that it makes
sure the requirement on the key presence is met.
The requirement on tangd-update.service has been removed since it is
useless: the service doesn't need tangd-update.service at all.
Copy link
Collaborator

@sergio-correia sergio-correia left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Renaud, I will merge this.

@sergio-correia sergio-correia merged commit 7778512 into latchset:master Jan 30, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants