Skip to content

v254 batch up to 356c54394add8c6a1d52773852c23656590dc33b#487

Merged
bluca merged 28 commits intosystemd:v254-stablefrom
bluca:v254-stable
Jun 26, 2025
Merged

v254 batch up to 356c54394add8c6a1d52773852c23656590dc33b#487
bluca merged 28 commits intosystemd:v254-stablefrom
bluca:v254-stable

Conversation

@bluca
Copy link
Member

@bluca bluca commented Jun 26, 2025

No description provided.

AdrianVovk and others added 28 commits June 26, 2025 09:47
The docs previously stated that RandomizedDelaySec is applied onto the
next scheduled time, but after 9fa326b
this is no longer the case.

I also reworded FixedRandomDelay= slightly, to make it a bit clearer

(cherry picked from commit fca20a1)
(cherry picked from commit 0930949e64cd91e366865e104a295ddc83170fdd)
(cherry picked from commit a37d96386a3f8ded382164ad85e458e848853499)
(cherry picked from commit fe859ba)
…no master

When an interface leaved from the master interface, then reading
IFLA_MASTER attribute causes ENODATA. When the interface was previously
enslaved to another interface, we need to remove reference to the
interface from the previous master interface.

This is especially important when
```
ip link set dev eth0 nomaster
```
is called.

Fixes a bug introduced by 0d411b7 (v249).
Fixes #37629.

(cherry picked from commit f44b20b)
(cherry picked from commit 2ad46c06069ad4241c94124dd5a3a73da7828048)
(cherry picked from commit c584dfb2051207af017ea1437b3d255023c902f5)
(cherry picked from commit a023d22)
If master ifindex is non-zero, then the carrier state and operational
state of the interface may be the enslaved state.
As the operational state is saved in link state file, and read by
wait-online, we need to update the state file when the master ifindex is
changed.

(cherry picked from commit 7dde00c)
(cherry picked from commit e9655c7865d632bd05437f8ebd4264a13b8011e4)
(cherry picked from commit 018e874b84c53ef5b8c2f4835a2f9e554c5fe409)
(cherry picked from commit 2057199)
(cherry picked from commit b1bed07)
(cherry picked from commit a11a8221019a3c364e783052e18dcf438fa3dace)
(cherry picked from commit 8c2213cf1e2f552ccecf396531e861de4ce77d69)
(cherry picked from commit 5f7efc2)
Otherwise after the service exits it will still show
"Installing 'foobar'" as the status, which is confusing

(cherry picked from commit 5cfc9c3)
(cherry picked from commit 0e502d986b724f195385ad99f7f214d8586fec7f)
(cherry picked from commit 8d7dce9a534cf14a2587145590ddea01eeb84291)
(cherry picked from commit 43e73a7)
A new core was added to the test, but the loop counter was not increased
to wait for it, so the test races against systemd-coredump's processing.

This failed at least once in debci:

8015s [   32.227813] TEST-87-AUX-UTILS-VM.sh[1038]: + coredumpctl info COREDUMP_TIMESTAMP=1679509902000000
8015s [   32.228684] TEST-87-AUX-UTILS-VM.sh[1723]: No coredumps found.

Follow-up for 0c49e00

Fixes systemd/systemd#37666

(cherry picked from commit 703fbb0)
(cherry picked from commit ccbad62c42ab8e00b824aaa22036cc5cc65ab203)
(cherry picked from commit 5ef906f002ec50fa62232a83dc974620fd6b046c)
(cherry picked from commit 12f4ba1)
(cherry picked from commit c9e614e)
(cherry picked from commit 4af9f5044a352fc0d67b3eb57ae09b595f724eee)
(cherry picked from commit 7ac7b91ae030b1d6ca0a5efb4a26c8c30f6da5a1)
(cherry picked from commit d1bf709)
In function `tc_init`, hz is parsed from the content of file
`"/proc/net/psched"` and can be 0.
In function `hierarchy_token_bucket_class_verify`, hz is directly used
as a divisor in
`htb->buffer = htb->rate / hz + htb->mtu;` without any check. This adds a check on hz before using it as a divisor.

Co-authored-by: jinyaoguo <guo846@purdue.edu>
(cherry picked from commit 1a59605)
(cherry picked from commit e2c9fdd5c0f84eb234e122fe8fce9c4d949882cd)
(cherry picked from commit 64206ad1372a7df4c96c1fd8cd363a6032eaeadf)
(cherry picked from commit b53cf28)
If the first call to `loop_read()` returns 0 (no input), `total_in`
remains 0, causing `total_out/total_in` to potential divide by zero.

We add a check before logging the compression ratio to skip the
percentage calculation when total_in is zero.

Co-authored-by: jinyaoguo <guo846@purdue.edu>
(cherry picked from commit 2584f74)
(cherry picked from commit 18a42e321d699e7f3ae46930fa070228d02774ed)
(cherry picked from commit eaffe6679b6bcf6d5ba4d468332079a9ac82da43)
(cherry picked from commit 93f677f)
…e of grain size

See partition_min_size_with_padding().
Fixes #37178.

(cherry picked from commit cb109e0)
(cherry picked from commit 4e6d6d885d320c27deb63b8a5ae5b330c00a174c)
(cherry picked from commit ee9434f7022fdbb48a2f1466d9531da2a30c35cd)
(cherry picked from commit 8e76eab)
Fixes: #33300
Replaces: #35102
(cherry picked from commit 959d7f1)
(cherry picked from commit 8f1b7ec9edd4ce7d5ced86d29e659fda95dd95f3)
(cherry picked from commit b5d7d32d6575f28bc447576e1da52f8f41805c79)
(cherry picked from commit cf3d93b)
(cherry picked from commit 874c4be)
(cherry picked from commit 93fc50ec2b3f505e20774dda45b37f1b594a4226)
(cherry picked from commit a332cc7f6a444e8f738476c2cc12d93ef286cf24)
(cherry picked from commit 57aaba3)
Kernel 6.16 started returning EOPNOTSUPP when a required kconfig
is disabled. Downgrade to debug level in that case.

Fixes systemd/systemd#37783

(cherry picked from commit bb887cf)
(cherry picked from commit 42cc4991976821d33b094a4d3787cd6b80a8fbdb)
(cherry picked from commit 1613414ac0a5a370e8754943c273f49ba37edaf3)
(cherry picked from commit b97861d)
…egenerated

Fixes #37458.

(cherry picked from commit 5814acc)
(cherry picked from commit e40fbaa18e747ee213303cd0ff780d95f5c812e9)
(cherry picked from commit 579b59ac1db32ed5848474c59300419f28126117)
(cherry picked from commit ce1d728)
If mode= is not set in rootflags= add mode=0755 when a tmpfs
is used on the rootfs, otherwise it will be group/world writable
as that's the default mode for tmpfs filesystems.

Follow-up for 725ad3b

(cherry picked from commit d3a57a0)
(cherry picked from commit 0e8f13faf3fafc3679131713915a56c74403f3a3)
(cherry picked from commit 69beb94574ba41b167396fdcd651e9f59f2d8d75)
(cherry picked from commit 0fc39fe)
We now consider link-local addresses routable when we have configured
unicast link-local dns servers. This allows creating the DNS scope, even
when the interface doesn't get a routable address.

(cherry picked from commit c60d2a6)
(cherry picked from commit bd9a51fc67faead42dcaac819f5c432741b4a32a)
(cherry picked from commit 807e18536ad96a28d041ce57b760cfb81c980cd6)
(cherry picked from commit 1272e28)
Current text hints that machine-id in template image should be empty
if the system is read-only. But most of the bare metal systems and
regular VMs have /etc read-only at this phase of boot.

(cherry picked from commit 64fcb07)
(cherry picked from commit 5f55879673b119ebc98280518a9ab5bb7f4b1c5d)
(cherry picked from commit 8ee0c2ee0ca8be0a34e9528b11e912735e8b5a33)
(cherry picked from commit 6e9eba2)
systemd-homed[3443]: Sending to worker:
{
  "enforcePasswordPolicy": false,
  "userName": "foobarbaz",
  "perMachine": [
    {
      "storage": "directory",
      "matchMachineId": "c1082742b92c4f7e8d30d6b17f9d3351"
    }
  ],
  "disposition": "regular",
  "lastChangeUSec": 1750606709833174,
  "lastPasswordChangeUSec": 1750606709833174,
  "privileged": {
    "hashedPassword": [
      "$y$j9T$ai2Fshq0ev9W05WL4SoRJ1$EFfe41ACrJKXMCQ83A05n6UW.HrRr9/O4b1x0CXgAXD"
    ]
  },
  "binding": {
    "c1082742b92c4f7e8d30d6b17f9d3351": {
      "blobDirectory": "/var/cache/systemd/home/foobarbaz",
      "uid": 60056,
      "gid": 60056
    }
  },
  "secret": {
    "password": [
      "test"
    ]
  },
  "__systemd_homework_internal_blob_fdmap": {}
}

(cherry picked from commit e248790)
(cherry picked from commit a283e832dabd35d9f6e6aace0525ecf4f6372b57)
(cherry picked from commit bd71224be1cce183ea0b862ae702d0bb62873479)
(cherry picked from commit 49d2797)
… for the next

So far we already had a logic in place to go for the next mode if some
mode doesn't work – but it was only applied if we'd actively cycle
through resolutions.

Let's extend the logic and always apply it: whenever we try to switch to
a mode, and it doesn't work, go to the next one until we find one that
works.

Fixes: #37324
(cherry picked from commit b53c3af)
(cherry picked from commit 66235376a48d2d94bba6c5db0b9f5448243c2041)
(cherry picked from commit 5b3ab2f8a6650841cbac5823e0c6ccbd78096c84)
(cherry picked from commit b869d19)
Otherwise copy_tree_at() will try to copy the symlink which we obviously
don't want.

(cherry picked from commit 1e0e7c7)
(cherry picked from commit 2a918e2a9741ccd28733e230f6e095cfdb5c6ff2)
(cherry picked from commit 9c4507645b4e8663724132d4805a68b0d0fb615d)
(cherry picked from commit c7baa6a)
(cherry picked from commit fc49b29)
(cherry picked from commit 74682088723f62424ab6ad7e219d9e6ecbc51c38)
(cherry picked from commit c41a1c28c6af28ee05097296518aa6ea2221b288)
(cherry picked from commit e038fdd)
(cherry picked from commit fe51a61)
(cherry picked from commit e35d83a7065ef062f113522dfdacbb41622c13ab)
(cherry picked from commit ef1657c7db1a0942eedb0b6f9aee597e7158e61d)
(cherry picked from commit 610a974)
The function manager_unit_cache_should_retry_load() reutrns true only
when the unit state is UNIT_NOT_FOUND. Hence, it is not necessary to
call bus_unit_validate_load_state() before checking
manager_unit_cache_should_retry_load().

(cherry picked from commit 7ad2e66)
(cherry picked from commit 915ffa770f3d65e28cf4ed8811140e9933eff242)
(cherry picked from commit cca17f069bdc72bcb1a9d9d9e3b8d4b2064037e9)
(cherry picked from commit eae4a19)
…iled

When unit_load() failed for some reasons, previously we overrided the
load state with UNIT_NOT_FOUND, but we did not update the
Unit.fragment_not_found_timestamp_hash. So, the unit may be loaded
multiple times when the unit is in a dependency list of another unit,
as manager_unit_cache_should_retry_load() will be true again even on
next call.
Let's not override the unit state set by unit_load().

Note, after unit_load(), the unit state should not be UNIT_STUB.
Let's also add the assertion about that.

This change is important when combined with the next commit, as with the
next commit we will restart the FOREACH_UNIT_DEPENDENCY() loop if an unit
is reloaded, hence overriding load state with UNIT_NOT_FOUND may cause
infinit loop.

(cherry picked from commit 9b6aa9e)
(cherry picked from commit 0e5fc0a29c4a98f781d4d4911b5f589f31c9f10e)
(cherry picked from commit 7dfa163cecb3e79daf35ad9858d0e9b725cb2234)
(cherry picked from commit 87aea85)
…hen dependency is updated in the loop

When starting unit A, a dependent unit B may be loaded if it is not
loaded yet, and the dependencies in unit A may be updated.
As Hashmap does not allow a new entry to be added in a loop, we need to
restart loop in such case.

Fixes a bug introduced by cda6677.
Fixes #36031.

(cherry picked from commit b7777d0)
(cherry picked from commit 4dc4fdcfe051b10aa4f7fe4d3ab220c27084eaf5)
(cherry picked from commit 01f34bf5df4c42bdd0e3622d0823a54f91316f61)
(cherry picked from commit 9316f1b)
(cherry picked from commit 7824e70)
(cherry picked from commit 0846c1414402fc67080c90d235c543ec54576315)
(cherry picked from commit b756d7d74e9d352a11c6e0041f8832f84797bca4)
(cherry picked from commit ad5812a)
It will otherwise interpret characters such as '+' as if they
were regex, and break matching.

For example TEST-71-HOSTNAME started failing when
uname -r started including a '+':

FAIL: 'Kernel: Linux 6.12.33+deb13-amd64' not found in:
 Static hostname: host
       Icon name: computer-vm
         Chassis: vm 🖴
      Machine ID: e6471c1f95ab49098827498ed816cdf7
         Boot ID: 231da987f64d4af59f2076fbb638c611
  Virtualization: kvm
Operating System: Debian GNU/Linux 13 (trixie)
          Kernel: Linux 6.12.33+deb13-amd64
    Architecture: x86-64

(cherry picked from commit a0dfb02)
(cherry picked from commit de5642b63e5c9210052b97105457a3debf5cc309)
(cherry picked from commit c6e94cb7910d5f12bd64c21cd4ed36499c6addf1)
(cherry picked from commit 359fed1)
git restore -s origin/v257-stable hwdb.d/ test/hwdb.d

(cherry picked from commit 244de7aee3181de8be64c1501eef0081d498f21c)
(cherry picked from commit 356c543)
@packit-as-a-service
Copy link

We were not able to find or create Copr project packit/systemd-systemd-stable-487 specified in the config with the following error:

Cannot create a new Copr project (owner=packit project=systemd-systemd-stable-487 chroots=[]): chroots: '[]' is not a valid choice for this field..

Unless the HTTP status code above is >= 500, please check your configuration for:

  1. typos in owner and project name (groups need to be prefixed with @)
  2. whether the project name doesn't contain not allowed characters (only letters, digits, underscores, dashes and dots must be used)
  3. whether the project itself exists (Packit creates projects only in its own namespace)
  4. whether Packit is allowed to build in your Copr project
  5. whether your Copr project/group is not private

@bluca bluca merged commit da2d44a into systemd:v254-stable Jun 26, 2025
31 of 34 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

9 participants

Comments