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

v252 batch up to f92cd4d022fbec3b351dd489d15b65fd9ba64c9d #454

Merged
merged 44 commits into from
Nov 16, 2024

Conversation

bluca
Copy link
Member

@bluca bluca commented Nov 16, 2024

No description provided.

poettering and others added 30 commits November 16, 2024 10:32
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)
(cherry picked from commit 969f4f3)
(cherry picked from commit 62efdf8)
(cherry picked from commit f4e3c6e5b318d22a9c40144c6d52ae68a70c264c)
(cherry picked from commit 5a2f94d2dae50fbaa430a96a3096368dfc488380)
(cherry picked from commit 109da92)
(cherry picked from commit 10808d1)
(cherry picked from commit 3337845)
(cherry picked from commit a41da1e7037dc36a601d3428343bbc7f0eed3e20)
(cherry picked from commit 697d247e308828e74132305606f73078616f42e2)
(cherry picked from commit 54a43fe)
(cherry picked from commit 4e089fc)
(cherry picked from commit e218821)
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)
(cherry picked from commit 7ed4036)
(cherry picked from commit 39f4a5a)
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 4e23372)
(cherry picked from commit b6b898c)
(cherry picked from commit 882032faaf9e2d2524936e82ccc770903d4c38d6)
(cherry picked from commit c14a47547d040c4976f20388f5535ed655bbd035)
(cherry picked from commit 40ea469)
(cherry picked from commit 9d7f1c6)
(cherry picked from commit a73de75)
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)
(cherry picked from commit bde6caa)
(cherry picked from commit 6feda43)
…bled

(cherry picked from commit 8b8668b9e71837cb541cd432bc37e4c9405e49cd)
(cherry picked from commit c7762098ec09c2626204c9580c91295414137bba)
(cherry picked from commit b095673)
(cherry picked from commit d1bc81b)
(cherry picked from commit 388630c)
(cherry picked from commit c9b477415a6293b74df67c8118bafb0ef8662819)
(cherry picked from commit 1f0d68c6e9dc7cc9bd14f47d03eec10389e2c845)
(cherry picked from commit 833a89e)
(cherry picked from commit 6bb1aba)
(cherry picked from commit 18002c8)
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)
(cherry picked from commit 4b21746)
(cherry picked from commit 51ac5cf)
Follow-up for f963f89 and
1536b7b.

(cherry picked from commit 8fead9c9e46e5f71ae6f6b038ff7f72c5a13b663)
(cherry picked from commit 30cf66855b6e31e7de2bff6d79d5c2d9fc17d684)
(cherry picked from commit f4189fd)
(cherry picked from commit 51ed671)
(cherry picked from commit 831c6a1)
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 556f054)
(cherry picked from commit b434c13)
(cherry picked from commit 5f3cfb9d5ee334c53cc407308ba677401a6ba1cd)
(cherry picked from commit 04bf8544baa3ef4c675e610f35dd44f2ea60382e)
(cherry picked from commit 41ebd13)
(cherry picked from commit 481f29f)
(cherry picked from commit abd0c2d)
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)
(cherry picked from commit b115781)
(cherry picked from commit 42d8985)
../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 7d275f1)
(cherry picked from commit 9bb1359)
(cherry picked from commit c5928a768417b298eb2741107fa7492e93d637fc)
(cherry picked from commit 3b171cb7bc6d84381f8ac27722503b103745cd2b)
(cherry picked from commit ee80f6b)
(cherry picked from commit 7a64921)
(cherry picked from commit d3843cb)
…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)
(cherry picked from commit 749df25)
(cherry picked from commit 44412eb)
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)
(cherry picked from commit 15c33cb)
(cherry picked from commit 89291a6)
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)
(cherry picked from commit cea9e16)
(cherry picked from commit ece7809)
…mended

(cherry picked from commit 9b1a5bc365e379b4b13849adacfde3427f55ca38)
(cherry picked from commit a816075978767187f1a172326f414f67d905001b)
(cherry picked from commit e6247b0)
(cherry picked from commit 207ee49)
(cherry picked from commit a26c25a)
The links moved to the legacy dataset so they won't be available by
default, so stop using them and just use the city ones instead

(cherry picked from commit aa077884c13769ae3bd6aa98978b4ac9e64b5365)
(cherry picked from commit 4a3fc628a24b5f13af350691ff50f8be905c9c9c)
(cherry picked from commit 484cd85)
(cherry picked from commit c2d3456)
(cherry picked from commit 4d7b8a3)
virtio console uses /dev/hvc* so we need access to write wall
messages

(cherry picked from commit 5ff6841c2378ed83e645681cbd4ee145f68d72b7)
(cherry picked from commit 0852240f927f47100b61e3b33e34a0f74b0d6a90)
(cherry picked from commit ccb9632)
(cherry picked from commit 9e47ce3)
(cherry picked from commit 88d2d36)
Fixes a bug introduced by baf3fde.

This also adds several assertions at the beginning of the function.

Fixes #34899.

(cherry picked from commit 5dc0668802cd07cdca2dc5bda52cc1e63b57f145)
(cherry picked from commit 7455e7622113969866ed116d101aa54cfe2b1f7e)
(cherry picked from commit 261469e)
(cherry picked from commit e5f6d45)
(cherry picked from commit 25d95a2)
(cherry picked from commit 1e8f0beee4272ddc8b25dfa9af8e54bafc4c061a)
(cherry picked from commit b9ff85ece7a6bd9eca158aa0a8af46055ffb6142)
(cherry picked from commit e575661)
(cherry picked from commit 12b7b9e)
(cherry picked from commit 3c253f9)
const is stronger than pure, see
https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-pure-function-attribute
and
https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-const-function-attribute.

(cherry picked from commit 955c51c087f1fb6d0b7a0091db943ad05ba3095e)
(cherry picked from commit a5e128ca26cab912b4e404dbd6ad9cb6f60c67da)
(cherry picked from commit afcbe7c)
(cherry picked from commit f680da5)
(cherry picked from commit 4219dc3)
We would need to use pure if the funtion was getting pointers and
dereferencing them. But sd128_t is a structure and those functions
only access the parameters of the call.

(cherry picked from commit dc32b09b70c9bb20821df92ac82ace83d8a968e2)
(cherry picked from commit 3190a427b915976c9c11979acad20682e947a3c8)
(cherry picked from commit b166ddd)
(cherry picked from commit e0aa869)
(cherry picked from commit 3840328)
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)
(cherry picked from commit f40708b)
(cherry picked from commit 90010fb)
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)
(cherry picked from commit d415c1d)
(cherry picked from commit 617136c)
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 6dda2e1)
(cherry picked from commit b9caa34)
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)
(cherry picked from commit 17a3a8e)
(cherry picked from commit 12e76a5)
poettering and others added 14 commits November 16, 2024 10:32
Fixes: #35022
(cherry picked from commit 9810899ef2f28fbb42cf659e6892b1a5074cfc83)
(cherry picked from commit 070dbe1e77fc25201a89770beb691135ce84bed1)
(cherry picked from commit ccc2e1f)
(cherry picked from commit 8e353d2)
(cherry picked from commit 5fee803)
Fixes: #32751
(cherry picked from commit 5adc4337996f561df43c617e37ef4b157073b2e6)
(cherry picked from commit a6f9c2031666a856f137109e77c856a8e238a59b)
(cherry picked from commit b8a62a9)
(cherry picked from commit 85e29f7)
(cherry picked from commit 51d8bd3)
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)
(cherry picked from commit e23cbec)
(cherry picked from commit 3ddb795)
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)
(cherry picked from commit 8b6ae95)
(cherry picked from commit e0b8d73)
`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)
(cherry picked from commit 94b234d)
(cherry picked from commit bf4d3b2)
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)
(cherry picked from commit 6f19e9f)
(cherry picked from commit 2e68de2)
git restore -s origin/main hwdb.d/ test/hwdb.d

(cherry picked from commit 7e36a73e2e4d580b2df0f755569ca4040bfe7232)
(cherry picked from commit 6e29d79)
(cherry picked from commit 223b317)
(cherry picked from commit 57778c6)
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)
(cherry picked from commit 06be1bf)
(cherry picked from commit bddd7a1)
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)
(cherry picked from commit 6f0a01d)
(cherry picked from commit 9601ac9)
(cherry picked from commit 9eee6b1b3f00d46459eebefb70be50ea6af30ddb)
(cherry picked from commit f3baba94425e6ccaf7a672903148dbb2b9e022f7)
(cherry picked from commit be571ff)
(cherry picked from commit ca169c9)
(cherry picked from commit 6bad63a)
Fixes #33954.

(cherry picked from commit e31a55edf136e777aabdf19894ee886eac47c20e)
(cherry picked from commit 4cd435ca49950c2bba86a95b500c6d239f18efe1)
(cherry picked from commit f9f74a0)
(cherry picked from commit 456c15b)
(cherry picked from commit 2aaee78)
(cherry picked from commit 2a774f064815573efc33d43dfe3548590e42e9c2)
(cherry picked from commit 56cc8acf45dbff227d1713d509bc3b71386df5d8)
(cherry picked from commit 2e956d0)
(cherry picked from commit d3132ec)
(cherry picked from commit fb8b0b6)
…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)
(cherry picked from commit c25b73f)
(cherry picked from commit 2ba27c3)
In this branch it's testsuite-xy.foo, not TEST-XY-FOO

Follow-up for dffa62c

(cherry picked from commit 14e3284)
(cherry picked from commit 5b199c6)
@bluca bluca merged commit 4b462d5 into systemd:v252-stable Nov 16, 2024
30 of 34 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.