From 61cb61018f14e617619ec2137f7b7435da1b7931 Mon Sep 17 00:00:00 2001 From: aleksandrmihajlov Date: Sat, 6 Jun 2026 02:37:22 +0100 Subject: [PATCH] Wait for network-online.target before mirror sync MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit systemd's network.target is passive — only signals that the network stack is loaded, not that the network is actually usable (interfaces configured, default route present, DNS responsive). Timers firing right after boot (especially with Persistent=true catching up missed runs) can race ahead of network readiness, causing rsync to exit 10 (socket I/O error) and the service to enter failed state until the next scheduled run. Replace After=network.target with After=network-online.target and add Wants=network-online.target so the service waits until the network is fully online before attempting to sync. Affects all service templates across playbooks: - combined-mirror: cloudlinux-complete-mirror, cloudlinux-mirror, swng-mirror - complete-swng-rsync: swng-mirror - specific-version-rsync: swng-version-mirror - yum-reposync: swng-reposync Observed on a customer mirror host where post-reboot timer trigger hit a network race; a drop-in with the same fix resolved it. --- ansible/combined-mirror/cloudlinux-complete-mirror.service.j2 | 3 ++- ansible/combined-mirror/cloudlinux-mirror.service.j2 | 3 ++- ansible/combined-mirror/swng-mirror.service.j2 | 3 ++- ansible/complete-swng-rsync/swng-mirror.service.j2 | 3 ++- .../swng-version-mirror.service.j2 | 3 ++- ansible/yum-reposync/swng-reposync.service.j2 | 3 ++- 6 files changed, 12 insertions(+), 6 deletions(-) diff --git a/ansible/combined-mirror/cloudlinux-complete-mirror.service.j2 b/ansible/combined-mirror/cloudlinux-complete-mirror.service.j2 index 691fda0..5e402c7 100644 --- a/ansible/combined-mirror/cloudlinux-complete-mirror.service.j2 +++ b/ansible/combined-mirror/cloudlinux-complete-mirror.service.j2 @@ -1,6 +1,7 @@ [Unit] Description=Sync Complete CloudLinux and SWNG Mirrors -After=network.target +After=network-online.target +Wants=network-online.target [Service] Type=oneshot diff --git a/ansible/combined-mirror/cloudlinux-mirror.service.j2 b/ansible/combined-mirror/cloudlinux-mirror.service.j2 index a2ab277..ff69265 100644 --- a/ansible/combined-mirror/cloudlinux-mirror.service.j2 +++ b/ansible/combined-mirror/cloudlinux-mirror.service.j2 @@ -1,6 +1,7 @@ [Unit] Description=Sync CloudLinux Repository Mirror -After=network.target +After=network-online.target +Wants=network-online.target [Service] Type=oneshot diff --git a/ansible/combined-mirror/swng-mirror.service.j2 b/ansible/combined-mirror/swng-mirror.service.j2 index 22cb729..800ac99 100644 --- a/ansible/combined-mirror/swng-mirror.service.j2 +++ b/ansible/combined-mirror/swng-mirror.service.j2 @@ -1,6 +1,7 @@ [Unit] Description=Sync SWNG Repository Mirror -After=network.target +After=network-online.target +Wants=network-online.target [Service] Type=oneshot diff --git a/ansible/complete-swng-rsync/swng-mirror.service.j2 b/ansible/complete-swng-rsync/swng-mirror.service.j2 index 0c0eab5..f7b6979 100644 --- a/ansible/complete-swng-rsync/swng-mirror.service.j2 +++ b/ansible/complete-swng-rsync/swng-mirror.service.j2 @@ -1,6 +1,7 @@ [Unit] Description=Sync Complete SWNG Repository Mirror -After=network.target +After=network-online.target +Wants=network-online.target [Service] Type=oneshot diff --git a/ansible/specific-version-rsync(Recomended)/swng-version-mirror.service.j2 b/ansible/specific-version-rsync(Recomended)/swng-version-mirror.service.j2 index 3538382..74ad8f9 100644 --- a/ansible/specific-version-rsync(Recomended)/swng-version-mirror.service.j2 +++ b/ansible/specific-version-rsync(Recomended)/swng-version-mirror.service.j2 @@ -1,6 +1,7 @@ [Unit] Description=Sync CloudLinux {{ cloudlinux_version }} SWNG Repository Mirror -After=network.target +After=network-online.target +Wants=network-online.target [Service] Type=oneshot diff --git a/ansible/yum-reposync/swng-reposync.service.j2 b/ansible/yum-reposync/swng-reposync.service.j2 index 0ba02f6..ce32e69 100644 --- a/ansible/yum-reposync/swng-reposync.service.j2 +++ b/ansible/yum-reposync/swng-reposync.service.j2 @@ -1,6 +1,7 @@ [Unit] Description=Sync SWNG Repositories with reposync -After=network.target +After=network-online.target +Wants=network-online.target [Service] Type=oneshot