Skip to content

sys-apps/systemd: sysupdate do not fail#4118

Open
tormath1 wants to merge 2 commits into
mainfrom
tormath1/sysupdate
Open

sys-apps/systemd: sysupdate do not fail#4118
tormath1 wants to merge 2 commits into
mainfrom
tormath1/sysupdate

Conversation

@tormath1

@tormath1 tormath1 commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Attempt to solve: flatcar/Flatcar#1979 with an upstream approach.

TODO:

core@localhost ~ $ sudo find / -type f -name "noop"
find: '/proc/2334/task/2334/net': Invalid argument
find: '/proc/2334/net': Invalid argument
core@localhost ~ $ sudo systemctl start systemd-sysupdate.service systemd-sysupdate-reboot.service
core@localhost ~ $ systemctl status systemd-sysupdate.service systemd-sysupdate-reboot.service
○ systemd-sysupdate.service - Automatic System Update
     Loaded: loaded (/usr/lib/systemd/system/systemd-sysupdate.service; indirect; preset: disabled)
     Active: inactive (dead) since Thu 2026-06-25 07:27:00 UTC; 6s ago
   Duration: 32ms
 Invocation: e0bd6fe29bdf447ba4343fb7732b3292
TriggeredBy: ● systemd-sysupdate.timer
       Docs: man:systemd-sysupdate.service(8)
    Process: 2378 ExecStart=/usr/lib/systemd/systemd-sysupdate update (code=exited, status=0/SUCCESS)
   Main PID: 2378 (code=exited, status=0/SUCCESS)
   Mem peak: 2.2M
        CPU: 22ms

Jun 25 07:27:00 localhost systemd[1]: Started systemd-sysupdate.service - Automatic System Update.
Jun 25 07:27:00 localhost systemd-sysupdate[2378]: No transfer definitions found.
Jun 25 07:27:00 localhost systemd-sysupdate[2378]: Discovering installed instances…
Jun 25 07:27:00 localhost systemd-sysupdate[2378]: Discovering available instances…
Jun 25 07:27:00 localhost systemd-sysupdate[2378]: Determining installed update sets…
Jun 25 07:27:00 localhost systemd-sysupdate[2378]: Determining available update sets…
Jun 25 07:27:00 localhost systemd-sysupdate[2378]: No update needed.
Jun 25 07:27:00 localhost systemd[1]: systemd-sysupdate.service: Deactivated successfully.

○ systemd-sysupdate-reboot.service - Reboot Automatically After System Update
     Loaded: loaded (/usr/lib/systemd/system/systemd-sysupdate-reboot.service; indirect; preset: disabled)
     Active: inactive (dead) since Thu 2026-06-25 07:27:00 UTC; 6s ago
 Invocation: 2e7850cb0af84034a031f72e3082deae
TriggeredBy: ● systemd-sysupdate-reboot.timer
       Docs: man:systemd-sysupdate-reboot.service(8)
    Process: 2379 ExecStart=/usr/lib/systemd/systemd-sysupdate reboot (code=exited, status=0/SUCCESS)
   Main PID: 2379 (code=exited, status=0/SUCCESS)
   Mem peak: 1.9M
        CPU: 9ms

Jun 25 07:27:00 localhost systemd[1]: Starting systemd-sysupdate-reboot.service - Reboot Automatically After System Update...
Jun 25 07:27:00 localhost systemd-sysupdate[2379]: No transfer definitions found.
Jun 25 07:27:00 localhost systemd-sysupdate[2379]: Discovering installed instances…
Jun 25 07:27:00 localhost systemd-sysupdate[2379]: Determining installed update sets…
Jun 25 07:27:00 localhost systemd-sysupdate[2379]: Couldn't find any suitable installed versions.
Jun 25 07:27:00 localhost systemd[1]: systemd-sysupdate-reboot.service: Deactivated successfully.
Jun 25 07:27:00 localhost systemd[1]: Finished systemd-sysupdate-reboot.service - Reboot Automatically After System Update.

CI ✔️ : https://jenkins.flatcar.org/job/container/job/packages_all_arches/279/cldsv/

@tormath1 tormath1 self-assigned this Jun 23, 2026
Copilot AI review requested due to automatic review settings June 23, 2026 12:57

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a Gentoo user-patch for sys-apps/systemd to prevent systemd-sysupdate invocations (e.g., via timers/services) from exiting non-zero when no transfer definitions are present, addressing Flatcar issue #1979 where the resulting failed units are considered harmless noise.

Changes:

  • Introduce a systemd patch intended to downgrade “no transfer definitions” from an error to a warning while returning success.
  • Adjust src/sysupdate/sysupdate.c behavior (via patch) for the “no transfers defined” condition.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copilot AI review requested due to automatic review settings June 23, 2026 13:27

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 3 comments.

Comment on lines +1 to +4
From f5f1ae2462f192825c5cfd050b33d093a68d8add Mon Sep 17 00:00:00 2001
From: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
Date: Tue, 23 Jun 2026 14:44:49 +0200
Subject: [PATCH] sysupdate: do not fail when no transfers are defined
Comment on lines +9 to +10
We can still warn but this should not fail (i.e return an exit code
different from zero).
Comment on lines +4 to +12
Subject: [PATCH] sysupdate: do not fail when no transfers are defined

`sysupdate` operations like 'list', 'reboot', etc. should not fail when
no transfers are defined.

We can still warn but this should not fail (i.e return an exit code
different from zero).

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
@tormath1 tormath1 force-pushed the tormath1/sysupdate branch from fab43c4 to 142ed2c Compare June 23, 2026 16:29
Copilot AI review requested due to automatic review settings June 24, 2026 11:29

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

Comment on lines +46 to +49
+ if (!context->newest_installed || context->n_transfers) {
+ log_warning("Couldn't find any suitable installed versions.");
+ return 0;
+ }

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sufficiently familiar with this to say for sure whether Copilot is right here, but I think it might be, even though its other points weren't that helpful.

@tormath1 tormath1 Jun 25, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here - what I like with the copilot approach is that it really preserves the initial behavior so we should not introduce side effects.

EDIT: Applied the proposal + kicked-off a CI

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@chewi that seems to do the trick. It sill works as expected and I think it might get higher chance to get approved upstream. I'll now proceed to upstream PR if it works for you.

Comment on lines +29 to +32
+ if (arg_component) {
+ log_warning("No transfer definitions for component '%s' found.", arg_component);
+ return 0;
+ }
Comment on lines +9 to +10
We can still warn but this should not fail (i.e return an exit code
different from zero).
@tormath1 tormath1 marked this pull request as ready for review June 25, 2026 07:30
@tormath1 tormath1 requested a review from a team as a code owner June 25, 2026 07:30
@tormath1 tormath1 force-pushed the tormath1/sysupdate branch from ac11b05 to 85c642d Compare June 25, 2026 07:31
Copilot AI review requested due to automatic review settings June 25, 2026 09:00

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

Comment on lines +1 to +4
From 948a3c664050d9f74b98e2b016cb810aaf4e9651 Mon Sep 17 00:00:00 2001
From: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
Date: Tue, 23 Jun 2026 14:44:49 +0200
Subject: [PATCH] sysupdate: do not fail when no transfers are defined
tormath1 added 2 commits June 25, 2026 13:56
Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants