[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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



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.

On Mon, Aug 25, 2025 at 3:05 PM Noah Meyerhans <noahm@debian.org> wrote:
Control: tags -1 + moreinfo

On Mon, Aug 25, 2025 at 07:38:51AM +0000, Jeff Wong wrote:
> 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.

Interesting.  I don't seem to have this problem.  See below for output.
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


Reply to: