Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v254 batch up to 8f24348e7216d67548f931a9258363deebfbaa18 #451

Merged
merged 66 commits into from
Nov 15, 2024

Conversation

bluca
Copy link
Member

@bluca bluca commented Nov 15, 2024

No description provided.

DaanDeMeyer and others added 30 commits November 15, 2024 00:13
A daemon-reload is important enough to deserve logging at notice
level.

(cherry picked from commit 4ee41be82507348fbbc9d3ab28aae6330eb51663)
(cherry picked from commit 31e38b55b2e4bb1aa42fe106ea14df8e82758303)
(cherry picked from commit 79dc77a)
Exit/Reboot/Poweroff and similar operations are invasive enough that
logging about who initiated them is very useful to debug issues.

(cherry picked from commit acb0f501f4291efce82bcf89d4ad92b6a895f4fa)
(cherry picked from commit 814be7116dda14074749253d94b83387ceff0ff1)
(cherry picked from commit 4ce7454)
We should not invalidate the socket address size before we use it.

Fixes: #34579
(cherry picked from commit 5699e4c2d470a12c922c4b7c86a8987837911626)
(cherry picked from commit 964f7772ad0ff637db80ae0a9e0afb41a40f5b04)
(cherry picked from commit 4dca568)
Fixes #34670.

(cherry picked from commit 6d3012bab4ce4c1ed260598d05b4e9f2ea471658)
(cherry picked from commit 38d55448b9a56e406b00514303617249f30ee2f2)
(cherry picked from commit d4ecc48)
(cherry picked from commit 25999f868fe0e9684af7a364224ac42071b70f74)
(cherry picked from commit b64601d4545eced99690f99eb5e8b0bb0f1cebff)
(cherry picked from commit 1a55c2d)
(cherry picked from commit f4e3c6e5b318d22a9c40144c6d52ae68a70c264c)
(cherry picked from commit 5a2f94d2dae50fbaa430a96a3096368dfc488380)
(cherry picked from commit 109da92)
(cherry picked from commit a41da1e7037dc36a601d3428343bbc7f0eed3e20)
(cherry picked from commit 697d247e308828e74132305606f73078616f42e2)
(cherry picked from commit 54a43fe)
In mount_load_proc_self_mountinfo(), device_found_node() is synchronously called
during the traversal of mountinfo entries. When there are a large number of
mount points, and the device types are not significantly different, this results
in excessive time consumption during device discovery, causing a performance
bottleneck. This issue is particularly prominent on servers with a large number
of cores in IDC.

This patch decouples device discovery from the mountinfo traversal process,
avoiding redundant device operations. As a result, it significantly improves
performance, especially in environments with numerous mount points.

Signed-off-by: Chen Guanqiao <[email protected]>
(cherry picked from commit 00ad3f02275b507a753495ace5e5f84cb38b604d)
(cherry picked from commit 44e1774660fcddcfefcf153cc3c189ea35572d63)
(cherry picked from commit ea35f88)
Fixes: 206fa93c854e3d5c94e56da9b53e107245f31503
(cherry picked from commit e9984357ad60f087528fbdfd6f4577e93fca8cee)
(cherry picked from commit 50b42bb82ba543164bed33b7fec86e7328261de9)
(cherry picked from commit 848142c)
The documentation claimed that ExecStartPre=/ExecStartPost= accepts
multiple command lines, in contrast to ExecStart=. This is half an
untruth, because ExecStart= allows that too – as long as Type=oneshot is
set.

Hence, reword this a bit, and do not emphasize the contrast.

Prompted by: #34570

(cherry picked from commit c3069a6bfb454a0e02607ad21b5badf9847fe11a)
(cherry picked from commit ff667d8c2ef7ed2378fb1de39e1bcc2af2197d0e)
(cherry picked from commit d0063ca)
(cherry picked from commit 882032faaf9e2d2524936e82ccc770903d4c38d6)
(cherry picked from commit c14a47547d040c4976f20388f5535ed655bbd035)
(cherry picked from commit 40ea469)
This is a new syscall provided by the kernel used to implement faster
uprobes. It's not supposed to be called by userspace, but only by kernel
generated uprobe code.

It should be fine to allow this, as the kernel authenticates the
invocation itself, and we shouldn't break compat with things.

Note that this allowlisting is not sufficient to make ureprobe() work.
libseccomp must be tought the syscall too, but this can happen
independently.

Fixes: #34615
(cherry picked from commit d693c483a2bb3eae490fd78d68fc16d0a731fee2)
(cherry picked from commit 389fbf464907132479cd1d18c7cbee17328f36cf)
(cherry picked from commit 1fd57ca)
…bled

(cherry picked from commit 8b8668b9e71837cb541cd432bc37e4c9405e49cd)
(cherry picked from commit c7762098ec09c2626204c9580c91295414137bba)
(cherry picked from commit b095673)
If either is None the write in this branch of the code will fail.

(cherry picked from commit 9ba53499b97d59cc57ce763b8ba7f272a876dd25)
(cherry picked from commit 39a46aced6a0e462a1ec6daabdba5c924757ee09)
(cherry picked from commit 9dd3a25)
(cherry picked from commit 4ca7b553295315c759a622a47240af56e2d06b46)
(cherry picked from commit d600880c9901575ba981a84ab9ceaf63a4a2e756)
(cherry picked from commit f4206ba)
(cherry picked from commit c9b477415a6293b74df67c8118bafb0ef8662819)
(cherry picked from commit 1f0d68c6e9dc7cc9bd14f47d03eec10389e2c845)
(cherry picked from commit 833a89e)
This adds the missing colon character to the section systemd-sysusers.

(cherry picked from commit 8ef5ea2bf6d8c9ef12b00ab3838b9af81e30bf5d)
(cherry picked from commit 6a288cd999090661461be74f24fd29cb90da1f3f)
(cherry picked from commit a2c6d50)
Follow-up for f963f89 and
1536b7b.

(cherry picked from commit 8fead9c9e46e5f71ae6f6b038ff7f72c5a13b663)
(cherry picked from commit 30cf66855b6e31e7de2bff6d79d5c2d9fc17d684)
(cherry picked from commit f4189fd)
Fixes a regression caused by 84ebe6f (v250).
Fixes #34773.

(cherry picked from commit 77bbd9f1bd2b01bcb2a49ed42c6dc06613532bcf)
(cherry picked from commit a94b2c39f94e7af82a56c52941cc1c6aeaf2318f)
(cherry picked from commit 71fca73)
(cherry picked from commit 5f3cfb9d5ee334c53cc407308ba677401a6ba1cd)
(cherry picked from commit 04bf8544baa3ef4c675e610f35dd44f2ea60382e)
(cherry picked from commit 41ebd13)
Even optarg is erased, copied string was not erased.
Let's erase the copied key for safety.

(cherry picked from commit d0ad4e88d4e6b5e312c359a6505125f7e088f3e3)
(cherry picked from commit 28f7c958fb799887cb67528a85ca59f0ccd9261e)
(cherry picked from commit 6b13398)
../src/resolve/resolved-bus.c: In function ‘call_link_method’:
../src/resolve/resolved-bus.c:1769:16: warning: ‘l’ may be used uninitialized [-Wmaybe-uninitialized]
 1769 |         return handler(message, l, error);
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~
../src/resolve/resolved-bus.c:1755:15: note: ‘l’ was declared here
 1755 |         Link *l;
      |               ^
../src/resolve/resolved-bus.c: In function ‘bus_method_get_link’:
../src/resolve/resolved-bus.c:1828:13: warning: ‘l’ may be used uninitialized [-Wmaybe-uninitialized]
 1828 |         p = link_bus_path(l);
      |             ^~~~~~~~~~~~~~~~
../src/resolve/resolved-bus.c:1816:15: note: ‘l’ was declared here
 1816 |         Link *l;
      |               ^

(cherry picked from commit 5f911aca8434b4163514019fcb4c1c967a50617c)
(cherry picked from commit 2590b77f39f7c1264b686e0b379465f5670631d3)
(cherry picked from commit 4c9509a)
(cherry picked from commit c5928a768417b298eb2741107fa7492e93d637fc)
(cherry picked from commit 3b171cb7bc6d84381f8ac27722503b103745cd2b)
(cherry picked from commit ee80f6b)
…em_base sysattr is zero

Various archs do not know the "io port" concept, hence check for the
"iomem" configuration, too.

Fixes: #34800
(cherry picked from commit 9da582984b632a75f562a304ff96dd1043281430)
(cherry picked from commit 7803507b6e2a0e120e73b6a66460e458d72b0207)
(cherry picked from commit fadf1b1)
Previously, GREEDY_REALLOC_APPEND would compile perfectly fine and cause
subtle memory corruption if the caller messes up the type they're passing
in (i.e. by forgetting to pass-by-reference when appending a Type* to an
array of Type*). Now this will lead to compilation failure

(cherry picked from commit fafc3c2d5c7fae6bad0f6dc51611ae9390589ade)
(cherry picked from commit b3fc9021164222fae727988dc1b6203e7c0aa683)
(cherry picked from commit 299118f)
Limits should be enforced, but not in a way real setups collide with
them.

There have been multiple reports that current limits are too low, hence
raise them 8x.

Fixes: #24852
(cherry picked from commit af7674f4ad30e83efc84f04c45f01e6eff137702)
(cherry picked from commit dc47ba69fcc6ff01b813777b126f4cf9b571a9c9)
(cherry picked from commit c0d234a)
This might have the effect that some DNS server or search domain
disappears, hence rewrite the relevant files.

See: #27543
(cherry picked from commit 562f7bde8872b4fd03db11bf25c9dd294fd2c186)
(cherry picked from commit 72806073770393982a50aed54c40164105c9bf14)
(cherry picked from commit 1de3aa4)
…ically

Some of the log message stricts used proper uppercasing, others didn't.
Fix that to make it uniform.

(cherry picked from commit 620a03f669a9075f2d78c2fcf7db45f7046481bc)
(cherry picked from commit f2833a50bdbb735913b7b549d9b2ce9b659d5e1f)
(cherry picked from commit 331a02e)
Fixes: #31799
(cherry picked from commit 2186334e00acba6e6c1a4564bce60474eecfbf16)
(cherry picked from commit 452cfd91fe07792775f4eccad813e148f96d4a86)
(cherry picked from commit 0c919ea)
As per spec image builders can create a local /etc/os-release
with per-image IDs, so modify that one instead of the original
one in /usr/lib. For example we do this when we build debian
unstable images in mkosi.

(cherry picked from commit 2f6fe4e1131d39fcafa9e00a7902919efb5361e1)
(cherry picked from commit 602e12f34003a90b5dbaee074d12abed0142d8c1)
(cherry picked from commit 3c6873c)
keszybz and others added 3 commits November 15, 2024 00:26
This makes it easier to diagnose why colors are disabled.

(cherry picked from commit b137b2979868e2de5fb5c26e90bacee33597b8e7)
(cherry picked from commit bbdb5f97a96e5942bb055770366e0d48c3ee8540)
(cherry picked from commit f120804)
…plicitly

Otherwise, with recent additions, the MAINPIDFDID= generated by
systemd-notify would mismatch with overridden MAINPID=.

(cherry picked from commit c3ecb747f1e35f609f15fc94ad4d5e5ca0bda4a2)
(cherry picked from commit b2496d151ae093974e6ecd3a6b3299e1ba5f3e23)
(cherry picked from commit e0bb603)
Users will generally know what a qrcode is, so let's not treat them as dumb and
explain that it can be scanned. OTOH, we should say what the qrcode contains
and it is useful to give a hint why the users would want to scan it. Reword
messages accordingly.

(Also, don't say "to your phone", when somebody might be using a stolen phone,
or something else then a phone.)

(cherry picked from commit 10faa40ba781cf499258a3b37de02dd643822dc6)
(cherry picked from commit fefd60bf7ad9f361c85395ab38f10482f3007f15)
(cherry picked from commit 4ca8f5e)
@bluca bluca changed the title v254 batch up to 71829dcbd30ef5055559cd6c1950254fbbd3746b v254 batch up to 8f24348e7216d67548f931a9258363deebfbaa18 Nov 15, 2024
log_info appears to be the preferred method to convey information from
tests. Convert all the printfs to log_info to follow this standard.

(cherry picked from commit 38557d9ffbc6351b8980faf90d54619790436d43)
(cherry picked from commit 4ea84288480115f7175a8cfc61d03e3a712396b8)
(cherry picked from commit cfa083d)
(cherry picked from commit c53df275d512a219806a181de3bd57f02dc38dab)
(cherry picked from commit 59f5de450a99d876d3af17d6430779976d1d8af4)
(cherry picked from commit ef1982e)
In https://bugzilla.redhat.com/show_bug.cgi?id=2322937 we're getting
an error message:
Okt 29 22:21:03 fedora systemd-resolved[29311]: Could not create manager: Cannot allocate memory
I expect that this actually comes from dnstls_manager_init(), the
openssl version. But without real logs it's hard to know for sure.

Use EIO instead of ENOMEM, because the problem is unlikely to be actually
related to memory.

(cherry picked from commit ee95e86ae163e436384f1b782a77a7e18deba890)
(cherry picked from commit abd1e408203d5d445b05f4dc0ac07e35114532d1)
(cherry picked from commit 67954b4)
Fixes: #35022
(cherry picked from commit 9810899ef2f28fbb42cf659e6892b1a5074cfc83)
(cherry picked from commit 070dbe1e77fc25201a89770beb691135ce84bed1)
(cherry picked from commit ccc2e1f)
Fixes: #32751
(cherry picked from commit 5adc4337996f561df43c617e37ef4b157073b2e6)
(cherry picked from commit a6f9c2031666a856f137109e77c856a8e238a59b)
(cherry picked from commit b8a62a9)
Processes can easily survive the first kill operation we execute, hence
we shouldn't make strong claims about them having exited already. Let's
just say "likely" hence.

Fixes: #15032
(cherry picked from commit ac804bc2f8d814d2afcdccd88f7469ac320da1c8)
(cherry picked from commit 307a6332a63dd0f6addbc5c77d21f72ce4578070)
(cherry picked from commit b38386a)
To keep align with the logic used in udev_rules_parse_file(), we also
should skip the empty udev rules file while collecting the stats during
manager reload. Otherwise all udev rules files will be parsed again whenever
reloading udev manager with an empty udev rules file. It's time consuming
and the following uevents will fail with timeout.

(cherry picked from commit 2ae79a31b7c7947e2c16e18eb85ac5607ebc40b6)
(cherry picked from commit 688eb20fdb9c4bcc6d205323f9cec119d6273169)
(cherry picked from commit 484d31a)
`loginctl kill-session --kill-whom=leader <N>` (or the D-Bus equivalent)
doesn't work because logind ends up calling `KillUnit(..., "main", ...)`
on a scope unit and these don't have a `MainPID` property. Here, I just
make it send a signal to the `Leader` directly.

(cherry picked from commit 8254755091847105c33e473c62cdc7621ed275bc)
(cherry picked from commit c89c5d04f33dbc5c6dfb67b8bc58cbd3d924b434)
(cherry picked from commit 80efb1d)
It seems there is no restriction for local and remote addresses.

Fixes #34930.

(cherry picked from commit 5e48fd0506ed6212c9db2276d5845ab77aa9bce4)
(cherry picked from commit 3093ac05abcaf5a43f75ec1d5702ed226cc3ce31)
(cherry picked from commit 81c8433)
git restore -s origin/main hwdb.d/ test/hwdb.d

(cherry picked from commit 7e36a73e2e4d580b2df0f755569ca4040bfe7232)
(cherry picked from commit 6e29d79)
The concept of synthetic errnos is about logging, which
is irrelevant irt bus error and we don't do any special
treatment in sd-bus for them, meaning the value propagated
would be spurious.

(cherry picked from commit 2f2058da0b88535cb3a95fc98e7b2f1ae4d35601)
(cherry picked from commit 018c7fb18ae8aff5414d5e74cb41fb98b72c0554)
(cherry picked from commit 39c2b7f)
Outside of x86, some machines (e.g. Apple silicon, AMD Opteron A1100) have
physical memory mapped above 4GiB, meaning this allocation will fail, causing
the entire boot process to fail on these machines.

This commit makes it so that the below-4GB address space allocation requirement
is only set on x86 platforms, and not on other platforms (that don't have the
specific Linux x86 boot protocol), thereby fixing boot on those that have no
memory mapped below 4GiB in their address space.

Tested on an Apple silicon M1 laptop and an AMD x86_64 desktop tower.

Fixes: #35026

Manual backport of 6e207b370e91e681efb08c497a6c8ad78e3c8d83.

(cherry picked from commit a9d9db7f4e4a75f6dbda5c31fbbf325eff9d63b4)
(cherry picked from commit 8923d93)
Also, ignore the error on caller's side.

(cherry picked from commit 758760a3610e3c6674de8a1d51b12b991eafef7c)
(cherry picked from commit 489cf962ada63e3d26d8f91b589aff170bc65317)
(cherry picked from commit f11fa83)
… only

This is preparation for reusing the logic for syncing DM and other
devices with a timeout applied.

(cherry picked from commit 13b5225d6278af15e84ebd1889f04cfe81b47787)
(cherry picked from commit 05df6c341951e40aca02cb116002b05ec2a26c16)
(cherry picked from commit be91329)
Let's put a time-out on this syncing.

Inspired-by: #34289 #34283
(cherry picked from commit b4b66b26620bfaf5818c95d5cffafd85207694e7)
(cherry picked from commit dbf933478f16d68b61150b845c4f897ae3b7a91a)
(cherry picked from commit 74667d4)
(cherry picked from commit 9eee6b1b3f00d46459eebefb70be50ea6af30ddb)
(cherry picked from commit f3baba94425e6ccaf7a672903148dbb2b9e022f7)
(cherry picked from commit be571ff)
Fixes #33954.

(cherry picked from commit e31a55edf136e777aabdf19894ee886eac47c20e)
(cherry picked from commit 4cd435ca49950c2bba86a95b500c6d239f18efe1)
(cherry picked from commit f9f74a0)
(cherry picked from commit 2a774f064815573efc33d43dfe3548590e42e9c2)
(cherry picked from commit 56cc8acf45dbff227d1713d509bc3b71386df5d8)
(cherry picked from commit 2e956d0)
…k is unspecified

Follow-up for efedb6b0f3cff37950112fd37cb750c16d599bc7.
Closes #35116.

(cherry picked from commit 985ea98e7f90c92fcc0b8441fafb190353d2feb8)
Really rewritten from scratch.
(cherry picked from commit 04ee5e25a1082d4c6c0c52a154d5ad5fc959a853)
(cherry picked from commit 45b39f9)
Workaround for systemd/systemd#34471

(cherry picked from commit 71829dc)
… FD store"

The test does not work on older releases, so revert the change as we
cannot validate it properly.

This reverts commit 3888d11.

(cherry picked from commit 3e30268)
In this branch it's testsuite-xy.foo, not TEST-XY-FOO

Follow-up for dffa62c
The mkosi action.yaml links systemd main, and instealls an hard-coded
set of binaries. ukify now depends on the new systemd-keyutil, which
cannot be in that list. Link it manually.

(cherry picked from commit 8f24348)
@bluca bluca merged commit 150b961 into systemd:v254-stable Nov 15, 2024
37 of 42 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.