Forked from
pkg / systemd
131 commits behind the upstream repository.
-
Michael Biebl authored
systemd (241-7~deb10u3) buster; urgency=medium * core: set fs.file-max sysctl to LONG_MAX rather than ULONG_MAX. Since kernel 5.2 (but also stable kernels like 4.19.53) the kernel thankfully returns proper errors when we write a value out of range to the sysctl. Which however breaks writing ULONG_MAX to request the maximum value. Hence let's write the new maximum value instead, LONG_MAX. (Closes: #945018) * core: change ownership/mode of the execution directories also for static users. This ensures that execution directories like CacheDirectory and StateDirectory are properly chowned to the user specified in User= before launching the service. (Closes: #919231)
Michael Biebl authoredsystemd (241-7~deb10u3) buster; urgency=medium * core: set fs.file-max sysctl to LONG_MAX rather than ULONG_MAX. Since kernel 5.2 (but also stable kernels like 4.19.53) the kernel thankfully returns proper errors when we write a value out of range to the sysctl. Which however breaks writing ULONG_MAX to request the maximum value. Hence let's write the new maximum value instead, LONG_MAX. (Closes: #945018) * core: change ownership/mode of the execution directories also for static users. This ensures that execution directories like CacheDirectory and StateDirectory are properly chowned to the user specified in User= before launching the service. (Closes: #919231)
core-set-fs.file-max-sysctl-to-LONG_MAX-rather-than-ULONG.patch 1.29 KiB
From: Lennart Poettering <lennart@poettering.net>
Date: Mon, 17 Jun 2019 10:51:25 +0200
Subject: core: set fs.file-max sysctl to LONG_MAX rather than ULONG_MAX
Since kernel 5.2 the kernel thankfully returns proper errors when we
write a value out of range to the sysctl. Which however breaks writing
ULONG_MAX to request the maximum value. Hence let's write the new
maximum value instead, LONG_MAX.
/cc @brauner
Fixes: #12803
(cherry picked from commit 6e2f78948403a4cce45b9e34311c9577c624f066)
---
src/core/main.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/core/main.c b/src/core/main.c
index bc7fcc6..255e204 100644
--- a/src/core/main.c
+++ b/src/core/main.c
@@ -1200,9 +1200,9 @@ static void bump_file_max_and_nr_open(void) {
#endif
#if BUMP_PROC_SYS_FS_FILE_MAX
- /* I so wanted to use STRINGIFY(ULONG_MAX) here, but alas we can't as glibc/gcc define that as
- * "(0x7fffffffffffffffL * 2UL + 1UL)". Seriously. 😢 */
- if (asprintf(&t, "%lu\n", ULONG_MAX) < 0) {
+ /* The maximum the kernel allows for this since 5.2 is LONG_MAX, use that. (Previously thing where
+ * different but the operation would fail silently.) */
+ if (asprintf(&t, "%li\n", LONG_MAX) < 0) {
log_oom();
return;
}