#1112013 cloud-init-network.service conflicts with dkms.service, and fails to start when both are installed

Package:
cloud-init
Source:
cloud-init
Submitter:
Jeff Wong
Date:
2025-09-01 18:07:05 UTC
Severity:
normal
Tags:
#1112013#5
Date:
2025-08-25 07:38:51 UTC
From:
To:
Dear Maintainer,

I was attempting to update from Debian 11.6 to Debian 13.0 and noticed cloud-init config to be non-functional.
* hostname was not changed
* resolv.conf blank
* sshd keys not generating

I am installing both Debian 11.6 and 13.0 through Packer, and deployed through Terraform to a Proxmox server.
Both cloud-init and dkms were being installed via a preseed file.

Additionally, systemd reported a circular dependency on boot:

Job cloud-init-network.service/start deleted to break ordering cycle starting with sysinit.target/start
journalctl -b | egrep "Found":
Aug 25 01:29:21 test systemd[1]: networking.service: Found ordering cycle on network-pre.target/start
Aug 25 01:29:21 test systemd[1]: networking.service: Found dependency on dkms.service/start
Aug 25 01:29:21 test systemd[1]: networking.service: Found dependency on basic.target/start
Aug 25 01:29:21 test systemd[1]: networking.service: Found dependency on sysinit.target/start
Aug 25 01:29:21 test systemd[1]: networking.service: Found dependency on cloud-init-network.service/start
Aug 25 01:29:21 test systemd[1]: networking.service: Found dependency on networking.service/start

What worked was directly editing and deleting the line in
/usr/lib/systemd/system/cloud-init-network.service:

BEFORE=sysinit.target

cloud-init-network.service was able to go and all three symptoms were resolved.

On closer inspection with circular dependencies, I noticed dkms being installed in my preseed file.
dkms was also present in all instances of circular dependency logs.

Removing dkms from the preseed packages resolves the issue.
I do not need the package installed, but I am reporting regardless.

Thanks,
Jeff

#1112013#10
Date:
2025-08-25 22:04:56 UTC
From:
To:
Control: tags -1 + moreinfo
Can you send the output of the following:
$ systemctl list-dependencies --reverse cloud-init-network.service dkms.service sysinit.target

Are you passing any additional cloud-init configuration via user_data or
other mechanism?


root@bug1112013:~# systemctl --no-pager -l  status cloud-init-network.service dkms.service
● cloud-init-network.service - Cloud-init: Network Stage
     Loaded: loaded (/usr/lib/systemd/system/cloud-init-network.service; enabled; preset: enabled)
     Active: active (exited) since Mon 2025-08-25 21:39:44 UTC; 3min 44s ago
 Invocation: a32ca725d0f54752b23355a1917f2453
    Process: 602 ExecStart=sh -c echo "start" | nc -Uu -W1 /run/cloud-init/share/network.sock -s /run/cloud-init/share/network-return.sock | sh (code=exited, status=0/SUCCESS)
   Main PID: 602 (code=exited, status=0/SUCCESS)
   Mem peak: 1.7M
        CPU: 10ms

Aug 25 21:39:43 bug1112013 systemd[1]: Starting cloud-init-network.service - Cloud-init: Network Stage...
Aug 25 21:39:44 bug1112013 sh[605]: Completed socket interaction for boot stage network
Aug 25 21:39:44 bug1112013 systemd[1]: Finished cloud-init-network.service - Cloud-init: Network Stage.

● dkms.service - Builds and install new kernel modules through DKMS
     Loaded: loaded (/usr/lib/systemd/system/dkms.service; enabled; preset: enabled)
     Active: active (exited) since Mon 2025-08-25 21:39:44 UTC; 3min 44s ago
 Invocation: 524240da666c430cab316862eb09b031
       Docs: man:dkms(8)
    Process: 647 ExecStart=/usr/sbin/dkms autoinstall --verbose --kernelver 6.12.41+deb13-amd64 (code=exited, status=0/SUCCESS)
   Main PID: 647 (code=exited, status=0/SUCCESS)
   Mem peak: 5M
        CPU: 90ms

Aug 25 21:39:44 bug1112013 systemd[1]: Starting dkms.service - Builds and install new kernel modules through DKMS...
Aug 25 21:39:44 bug1112013 systemd[1]: Finished dkms.service - Builds and install new kernel modules through DKMS.
root@bug1112013:~# systemctl is-system-running
running

#1112013#17
Date:
2025-08-25 23:15:44 UTC
From:
To:
Correct me if I'm wrong, userdata is parsed through
/var/lib/cloud/instance/datasource?

ls /var/lib/cloud/instance/
datasource           handlers/            network-config.json  obj.pkl
         scripts/             sem/

cat /var/lib/cloud/instance/datasource
DataSourceNoCloud: DataSourceNoCloud [seed=/dev/sr0]

cat /dev/sr0
CD001LINUX                           cidata

/"




       GENISOIMAGE ISO 9660/HFS FILESYSTEM CREATOR (C) 1993 E.YOUNGDALE (C)
1997-2006 J.PEARSON/J.SCHILLING (C) 2006-2007 CDRKIT TEAM


2025082515473400202508251547340000000000000000002025082515473400







 CD0/"SPRRPX$AATF/"/"/"C/"RRPX$AATF/"/"/"66/"



 META_DATA.;1RRNMmeta-dataPX$TF/"/"/"ii/"NETWORK_CONFIG.;1RRNMnetwork-configPX$TF/"/"//"

USER_DATA.;1RRNMuser-dataPX$TF/"/"/"/"VENDOR_DATA.;1RRNMvendor-dataPX$TF/"/"/"ER
TRRIP_1991ATHE ROCK RIDGE INTERCHANGE PROTOCOL PROVIDES SUPPORT FOR POSIX
FILE SYSTEM SEMANTICSPLEASE CONTACT DISC PUBLISHER FOR SPECIFICATION
SOURCE.  SEE PUBLISHER IDENTIFIER IN PRIMARY VOLUME DESCRIPTOR FOR CONTACT
INFORMATION.instance-id: 22bd2bcc9dbc5666ac3464a9710ea837b57afef9
version: 1
config:
    - type: nameserver
      address:
      - '8.8.8.8'
      search:
      - 'local'
#cloud-config
hostname: testcloudinitbug
manage_etc_hosts: true
fqdn: testcloudinitbug
chpasswd:
  expire: False
users:
  - default
package_upgrade: true
--- As requested, output of systemctl list-dependencies --reverse cloud-init-network.service dkms.service sysinit.target: cloud-init-network.service ● ├─cloud-config.target ● │ └─cloud-config.service ○ └─cloud-init.target ● └─multi-user.target ● └─graphical.target dkms.service ● └─multi-user.target ● └─graphical.target sysinit.target ○ ├─apt-daily-upgrade.service ● ├─apt-daily-upgrade.timer ○ ├─apt-daily.service ● ├─apt-daily.timer ○ ├─apt-listchanges.service ● ├─apt-listchanges.timer ● ├─cloud-config.service ○ ├─cloud-final.service ○ ├─cloud-init-hotplugd.service ● ├─cron.service ● ├─dbus.service ● ├─dbus.socket ● ├─dkms.service ○ ├─dpkg-db-backup.service ● ├─dpkg-db-backup.timer ○ ├─e2scrub_all.service ● ├─e2scrub_all.timer ○ ├─e2scrub_reap.service ○ ├─fstrim.service ● ├─fstrim.timer ○ ├─getty-static.service ● ├─getty@tty1.service ○ ├─grub-common.service ○ ├─logrotate.service ● ├─logrotate.timer ○ ├─man-db.service ● ├─man-db.timer ● ├─qemu-guest-agent.service ○ ├─rc-local.service ● ├─ssh.service ○ ├─sshd-keygen.service ● ├─sshd-unix-local.socket ● ├─sshd-vsock.socket ○ ├─sshd@sshd-keygen.service ○ ├─systemd-ask-password-wall.service ○ ├─systemd-hostnamed.service ● ├─systemd-hostnamed.socket ● ├─systemd-logind.service ○ ├─systemd-pcrphase.service ● ├─systemd-tmpfiles-clean.timer ● ├─systemd-user-sessions.service ● ├─user-runtime-dir@1001.service ● ├─user@1001.service ● ├─basic.target ○ │ ├─initrd.target ● │ └─multi-user.target ● │ └─graphical.target ○ └─rescue.target
--- additionally if it helps, the preseed: choose-mirror-bin mirror/http/proxy string d-i apt-setup/use_mirror boolean true d-i base-installer/kernel/override-image string linux-server d-i clock-setup/utc boolean true d-i clock-setup/utc-auto boolean true d-i finish-install/reboot_in_progress note d-i grub-installer/only_debian boolean true d-i grub-installer/with_other_os boolean true d-i keymap select us d-i mirror/country string manual d-i mirror/http/directory string /debian d-i mirror/http/hostname string httpredir.debian.org d-i mirror/http/proxy string d-i partman-auto-lvm/guided_size string max d-i partman-auto/choose_recipe select atomic d-i partman-auto/method string lvm d-i partman-lvm/confirm boolean true d-i partman-lvm/confirm boolean true d-i partman-lvm/confirm_nooverwrite boolean true d-i partman-lvm/device_remove_lvm boolean true d-i partman/choose_partition select finish d-i partman/confirm boolean true d-i partman/confirm_nooverwrite boolean true d-i partman/confirm_write_new_label boolean true d-i passwd/root-login boolean false d-i passwd/root-password-again password testpassword d-i passwd/root-password password testpassword d-i passwd/user-fullname string packer d-i passwd/user-uid string 1000 d-i passwd/user-password password testpassword d-i passwd/user-password-again password testpassword d-i passwd/username string packer d-i pkgsel/include string sudo bzip2 wget curl dkms net-tools rsync qemu-guest-agent cloud-init d-i pkgsel/install-language-support boolean false d-i pkgsel/update-policy select none d-i pkgsel/upgrade select full-upgrade d-i time/zone string UTC d-i user-setup/allow-password-weak boolean true d-i user-setup/encrypt-home boolean false d-i netcfg/hostname string debian d-i preseed/late_command string \ sed -i '/^deb cdrom:/s/^/#/' /target/etc/apt/sources.list; \ mkdir -p /target/root/.ssh; \ echo 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQClqqLdYN8LJ5kI7c/j+Uu3jt5vCOjUmbbY4hxK9P6VULCgQpJEtutr6LHwoOJ4awZDm2I/qnjr3umSplrqAOUslj5lGyJDcLw+obr4bKJGy7dRIZF1xNKDBLFypQW9dQ0alNZVVFdWS4qmbpujlrhzseNJ2Gb20Bxxw4scDCYlCqqs9AbgeAVa1Vlw8xKvXxTBC5gL6qinBbNn3E63IuYyqihyB1VzBg9vQPE9hYQtlqg8rBpqdaHyAEyDf5FVDvctS3VlqyuXBT3VizjU08s5e6w8cJbMUIMMVqh1I1qbn1T255s2VdrUE5G7q0fY/yXxyyz+6S1XskPOofBxO5sbGxXkTCpHa0/32gSGRGquDPLWp/e0VHrhx32bGVsLLD5sFZCdIvfu8mMGnoDFnmq28ayUKMyXdB0PcV/qfvBZsCyBnTYX4paq3mQae7nZ55MwGwFtrE0eBjixDkIocO5BLUQgdPt3afKrHXn0hCg/ReWfl+7bhvtyOKJj6v8N938= packer' > /target/root/.ssh/authorized_keys; apt-cdrom-setup apt-setup/cdrom/set-first boolean false apt-mirror-setup apt-setup/use_mirror boolean true popularity-contest popularity-contest/participate boolean false tasksel tasksel/first multiselect standard, ssh-server I also have a post script installing a few additional packages after the system first boots (connecting via ssh): #!/bin/bash export DEBIAN_FRONTEND=noninteractive apt-get update apt-get install -y psmisc \ ca-certificates \ git \ lsb-release \ net-tools \ python3 \ parted echo "" > /root/.ssh/authorized_keys deluser --remove-home packer The system then shuts down and saves to an image in proxmox. I then experience the issue when booting up any cloned VM for the first time.
#1112013#22
Date:
2025-08-26 14:01:46 UTC
From:
To:
I have reproduced the issue.  Will investigate.

noah

#1112013#29
Date:
2025-08-26 15:02:01 UTC
From:
To:
I see this issue is also reported against the dkms package, both in
Debian and upstream.  We don't need two open bugs for it, so I'm going
to merge this with the dkms bug and we can follow up as needed there.

noah