#1107232 dkms: Dependency cycle between cloud-init-network and new dkms service

Package:
dkms
Source:
dkms
Submitter:
Kuczys, Jakub
Date:
2025-09-01 18:07:04 UTC
Severity:
normal
Tags:
#1107232#5
Date:
2025-06-03 11:46:26 UTC
From:
To:
Dear Maintainer,

   * What led up to the situation?

After using a fresh Debian image with cloud-init[1] and installing dkms on it,
I rebooted the system.
After that, I looked through journal and noticed that dependency cycles
got introduced:
$ journalctl -o cat -b 0
[...]
sysinit.target: Found ordering cycle on cloud-init-network.service/start
sysinit.target: Found dependency on systemd-networkd-wait-online.service/start
sysinit.target: Found dependency on systemd-networkd.service/start
sysinit.target: Found dependency on network-pre.target/start
sysinit.target: Found dependency on dkms.service/start
sysinit.target: Found dependency on sysinit.target/start
sysinit.target: Job cloud-init-network.service/start deleted to break ordering cycle starting with sysinit.target/start
[...]

One thing of note for reproduction here is that the cloud-init datasource needs
to still be available after reboot so that the service actually runs. I'm only
mentioning this because I initially wanted to reproduce this with virt-install
but that detaches the data source after reboot.
Manually generating ISO disk and attaching it as described here should work
for reproducing:
https://cloudinit.readthedocs.io/en/latest/howto/launch_qemu.html

[1] Generic cloud variant from https://cloud.debian.org/images/cloud/trixie/daily/20250603-2132/

   * What exactly did you do (or not do) that was effective (or
     ineffective)?

I am not sure whether this is the correct action to solve this but one can add
DefaultDependencies=no to [Unit] section of /usr/lib/systemd/system/dkms.service.
Service file in the upstream doesn't have it and the service existed for a while,
it has only recently been introduced to Debian based distributions though[2].

[2] https://github.com/dell/dkms/commit/b39d8060ab548868517c2ae2f88ed549281616c3

   * What was the outcome of this action?

Adding DefaultDependencies=no to [Unit] section of
/usr/lib/systemd/system/dkms.service does seem to solve the dependency cycle
at least.

It is not entirely clear to me whether this is the right place to solve it,
perhaps this should belong to a bug tracker of the cloud-init package instead.

   * What outcome did you expect instead?

I expected installation of dkms package to not introduce service dependency
cycle in the system.

Kind regards,
Jakub Kuczys

#1107232#10
Date:
2025-08-13 18:20:17 UTC
From:
To: