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

Bug#1025618: marked as done (cloud-init and firewalld systemd unit files have ordering cycles)



Your message dated Wed, 13 Mar 2024 02:49:13 +0000
with message-id <E1rkEg5-004fOC-Me@fasolo.debian.org>
and subject line Bug#1025618: fixed in cloud-init 24.1.1-1
has caused the Debian Bug report #1025618,
regarding cloud-init and firewalld systemd unit files have ordering cycles
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
1025618: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1025618
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: cloud-init
Version: 20.4.1-2+deb11u1
Severity: important
X-Debbugs-Cc: xilun@australdx.fr

Dear Maintainer,

firewalld and cloud-init have ordering cycles between their systemd unit
files, leading to more or less broken boot results when both are installed
and active, because at each boot systemd decides to skip a
non-deterministically choosen service (not necessarily cloud-init or
firewalld) to break the cycle.

I'm not sure if any of firewalld or cloud-init is more at fault (maybe
in not respecting some systemd rules?) so I'm also opening a duplicate
of this bug for the other package.

This can have various but potentially serious consequences, depending on
what should be, but is not, started.

Examples of boot traces of this issue happening:

* example 1:
sysinit.target: Found ordering cycle on cloud-init.service/start
sysinit.target: Found dependency on networking.service/start
sysinit.target: Found dependency on network-pre.target/start
sysinit.target: Found dependency on firewalld.service/start
sysinit.target: Found dependency on basic.target/start
sysinit.target: Found dependency on sockets.target/start
sysinit.target: Found dependency on uuidd.socket/start
sysinit.target: Found dependency on sysinit.target/start
sysinit.target: Job cloud-init.service/start deleted to break ordering cycle starting with sysinit.target/start

* example 2:
sysinit.target: Found ordering cycle on cloud-init.service/start
sysinit.target: Found dependency on networking.service/start
sysinit.target: Found dependency on network-pre.target/start
sysinit.target: Found dependency on firewalld.service/start
sysinit.target: Found dependency on dbus.service/start
sysinit.target: Found dependency on sysinit.target/start
sysinit.target: Job cloud-init.service/start deleted to break ordering cycle starting with sysinit.target/start

* example 3:
firewalld.service: Found ordering cycle on dbus.socket/start
firewalld.service: Found dependency on sysinit.target/start
firewalld.service: Found dependency on cloud-init.service/start
firewalld.service: Found dependency on networking.service/start
firewalld.service: Found dependency on network-pre.target/start
firewalld.service: Found dependency on firewalld.service/start
firewalld.service: Job dbus.socket/start deleted to break ordering cycle starting with firewalld.service/start

* example 4:
firewalld.service: Found ordering cycle on dbus.service/start
firewalld.service: Found dependency on sysinit.target/start
firewalld.service: Found dependency on cloud-init.service/start
firewalld.service: Found dependency on networking.service/start
firewalld.service: Found dependency on network-pre.target/start
firewalld.service: Found dependency on firewalld.service/start
firewalld.service: Job dbus.service/start deleted to break ordering cycle starting with firewalld.service/start
basic.target: Found ordering cycle on sysinit.target/start
basic.target: Found dependency on cloud-init.service/start
basic.target: Found dependency on networking.service/start
basic.target: Found dependency on network-pre.target/start
basic.target: Found dependency on firewalld.service/start
basic.target: Found dependency on basic.target/start
basic.target: Job cloud-init.service/start deleted to break ordering cycle starting with basic.target/start

* example 5:
basic.target: Found ordering cycle on sockets.target/start
basic.target: Found dependency on uuidd.socket/start
basic.target: Found dependency on sysinit.target/start
basic.target: Found dependency on cloud-init.service/start
basic.target: Found dependency on networking.service/start
basic.target: Found dependency on network-pre.target/start
basic.target: Found dependency on firewalld.service/start
basic.target: Found dependency on dbus.service/start
basic.target: Found dependency on basic.target/start
basic.target: Job sockets.target/start deleted to break ordering cycle starting with basic.target/start
firewalld.service: Found ordering cycle on dbus.socket/start
firewalld.service: Found dependency on sysinit.target/start
firewalld.service: Found dependency on cloud-init.service/start
firewalld.service: Found dependency on networking.service/start
firewalld.service: Found dependency on network-pre.target/start
firewalld.service: Found dependency on firewalld.service/start
firewalld.service: Job dbus.socket/start deleted to break ordering cycle starting with firewalld.service/start

* example 6:
networking.service: Found ordering cycle on network-pre.target/start
networking.service: Found dependency on firewalld.service/start
networking.service: Found dependency on dbus.service/start
networking.service: Found dependency on basic.target/start
networking.service: Found dependency on sockets.target/start
networking.service: Found dependency on uuidd.socket/start
networking.service: Found dependency on sysinit.target/start
networking.service: Found dependency on cloud-init.service/start
networking.service: Found dependency on networking.service/start
networking.service: Job network-pre.target/start deleted to break ordering cycle starting with networking.service/start


At first I experienced the issue on a Debian Stable (Bullseye), then
I was able to reproduce the problem on an up-to-date Bookworm.

Note that "systemd-analyze verify" seems to be unable to find the issue,
however, the following repro (tried on Bookworm) shows a way to detect
the cycles statically (plus, during a reboot you can observe it
directly):

$ sudo apt install firewalld cloud-init
$ echo "datasource_list: [ Fallback ]" | sudo tee /etc/cloud/cloud.cfg.d/99_fallback.cfg
$ sudo reboot
$ wget https://raw.githubusercontent.com/jantman/misc-scripts/4560db773f463101273539e625c9b48e9f53f87f/dot_find_cycles.py
$ #    ^ I found that script by reading https://github.com/systemd/systemd/issues/3829
$ sudo apt install 2to3 python3-pygraphviz python3-pydotplus python3-pydot python3-graphviz python3-networkx
$ 2to3 -w dot_find_cycles.py
$ chmod +x dot_find_cycles.py
$ sudo systemd-analyze dot --no-pager --order 2>/dev/null | python3 ./dot_find_cycles.py - | tee order-cycle_cloud-init-firewalld.txt
networking.service -> network-pre.target -> firewalld.service -> sysinit.target -> cloud-init.service -> networking.service
networking.service -> network-pre.target -> firewalld.service -> basic.target -> sysinit.target -> cloud-init.service -> networking.service
networking.service -> network-pre.target -> firewalld.service -> basic.target -> sockets.target -> cloud-init-hotplugd.socket -> sysinit.target -> cloud-init.service -> networking.service
networking.service -> network-pre.target -> firewalld.service -> basic.target -> sockets.target -> dbus.socket -> sysinit.target -> cloud-init.service -> networking.service
networking.service -> network-pre.target -> firewalld.service -> basic.target -> systemd-pcrphase-sysinit.service -> sysinit.target -> cloud-init.service -> networking.service
networking.service -> network-pre.target -> firewalld.service -> dbus.socket -> sysinit.target -> cloud-init.service -> networking.service
networking.service -> network-pre.target -> firewalld.service -> dbus.service -> basic.target -> sysinit.target -> cloud-init.service -> networking.service
networking.service -> network-pre.target -> firewalld.service -> dbus.service -> basic.target -> sockets.target -> cloud-init-hotplugd.socket -> sysinit.target -> cloud-init.service -> networking.service
networking.service -> network-pre.target -> firewalld.service -> dbus.service -> basic.target -> sockets.target -> dbus.socket -> sysinit.target -> cloud-init.service -> networking.service
networking.service -> network-pre.target -> firewalld.service -> dbus.service -> basic.target -> systemd-pcrphase-sysinit.service -> sysinit.target -> cloud-init.service -> networking.service
networking.service -> network-pre.target -> firewalld.service -> dbus.service -> sysinit.target -> cloud-init.service -> networking.service
networking.service -> network-pre.target -> firewalld.service -> dbus.service -> dbus.socket -> sysinit.target -> cloud-init.service -> networking.service
networking.service -> network-pre.target -> firewalld.service -> polkit.service -> dbus.socket -> sysinit.target -> cloud-init.service -> networking.service
networking.service -> network-pre.target -> firewalld.service -> polkit.service -> basic.target -> sysinit.target -> cloud-init.service -> networking.service
networking.service -> network-pre.target -> firewalld.service -> polkit.service -> basic.target -> sockets.target -> cloud-init-hotplugd.socket -> sysinit.target -> cloud-init.service -> networking.service
networking.service -> network-pre.target -> firewalld.service -> polkit.service -> basic.target -> sockets.target -> dbus.socket -> sysinit.target -> cloud-init.service -> networking.service
networking.service -> network-pre.target -> firewalld.service -> polkit.service -> basic.target -> systemd-pcrphase-sysinit.service -> sysinit.target -> cloud-init.service -> networking.service
networking.service -> network-pre.target -> firewalld.service -> polkit.service -> sysinit.target -> cloud-init.service -> networking.service
systemd-networkd.service -> network-pre.target -> firewalld.service -> sysinit.target -> cloud-init.service -> systemd-networkd-wait-online.service -> systemd-networkd.service
systemd-networkd.service -> network-pre.target -> firewalld.service -> basic.target -> sysinit.target -> cloud-init.service -> systemd-networkd-wait-online.service -> systemd-networkd.service
systemd-networkd.service -> network-pre.target -> firewalld.service -> basic.target -> sockets.target -> cloud-init-hotplugd.socket -> sysinit.target -> cloud-init.service -> systemd-networkd-wait-online.service -> systemd-networkd.service
systemd-networkd.service -> network-pre.target -> firewalld.service -> basic.target -> sockets.target -> dbus.socket -> sysinit.target -> cloud-init.service -> systemd-networkd-wait-online.service -> systemd-networkd.service
systemd-networkd.service -> network-pre.target -> firewalld.service -> basic.target -> systemd-pcrphase-sysinit.service -> sysinit.target -> cloud-init.service -> systemd-networkd-wait-online.service -> systemd-networkd.service
systemd-networkd.service -> network-pre.target -> firewalld.service -> dbus.socket -> sysinit.target -> cloud-init.service -> systemd-networkd-wait-online.service -> systemd-networkd.service
systemd-networkd.service -> network-pre.target -> firewalld.service -> dbus.service -> basic.target -> sysinit.target -> cloud-init.service -> systemd-networkd-wait-online.service -> systemd-networkd.service
systemd-networkd.service -> network-pre.target -> firewalld.service -> dbus.service -> basic.target -> sockets.target -> cloud-init-hotplugd.socket -> sysinit.target -> cloud-init.service -> systemd-networkd-wait-online.service -> systemd-networkd.service
systemd-networkd.service -> network-pre.target -> firewalld.service -> dbus.service -> basic.target -> sockets.target -> dbus.socket -> sysinit.target -> cloud-init.service -> systemd-networkd-wait-online.service -> systemd-networkd.service
systemd-networkd.service -> network-pre.target -> firewalld.service -> dbus.service -> basic.target -> systemd-pcrphase-sysinit.service -> sysinit.target -> cloud-init.service -> systemd-networkd-wait-online.service -> systemd-networkd.service
systemd-networkd.service -> network-pre.target -> firewalld.service -> dbus.service -> sysinit.target -> cloud-init.service -> systemd-networkd-wait-online.service -> systemd-networkd.service
systemd-networkd.service -> network-pre.target -> firewalld.service -> dbus.service -> dbus.socket -> sysinit.target -> cloud-init.service -> systemd-networkd-wait-online.service -> systemd-networkd.service
systemd-networkd.service -> network-pre.target -> firewalld.service -> polkit.service -> dbus.socket -> sysinit.target -> cloud-init.service -> systemd-networkd-wait-online.service -> systemd-networkd.service
systemd-networkd.service -> network-pre.target -> firewalld.service -> polkit.service -> basic.target -> sysinit.target -> cloud-init.service -> systemd-networkd-wait-online.service -> systemd-networkd.service
systemd-networkd.service -> network-pre.target -> firewalld.service -> polkit.service -> basic.target -> sockets.target -> cloud-init-hotplugd.socket -> sysinit.target -> cloud-init.service -> systemd-networkd-wait-online.service -> systemd-networkd.service
systemd-networkd.service -> network-pre.target -> firewalld.service -> polkit.service -> basic.target -> sockets.target -> dbus.socket -> sysinit.target -> cloud-init.service -> systemd-networkd-wait-online.service -> systemd-networkd.service
systemd-networkd.service -> network-pre.target -> firewalld.service -> polkit.service -> basic.target -> systemd-pcrphase-sysinit.service -> sysinit.target -> cloud-init.service -> systemd-networkd-wait-online.service -> systemd-networkd.service
systemd-networkd.service -> network-pre.target -> firewalld.service -> polkit.service -> sysinit.target -> cloud-init.service -> systemd-networkd-wait-online.service -> systemd-networkd.service


Best regards,
Guillaume Knispel


-- System Information:
Debian Release: 11.5
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 5.10.0-19-amd64 (SMP w/64 CPU threads)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages cloud-init depends on:
ii  fdisk               2.36.1-8+deb11u1
ii  gdisk               1.0.6-1.1
ii  ifupdown            0.8.36
ii  locales             2.31-13+deb11u5
ii  lsb-base            11.1.0
ii  lsb-release         11.1.0
ii  net-tools           1.60+git20181103.0eebece-1
ii  procps              2:3.3.17-5
ii  python3             3.9.2-3
ii  python3-configobj   5.0.6-4
ii  python3-jinja2      2.11.3-1
ii  python3-jsonpatch   1.25-3
ii  python3-jsonschema  3.2.0-3
ii  python3-oauthlib    3.1.0-2
ii  python3-requests    2.25.1+dfsg-2
ii  python3-yaml        5.3.1-5
ii  util-linux          2.36.1-8+deb11u1

Versions of packages cloud-init recommends:
ii  cloud-guest-utils  0.31-2
ii  eatmydata          105-9
ii  sudo               1.9.5p2-3

Versions of packages cloud-init suggests:
pn  btrfs-progs  <none>
ii  e2fsprogs    1.46.2-2
pn  xfsprogs     <none>

-- no debconf information

--- End Message ---
--- Begin Message ---
Source: cloud-init
Source-Version: 24.1.1-1
Done: Noah Meyerhans <noahm@debian.org>

We believe that the bug you reported is fixed in the latest version of
cloud-init, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1025618@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Noah Meyerhans <noahm@debian.org> (supplier of updated cloud-init package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Mon, 11 Mar 2024 20:00:23 -0700
Source: cloud-init
Architecture: source
Version: 24.1.1-1
Distribution: unstable
Urgency: medium
Maintainer: Debian Cloud Team <debian-cloud@lists.debian.org>
Changed-By: Noah Meyerhans <noahm@debian.org>
Closes: 926424 955620 1025618 1057548
Changes:
 cloud-init (24.1.1-1) unstable; urgency=medium
 .
   [ Nick Brown ]
   * Add logrotate config (Closes: #926424)
 .
   [ Debian Janitor ]
   * Update lintian override info format in d/cloud-init.lintian-overrides
     on line 3-7.
   * Trim trailing whitespace.
   * Use secure copyright file specification URI.
   * Bump debhelper from old 10 to 13.
     + Drop check for DEB_BUILD_OPTIONS containing "nocheck", since
       debhelper now does this.
     + Replace --no-restart-on-upgrade with --no-stop-on-upgrade.
     + Use dh_installsystemd rather than deprecated dh_systemd_start.
   * Set debhelper-compat version in Build-Depends.
   * Set upstream metadata fields: Repository-Browse.
   * Update standards version to 4.6.1, no changes needed.
 .
   [ Ross Vandegrift ]
   * d/control: Conflict with firewalld (Closes: #1025618)
     cloud-init and firewalld's systemd units jointly have startup cycles.
     Currently, they cannot be eliminated without breaking features of one
     or the other.
   * d/control: drop obsolete Depends on lsb-base
 .
   [ Noah Meyerhans ]
   * Fix debian/rules clean fails from git repo
     This may not be strictly correct from a pybuild perspective, but it
     avoids the need to call `setup.py` from the clean recipe.
     (Closes: #955620)
 .
   [ Ross Vandegrift ]
   * New upstream version 24.1 (Closes: #1057548)
   * d/p/0001-config-Support-APT-automated-mirror-selection.patch: refresh
   * d/p/0006-Disable-two-failing-WSL-unittests.patch: disable failing WSL tests
 .
   [ Noah Meyerhans ]
   * New upstream version 24.1.1
   * Drop patch 0006-Disable-two-failing-WSL-unittests.patch
Checksums-Sha1:
 8ffde165b91d09b26dd1a2539c4901cd22341c16 2440 cloud-init_24.1.1-1.dsc
 7e45254e6a7efd64a99a1abd2d6dee585f4069d4 1730335 cloud-init_24.1.1.orig.tar.gz
 0f42f704eeac76b3ed0485e683a3abd4691e2c84 26624 cloud-init_24.1.1-1.debian.tar.xz
 3461c15b85793e894a9fb5c770e1390100b3d9bd 7290 cloud-init_24.1.1-1_source.buildinfo
Checksums-Sha256:
 f54ecbc291bf6ecd05059628b11e78c5bc1990efb31e2fc2983d3aa9ad2bcf53 2440 cloud-init_24.1.1-1.dsc
 bda71fd0e4a2ad2c20941d941293a08bda490f075b24949b089f5425dcde1c73 1730335 cloud-init_24.1.1.orig.tar.gz
 3076753fd60c86b291e61a2878446315ced2b1f69247617c54cae24460075bb6 26624 cloud-init_24.1.1-1.debian.tar.xz
 82c8b70e0fba16bb01ebc776c071a2db65861c1c77ff7a66456d647cfe707428 7290 cloud-init_24.1.1-1_source.buildinfo
Files:
 f349eb943e4e51c060a42954eb547f84 2440 admin optional cloud-init_24.1.1-1.dsc
 46d30a80410623af3246d479e303949f 1730335 admin optional cloud-init_24.1.1.orig.tar.gz
 bd75e08032ea5aee3664e0dd54818ea3 26624 admin optional cloud-init_24.1.1-1.debian.tar.xz
 bfe3a344b2fd0cbb740d0cea01842414 7290 admin optional cloud-init_24.1.1-1_source.buildinfo

-----BEGIN PGP SIGNATURE-----

iQJFBAEBCgAvFiEE5G+E0xEKhJuZ7RJ34+c1IpshdTUFAmXxCA8RHG5vYWhtQGRl
Ymlhbi5vcmcACgkQ4+c1IpshdTVZHg/+JGRxaY/D8d+vPam5DyiChPwwkaNuyRky
exZxMot5yEhwNuq9Ek7pHBif5lqBHhtQrgBIJXudGLYx2EU/6X+y4orrT/yuZdyn
U98rZfE5SU+qdwWi0vpqv7IB/qHu5ZBdeK4ZGKzOcqkfr8IeOTXusx4TbDON1fPD
+z67h/+lnyMQHr4g01StujlxV5ySqv8aGKHTsQkSBFPPTfY69T/EvgelgzhjMx1M
ShkT6SqiIu6yx5G9Nt98J6FLTNixKUOYKfMCSBZ0utE8oWxvsn64J+kMT67vEjK5
PIjKdC0tBaGHuj9QC2AWfyI/E7rFgRK7ofMr23eli1/xt3N3FbIPzoBDe6FyEENC
OuSHopic70k/QJ8oUJxsTB4O7Lr96eJudYu77kI9bom1WAxguKEB82wmz/Polmtq
uwOaYjFbtNm5lq5N1lZAKyRQltWIwgePfC1WCQlW03qNowNrb6yZofyBwVAMcSKK
rXXRIaGaLlX9m59/PizdJD2z7pq95Hl/TnnPhbBqPIoeFA1buEEKKPDONtQPHUz7
Fwj5ZWuwv4B13VTCLLMA8Hmvg8E9nKADgdhL5oI/H+UCTgc9F8Q/LfKsgVXowyaG
KvbIM1jVCQvPtJIroHycUE5uktsLRVSxbf+lPR8IunltvkMeLnTCAuBCkDqfV3oS
ibc3IBbwi3U=
=pwDU
-----END PGP SIGNATURE-----

Attachment: pgpZfYGTwPXPl.pgp
Description: PGP signature


--- End Message ---

Reply to: