From 8ff2a6f2d902f404fedd78854dfbbe8f521fb981 Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Nov 29 2023 18:42:54 +0000 Subject: Backport #30197 to fix vconsole startup (RHBZ #2251394) --- diff --git a/0001-units-disable-start-rate-limit-for-systemd-vconsole-.patch b/0001-units-disable-start-rate-limit-for-systemd-vconsole-.patch new file mode 100644 index 0000000..1c8d79a --- /dev/null +++ b/0001-units-disable-start-rate-limit-for-systemd-vconsole-.patch @@ -0,0 +1,45 @@ +From 4704176795c167d49f87dfea79193913e6c6d939 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sat, 25 Nov 2023 13:27:17 +0100 +Subject: [PATCH] units: disable start rate limit for + systemd-vconsole-setup.service + +The unit will be started or restarted a few times during boot, but but it has +StartLimitBurst = DefaultStartLimitBurst = 5, which means that the fifth +restart will already fail. On my laptop, I have exactly 4 restarts, so I don't +hit the limit, but on a slightly different system we will easily hit the limit. +In https://bugzilla.redhat.com/show_bug.cgi?id=2251394, there are five reloads +and we hit the limit. + +Since 6ef512c0bb7aeb2000588d7d05e23b4681da8657 we propagate the start counter +over switch-root and daemon reloads, so it's easier to hit the limit during +boot. + +In principle there might be systems with lots of vtcon devices, so let's just +allow the unit to be restarted without a limit. + +Fixes https://bugzilla.redhat.com/show_bug.cgi?id=2251394. +--- + units/systemd-vconsole-setup.service.in | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/units/systemd-vconsole-setup.service.in b/units/systemd-vconsole-setup.service.in +index 3475d456bc..c6c5bc9130 100644 +--- a/units/systemd-vconsole-setup.service.in ++++ b/units/systemd-vconsole-setup.service.in +@@ -17,6 +17,12 @@ DefaultDependencies=no + Before=sysinit.target + Before=initrd-switch-root.target shutdown.target + ++# This unit will be restarted by udev whenever a new vtcon device appears or is ++# triggered. Usually that happens just a handful of times during boot, but some ++# systems may have hundreds or thousands of serial consoles connected, so let's ++# just disable the limit altogether. ++StartLimitIntervalSec=0 ++ + [Service] + Type=oneshot + # This service will be restarted by udev whenever a new vtcon device appears. +-- +2.43.0 + diff --git a/systemd.spec b/systemd.spec index 607e0ea..34e2bfe 100644 --- a/systemd.spec +++ b/systemd.spec @@ -107,6 +107,11 @@ Patch0001: https://github.com/systemd/systemd/pull/26494.patch Patch0002: 0001-meson-always-install-network-example-files.patch +# https://github.com/systemd/systemd/pull/30197 +# https://bugzilla.redhat.com/show_bug.cgi?id=2251394 +# Drop vconsole restart limit to prevent it sometimes failing on boot +Patch0003: 0001-units-disable-start-rate-limit-for-systemd-vconsole-.patch + # Those are downstream-only patches, but we don't want them in packit builds: # https://bugzilla.redhat.com/show_bug.cgi?id=1738828