David Tardon [Fri, 25 Jun 2021 08:42:53 +0000 (10:42 +0200)]
remove a left-over break
By the "same logic as above...", we want to continue to fallback here,
but the break prohibits that.
This is a follow-up for
ee1aa61c4710ae567a2b844e0f0bb8cb0456ab8c .
(cherry picked from commit
99df1cb6f50875db513a5b45f18191460a150f3d)
Related: #
1970860
Zbigniew Jędrzejewski-Szmek [Mon, 14 Sep 2020 15:58:03 +0000 (17:58 +0200)]
test-mountpointutil-util: do not assert in test_mnt_id()
https://bugzilla.redhat.com/show_bug.cgi?id=
1803070
I *think* this a kernel bug: the mnt_id as listed in /proc/self/mountinfo is different
than the one we get from /proc/self/fdinfo/. This only matters when both statx and
name_to_handle_at are unavailable and we hit the fallback path that goes through fdinfo:
(gdb) !uname -r
5.6.19-200.fc31.ppc64le
(gdb) !cat /proc/self/mountinfo
697 664 253:0 /var/lib/mock/fedora-31-ppc64le/root / rw,relatime shared:298 master:1 - xfs /dev/mapper/fedora_rh--power--vm14-root rw,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota
698 697 253:0 /var/cache/mock/fedora-31-ppc64le/yum_cache /var/cache/yum rw,relatime shared:299 master:1 - xfs /dev/mapper/fedora_rh--power--vm14-root rw,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota
699 697 253:0 /var/cache/mock/fedora-31-ppc64le/dnf_cache /var/cache/dnf rw,relatime shared:300 master:1 - xfs /dev/mapper/fedora_rh--power--vm14-root rw,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota
700 697 0:32 /mock-selinux-plugin.7me9bfpi /proc/filesystems rw,nosuid,nodev shared:301 master:18 - tmpfs tmpfs rw,seclabel <==========================================================
701 697 0:41 / /sys ro,nosuid,nodev,noexec,relatime shared:302 - sysfs sysfs ro,seclabel
702 701 0:21 / /sys/fs/selinux ro,nosuid,nodev,noexec,relatime shared:306 master:8 - selinuxfs selinuxfs rw
703 697 0:42 / /dev rw,nosuid shared:303 - tmpfs tmpfs rw,seclabel,mode=755
704 703 0:43 / /dev/shm rw,nosuid,nodev shared:304 - tmpfs tmpfs rw,seclabel
705 703 0:45 / /dev/pts rw,nosuid,noexec,relatime shared:307 - devpts devpts rw,seclabel,gid=5,mode=620,ptmxmode=666
706 703 0:6 /btrfs-control /dev/btrfs-control rw,nosuid shared:308 master:9 - devtmpfs devtmpfs rw,seclabel,size=4107840k,nr_inodes=64185,mode=755
707 703 0:6 /loop-control /dev/loop-control rw,nosuid shared:309 master:9 - devtmpfs devtmpfs rw,seclabel,size=4107840k,nr_inodes=64185,mode=755
708 703 0:6 /loop0 /dev/loop0 rw,nosuid shared:310 master:9 - devtmpfs devtmpfs rw,seclabel,size=4107840k,nr_inodes=64185,mode=755
709 703 0:6 /loop1 /dev/loop1 rw,nosuid shared:311 master:9 - devtmpfs devtmpfs rw,seclabel,size=4107840k,nr_inodes=64185,mode=755
710 703 0:6 /loop10 /dev/loop10 rw,nosuid shared:312 master:9 - devtmpfs devtmpfs rw,seclabel,size=4107840k,nr_inodes=64185,mode=755
711 703 0:6 /loop11 /dev/loop11 rw,nosuid shared:313 master:9 - devtmpfs devtmpfs rw,seclabel,size=4107840k,nr_inodes=64185,mode=755
712 703 0:6 /loop2 /dev/loop2 rw,nosuid shared:314 master:9 - devtmpfs devtmpfs rw,seclabel,size=4107840k,nr_inodes=64185,mode=755
713 703 0:6 /loop3 /dev/loop3 rw,nosuid shared:315 master:9 - devtmpfs devtmpfs rw,seclabel,size=4107840k,nr_inodes=64185,mode=755
714 703 0:6 /loop4 /dev/loop4 rw,nosuid shared:316 master:9 - devtmpfs devtmpfs rw,seclabel,size=4107840k,nr_inodes=64185,mode=755
715 703 0:6 /loop5 /dev/loop5 rw,nosuid shared:317 master:9 - devtmpfs devtmpfs rw,seclabel,size=4107840k,nr_inodes=64185,mode=755
716 703 0:6 /loop6 /dev/loop6 rw,nosuid shared:318 master:9 - devtmpfs devtmpfs rw,seclabel,size=4107840k,nr_inodes=64185,mode=755
717 703 0:6 /loop7 /dev/loop7 rw,nosuid shared:319 master:9 - devtmpfs devtmpfs rw,seclabel,size=4107840k,nr_inodes=64185,mode=755
718 703 0:6 /loop8 /dev/loop8 rw,nosuid shared:320 master:9 - devtmpfs devtmpfs rw,seclabel,size=4107840k,nr_inodes=64185,mode=755
719 703 0:6 /loop9 /dev/loop9 rw,nosuid shared:321 master:9 - devtmpfs devtmpfs rw,seclabel,size=4107840k,nr_inodes=64185,mode=755
720 697 0:44 / /run rw,nosuid,nodev shared:305 - tmpfs tmpfs rw,seclabel,mode=755
721 720 0:25 /systemd/nspawn/propagate/
9cc8a155d0244558b273f773d2b92142 /run/systemd/nspawn/incoming ro master:12 - tmpfs tmpfs rw,seclabel,mode=755
722 697 0:32 /mock-resolv.dvml91hp /etc/resolv.conf rw,nosuid,nodev shared:322 master:18 - tmpfs tmpfs rw,seclabel
725 697 0:47 / /proc rw,nosuid,nodev,noexec,relatime shared:323 - proc proc rw
603 725 0:47 /sys /proc/sys ro,nosuid,nodev,noexec,relatime shared:323 - proc proc rw
604 725 0:44 /systemd/inaccessible/reg /proc/kallsyms ro,nosuid,nodev,noexec shared:305 - tmpfs tmpfs rw,seclabel,mode=755
605 725 0:44 /systemd/inaccessible/reg /proc/kcore ro,nosuid,nodev,noexec shared:305 - tmpfs tmpfs rw,seclabel,mode=755
606 725 0:44 /systemd/inaccessible/reg /proc/keys ro,nosuid,nodev,noexec shared:305 - tmpfs tmpfs rw,seclabel,mode=755
607 725 0:44 /systemd/inaccessible/reg /proc/sysrq-trigger ro,nosuid,nodev,noexec shared:305 - tmpfs tmpfs rw,seclabel,mode=755
608 725 0:44 /systemd/inaccessible/reg /proc/timer_list ro,nosuid,nodev,noexec shared:305 - tmpfs tmpfs rw,seclabel,mode=755
609 725 0:47 /bus /proc/bus ro,nosuid,nodev,noexec,relatime shared:323 - proc proc rw
610 725 0:47 /fs /proc/fs ro,nosuid,nodev,noexec,relatime shared:323 - proc proc rw
611 725 0:47 /irq /proc/irq ro,nosuid,nodev,noexec,relatime shared:323 - proc proc rw
612 725 0:47 /scsi /proc/scsi ro,nosuid,nodev,noexec,relatime shared:323 - proc proc rw
613 703 0:46 / /dev/mqueue rw,nosuid,nodev,noexec,relatime shared:324 - mqueue mqueue rw,seclabel
614 701 0:26 / /sys/fs/cgroup rw,nosuid,nodev,noexec,relatime shared:325 - cgroup2 cgroup rw,seclabel,nsdelegate
615 603 0:44 /.#proc-sys-kernel-random-boot-id4fbdce67af46d1c2//deleted /proc/sys/kernel/random/boot_id ro,nosuid,nodev,noexec shared:305 - tmpfs tmpfs rw,seclabel,mode=755
616 725 0:44 /.#proc-sys-kernel-random-boot-id4fbdce67af46d1c2//deleted /proc/sys/kernel/random/boot_id rw,nosuid,nodev shared:305 - tmpfs tmpfs rw,seclabel,mode=755
617 725 0:44 /.#proc-kmsg5b7a8bcfe6717139//deleted /proc/kmsg rw,nosuid,nodev shared:305 - tmpfs tmpfs rw,seclabel,mode=755
The test process does
name_to_handle_at("/proc/filesystems") which returns -EOPNOTSUPP, and then
openat(AT_FDCWD, "/proc/filesystems") which returns 4, and then
read(open("/proc/self/fdinfo/4", ...)) which gives
"pos:\t0\nflags:\t012100000\nmnt_id:\t725\n"
and the "725" is clearly inconsistent with "700" in /proc/self/mountinfo.
We could either drop the fallback path (and fail name_to_handle_at() is not
avaliable) or ignore the error in the test. Not sure what is better. I think
this issue only occurs sometimes and with older kernels, so probably continuing
with the current flaky implementation is better than ripping out the fallback.
Another strace:
writev(2</dev/pts/0>, [{iov_base="mnt ids of /proc/sys is 603", iov_len=27}, {iov_base="\n", iov_len=1}], 2mnt ids of /proc/sys is 603
) = 28
name_to_handle_at(AT_FDCWD, "/", {handle_bytes=128 => 12, handle_type=129, f_handle=0x52748401000000008b93e20d}, [697], 0) = 0
writev(2</dev/pts/0>, [{iov_base="mnt ids of / is 697", iov_len=19}, {iov_base="\n", iov_len=1}], 2mnt ids of / is 697
) = 20
name_to_handle_at(AT_FDCWD, "/proc/kcore", {handle_bytes=128 => 12, handle_type=1, f_handle=0x92ddcfcd2e802d0100000000}, [605], 0) = 0
writev(2</dev/pts/0>, [{iov_base="mnt ids of /proc/kcore is 605", iov_len=29}, {iov_base="\n", iov_len=1}], 2mnt ids of /proc/kcore is 605
) = 30
name_to_handle_at(AT_FDCWD, "/dev", {handle_bytes=128 => 12, handle_type=1, f_handle=0x8ae269160c802d0100000000}, [703], 0) = 0
writev(2</dev/pts/0>, [{iov_base="mnt ids of /dev is 703", iov_len=22}, {iov_base="\n", iov_len=1}], 2mnt ids of /dev is 703
) = 23
name_to_handle_at(AT_FDCWD, "/proc/filesystems", {handle_bytes=128}, 0x7fffe36ddb84, 0) = -1 EOPNOTSUPP (Operation not supported)
openat(AT_FDCWD, "/proc/filesystems", O_RDONLY|O_NOFOLLOW|O_CLOEXEC|O_PATH) = 4</proc/filesystems>
openat(AT_FDCWD, "/proc/self/fdinfo/4", O_RDONLY|O_CLOEXEC) = 5</proc/20/fdinfo/4>
fstat(5</proc/20/fdinfo/4>, {st_mode=S_IFREG|0400, st_size=0, ...}) = 0
fstat(5</proc/20/fdinfo/4>, {st_mode=S_IFREG|0400, st_size=0, ...}) = 0
read(5</proc/20/fdinfo/4>, "pos:\t0\nflags:\t012100000\nmnt_id:\t725\n", 2048) = 36
read(5</proc/20/fdinfo/4>, "", 1024) = 0
close(5</proc/20/fdinfo/4>) = 0
close(4</proc/filesystems>) = 0
writev(2</dev/pts/0>, [{iov_base="mnt ids of /proc/filesystems are 700, 725", iov_len=41}, {iov_base="\n", iov_len=1}], 2mnt ids of /proc/filesystems are 700, 725
) = 42
writev(2</dev/pts/0>, [{iov_base="the other path for mnt id 725 is /proc", iov_len=38}, {iov_base="\n", iov_len=1}], 2the other path for mnt id 725 is /proc
) = 39
writev(2</dev/pts/0>, [{iov_base="Assertion 'path_equal(p, t)' failed at src/test/test-mountpoint-util.c:94, function test_mnt_id(). Aborting.", iov_len=108}, {iov_base="\n", iov_len=1}], 2Assertion 'path_equal(p, t)' failed at src/test/test-mountpoint-util.c:94, function test_mnt_id(). Aborting.
) = 109
rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, ~[RTMIN RT_1], [], 8) = 0
getpid() = 20
gettid() = 20
tgkill(20, 20, SIGABRT) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
Resolves: #
1910425
David Tardon [Mon, 25 Jan 2021 15:19:56 +0000 (16:19 +0100)]
set core ulimit to 0 like on RHEL-7
RHEL-only
Resolves: #
1905582
David Tardon [Thu, 11 Mar 2021 14:48:23 +0000 (15:48 +0100)]
rc-local: order after network-online.target
I think this was the intent of commit
91b684c7300879a8d2006038f7d9185d92c3c3bf,
just network-online.target didn't exist back then.
RHEL-only
Resolves: #
1934028
Michal Koutný [Fri, 2 Nov 2018 19:56:08 +0000 (20:56 +0100)]
core: Detect initial timer state from serialized data
We keep a mark whether a single-shot timer was triggered in the caller's
variable initial. When such a timer elapses while we are
serializing/deserializing the inner state, we consider the timer
incorrectly as elapsed and don't trigger it later.
This patch exploits last_trigger timestamp that we already serialize,
hence we can eliminate the argument initial completely.
A reproducer for OnBootSec= timers:
cat >repro.c <<EOD
/*
* Compile: gcc repro.c -o repro
* Run: ./repro
*/
#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <time.h>
#include <unistd.h>
int main(int argc, char *argv[]) {
char command[1024];
int pause;
struct timespec now;
while (1) {
usleep(rand() % 200000); // prevent periodic repeats
clock_gettime(CLOCK_MONOTONIC, &now);
printf("%i\n", now.tv_sec);
system("rm -f $PWD/mark");
snprintf(command, 1024, "systemd-run --user --on-boot=%i --timer-property=AccuracySec=100ms "
"touch $PWD/mark", now.tv_sec + 1);
system(command);
system("systemctl --user list-timers");
pause = (
1000000000 - now.tv_nsec)/1000 - 70000; // fiddle to hit the middle of reloading
usleep(pause > 0 ? pause : 0);
system("systemctl --user daemon-reload");
sync();
sleep(2);
if (open("./mark", 0) < 0)
if (errno == ENOENT) {
printf("mark file does not exist\n");
break;
}
}
return 0;
}
EOD
(cherry picked from commit
aa1f95d2647197eca84c33a0f10adaeada08467d)
Resolves: #
1899402
Insun [Sun, 28 Oct 2018 12:26:13 +0000 (21:26 +0900)]
core: don't drop timer expired but not yet processed when system date is changed
There is difference between time set by the user and real elapsed time because of accuracy feature.
If you change the system date(or time) between these times, the timer drops.
You can easily reproduce it with the following command.
-----------------------------------------------------------
$ systemd-run --on-active=3s ls; sleep 3; date -s "`date`"
-----------------------------------------------------------
In the following command, the problem is rarely reproduced. But it exists.
---------------------------------------------------------------------------------------------
$ systemd-run --on-active=3s --timer-property=AccuracySec=1us ls ; sleep 1; date -s "`date`"
---------------------------------------------------------------------------------------------
Note : Global AccuracySec value.
----------------------------------------------------------------------
$ cat /etc/systemd/system.conf
DefaultTimerAccuracySec=1min
----------------------------------------------------------------------
(cherry picked from commit
fee04d7f3ab810e99b97535ca5fda2f9517acda9)
Related: #
1899402
Lennart Poettering [Mon, 12 Oct 2020 14:31:42 +0000 (16:31 +0200)]
sysctl: set kernel.core_pipe_limit=16
We need to make sure that our coredump pattern handler manages to read
process metadata from /proc/$PID/ before the kernel reaps the crashed
process. By default the kernel will reap the process as soon as it can.
By setting kernel.core_pipe_limit to a non-zero the kernel will wait for
userspace to finish before reaping.
We'll set the value to 16, which allows 16 crashes to be
processed in parallel. This matches the MaxConnections= setting in
systemd-coredump.socket.
See: #17301
(This doesn't close 17301, since we probably should also gracefully
handle if /proc/$PID/ vanished already while our coredump handler runs,
just in case people loclly set the sysctl back to zero. i.e. we should
collect what we can and rather issue an incomplete log record than
none.)
(cherry picked from commit
2a9b9323cd844baae3229e9dba67e478bee70654)
Resolves: #
1949729
Jonas Jelten [Thu, 17 Oct 2019 10:10:13 +0000 (12:10 +0200)]
ceph is a network filesystem
(cherry picked from commit
c4742de6d801b125abf3c4d1c710280f51d7c701)
Resolves: #
1952013
David Tardon [Wed, 31 Mar 2021 08:38:00 +0000 (10:38 +0200)]
test-install-root: add test for unknown WantedBy= target
(cherry picked from commit
8adbad370f522831dd9246fe272caf37ce748d4a)
Related: #
1835351
Jan Synacek [Wed, 3 Jun 2020 08:33:21 +0000 (10:33 +0200)]
install: warn if WantedBy targets don't exist
Currently, if [Install] section contains WantedBy=target that doesn't exist,
systemd creates the symlinks anyway. That is just user-unfriendly.
Let's be nice and warn about installing non-existent targets.
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=
1835351.
Replaces: #15834
(cherry picked from commit
8ae27441c2dcf585f58242991302b09778d4d710)
Resolves: #
1835351
David Tardon [Wed, 31 Mar 2021 08:08:31 +0000 (10:08 +0200)]
test-install-root: create referenced targets
(cherry picked from commit
cd228002ccedb927b4531a4b7dd9ea7015fdb657)
Related: #
1835351
Lennart Poettering [Sat, 27 Jun 2020 09:13:01 +0000 (11:13 +0200)]
mount-util: use UMOUNT_NOFOLLOW in recursive umounter
When we only want to unmount mount points below some path then it is
against our interest to follow symlinks. Hence don't.
(cherry picked from commit
827ea5212507c3833b6ae14cdf65e446b36b5e05)
Related: #
1885143
Jakob Unterwurzacher [Mon, 30 Nov 2020 09:27:48 +0000 (10:27 +0100)]
mount-util: bind_remount: avoid calling statvfs
The commit
"util: Do not clear parent mount flags when setting up namespaces"
introduced a statvfs call read the flags of the original mount
and have them applied to the bind mount.
This has two problems:
(1) The mount flags returned by statvfs(2) do not match the flags
accepted by mount(2). For example, the value 4096 means ST_RELATIME
when returned by statvfs(2), but means MS_BIND when passed to mount(2).
(2) A call to statvfs blocks indefinitely when ran against a disconnected
network drive ( https://github.com/systemd/systemd/issues/12667 ).
We already use libmount to parse `/proc/self/mountinfo` but did not use the
mount flag information from there. This patch changes that to use the mount
flags parsed by libmount instead of calling statvfs. Only if getting the
flags through libmount fails we call statvfs.
Fixes https://github.com/systemd/systemd/issues/12667
(cherry picked from commit
d34a40082db3ffca8de66bfa4df50951101bdae5)
Resolves: #
1885143
Zbigniew Jędrzejewski-Szmek [Mon, 30 Nov 2020 09:37:06 +0000 (10:37 +0100)]
shared/mount-util: convert to libmount
It seems better to use just a single parsing algorithm for /proc/self/mountinfo.
Also, unify the naming of variables in all places that use mnt_table_next_fs().
It makes it easier to compare the different call sites.
(cherry picked from commit
13dcfe4661b467131c943620d0f44711798bfd54)
Related: #
1885143
Zbigniew Jędrzejewski-Szmek [Thu, 9 Jul 2020 21:15:47 +0000 (23:15 +0200)]
basic/cap-list: parse/print numerical capabilities
We would refuse to print capabilities which were didn't have a name
for. The kernel adds new capabilities from time to time, most recently
cap_bpf. 'systmectl show -p CapabilityBoundingSet ...' would fail with
"Failed to parse bus message: Invalid argument" because
capability_set_to_string_alloc() would fail with -EINVAL. So let's
print such capabilities in hexadecimal:
CapabilityBoundingSet=cap_chown cap_dac_override cap_dac_read_search
cap_fowner cap_fsetid cap_kill cap_setgid cap_setuid cap_setpcap
cap_linux_immutable cap_net_bind_service cap_net_broadcast cap_net_admin
cap_net_raw cap_ipc_lock cap_ipc_owner 0x10 0x11 0x12 0x13 0x14 0x15 0x16
0x17 0x18 0x19 0x1a ...
For symmetry, also allow capabilities that we don't know to be specified.
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=
1853736.
(cherry picked from commit
417770f3033c426ca848b158d0bf057cd8ad1329)
Resolves: #
1946943
d032747 [Tue, 15 Dec 2020 09:40:06 +0000 (10:40 +0100)]
busctl: add a timestamp to the output of the busctl monitor command
(cherry picked from commit
6fe2a70b9160e35fdeed9d37bd31727c2d46a8b2)
Resolves: #
1909214
David Tardon [Fri, 19 Mar 2021 09:05:47 +0000 (10:05 +0100)]
man: document differences in clean exit status for Type=oneshot
See commit
1f0958f640b87175cd547c1e69084cfe54a22e9d .
(cherry picked from commit
f055cf77862bc580f3afbfaac161d1c060f39411)
Resolves: #
1940078
Michal Suchanek [Fri, 2 Oct 2020 09:05:23 +0000 (11:05 +0200)]
basic/virt: Detect PowerVM hypervisor
Currently systemd-detect-virt fails to detect running under PowerVM.
Add code to detect PowerVM based on code in util-linux.
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
(cherry picked from commit
3224e38bb6b3287ca253cbafb460a150544d5818)
Resolves: #
1937989
David Michael [Wed, 20 Mar 2019 15:14:32 +0000 (15:14 +0000)]
shared/install: Preserve escape characters for escaped unit names
Since switching to extract_first_word with no flags for parsing
unit names in
4c9565eea534cd233a913c8c21f7920dba229743, escape
characters will be stripped from escaped unit names such as
"mnt-persistent\x2dvolume.mount" resulting in the unit not being
configured as defined. Preserve escape characters again for
compatibility with existing preset definitions.
(cherry picked from commit
82bd4da71e9cdd5a2e9266332f5a7399845e31f6)
Resolves: #
1952686
Lennart Poettering [Thu, 2 Aug 2018 18:56:34 +0000 (20:56 +0200)]
user-runtime-dir: downgrade a few log messages to LOG_DEBUG that we ignore
As the comments already say it might be quite likely that
$XDG_RUNTIME_DIR is not set up as mount, and we shouldn't complain about
that.
Moreover, let's make this idempotent, so that a runtime dir that is
already gone and is removed again doesn't cause failure.
(cherry picked from commit
3a13442bbf72e7ebdd0b4d60c2922ea7c5cc9496)
Related: #
1946453
Lennart Poettering [Thu, 2 Aug 2018 18:57:56 +0000 (20:57 +0200)]
units: make sure user-runtime-dir@.service is Type=oneshot
We order user@.service after it, hence we need to properly know when it
finished starting up.
(cherry picked from commit
d06e8fbce35c2b52ee1d09af4888876d5f2d7ae4)
Related: #
1946453
Lennart Poettering [Fri, 3 Aug 2018 08:42:09 +0000 (10:42 +0200)]
units: order user-runtime-dir@.service after systemd-user-sessions.service
We use systemd-user-sessions.service as barrier when to allow login
sessions. With this patch user@.service is ordered after that too, so
that any login related code (which user-runtime-dir@.service is) is
guaranteed to run after the barrier, and never before.
(cherry picked from commit
eb748aef4fbfd03b64938aa471bb8ceda1bc89a8)
Related: #
1946453
Lennart Poettering [Fri, 3 Aug 2018 08:45:31 +0000 (10:45 +0200)]
units: assign user-runtime-dir@.service to user-%i.slice
This service won't use much resources, but it's certainly nicer to see
it attached th the user's slice along with user@.service, so that
everything we run for a specific user is properly bound into one unit.
(cherry picked from commit
1193c11a04b3ecc29925904fbeb5d64834bce73e)
Related: #
1946453
Kairui Song [Wed, 13 Jan 2021 17:25:20 +0000 (01:25 +0800)]
initrd: do a debug log if /etc/initrd-release doesn't take effect
Signed-off-by: Kairui Song <kasong@redhat.com>
(cherry picked from commit
4a60d8cbcae574896a28f9f1f6204a1bddca8e99)
Related: #
1959339
Kairui Song [Wed, 13 Jan 2021 16:39:10 +0000 (00:39 +0800)]
initrd: do a debug log if failed to detect rootfs type
(cherry picked from commit
3377c740d9121f38385e70d6a380b5e4bd8c672a)
Related: #
1959339
Kairui Song [Tue, 12 Jan 2021 16:04:53 +0000 (00:04 +0800)]
initrd: extend SYSTEMD_IN_INITRD to accept non-ramfs rootfs
Sometimes, non-ramfs initrd root are useful. Eg, for kdump, because
initramfs is memory consuming, so mount a compressed image in earlier
initrd, chroot into it then let systemd do the rest of job is a good
solution.
But systemd doesn't recognize the initrd environment if rootfs is not a
temporary fs. This is a reasonable check, because switch-root in initrd
will wipe the whole rootfs, will be a disaster if there are any
misdetect.
So extend SYSTEMD_IN_INITRD environment variable, now it accepts boolean
value and two extra keyword, "auto" and "lenient". "auto" is same as
before, and it's the default value. "lenient" will let systemd bypass
the rootfs check.
(cherry picked from commit
db4c45cf4f10ca094b9e9570b758abd445d65381)
Related: #
1959339
Kairui Song [Fri, 8 Jan 2021 06:52:26 +0000 (14:52 +0800)]
util: rework in_initrd() to make use of path_is_temporary_fs()
(cherry picked from commit
96cceb35e7985f5ee6c9b17e129a76259273cdde)
Related: #
1959339
Jan Macku [Thu, 27 May 2021 10:25:51 +0000 (12:25 +0200)]
core: Hide "Deactivated successfully" message
Show message "Deactivated successfully" in debug mode (when manager is
user) rather than in info mode. This message has low information value
for regular users and it might be a bit overwhelming on a system with
a lot of devices.
(cherry picked from commit
edf2ee22f54005d76b2fb8fdcc9c60974feb88bc)
Resolves: #
1954802
Lennart Poettering [Fri, 26 Feb 2021 09:25:24 +0000 (10:25 +0100)]
copy: handle copy_file_range() weirdness on procfs/sysfs
This addresses the issue described in https://lwn.net/Articles/846403/
and makes sure we will be able to stream bytes from procfs/sysfs via
copy_bytes() if people ask us to.
Based on:
ee1aa61c4710ae567a2b844e0f0bb8cb0456ab8c
Related: #
1970860
Zbigniew Jędrzejewski-Szmek [Wed, 6 Nov 2019 11:44:39 +0000 (12:44 +0100)]
meson: remove strange dep that causes meson to enter infinite loop
The value is obviously bogus, but didn't seem to cause problems so far.
With meson-0.52.0, it causes a hang. The number of aliases is always rather
small (usually just one or two, possibly up to a dozen in a few cases), so
even if this causes some looping, it is strange that it has such a huge impact.
But let's just remove it.
Fixes #13742.
Tested with meson-0.52.0-1.module_f31+6771+
f5d842eb.noarch,
meson-0.51.1-1.fc29.noarch.
(cherry picked from commit
af336643a01d0b210b18312c253a50594ba54b0a)
Resolves: #
1970860
Lennart Poettering [Mon, 2 Nov 2020 13:51:10 +0000 (14:51 +0100)]
seccomp: allow turning off of seccomp filtering via env var
Fixes: #17504
(While we are it, also move $SYSTEMD_SECCOMP_LOG= env var description
into the right document section)
Also suggested in: https://github.com/systemd/systemd/issues/17245#issuecomment-
704773603
(cherry picked from commit
ce8f6d478e3f6c6a313fb19615aa5029bb18f86d)
Resolves: #
1916835
Kai Krakow [Sat, 17 Aug 2019 00:33:43 +0000 (02:33 +0200)]
cgroup: Also set io.bfq.weight
Current kernels with BFQ scheduler do not yet set their IO weight
through "io.weight" but through "io.bfq.weight" (using a slightly
different interface supporting only default weights, not per-device
weights). This commit enables "IOWeight=" to just to that.
This patch may be dropped at some time later.
Link: https://github.com/systemd/systemd/issues/7057
Signed-off-by: Kai Krakow <kai@kaishome.de>
(cherry picked from commit
21221ce1ce9a572e82d46d80692afd65c224fc50)
Related: #
1927290
Michal Sekletar [Mon, 17 May 2021 13:54:10 +0000 (15:54 +0200)]
test/udev-test.pl: drop test cases that add mutliple devices
[msekleta: It is easier to delete test-cases that would make
udev test fail. Once we reintroduce the fix for link_update()
we will revert this commit.]
Related: #
1942299
Michal Sekletar [Mon, 17 May 2021 13:50:31 +0000 (15:50 +0200)]
Revert "udev: make algorithm that selects highest priority devlink less susceptible to race conditions"
This reverts commit
1d5f966c1758eb620755fcae54abd07a1ac36d3d.
Related: #
1942299
Michal Sekletar [Mon, 17 May 2021 13:49:08 +0000 (15:49 +0200)]
Revert "udev: run link_update() with increased retry count in second invocation"
This reverts commit
1f3165bda13c8572c8c31d23c998835c4e2ad8f3.
Related: #
1942299
Lennart Poettering [Mon, 4 Feb 2019 09:23:43 +0000 (10:23 +0100)]
pam-systemd: use secure_getenv() rather than getenv()
And explain why in a comment.
(cherry picked from commit
83d4ab55336ff8a0643c6aa627b31e351a24040a)
CVE-2019-3842
Resolves: #
1687514
Michal Sekletar [Thu, 4 Mar 2021 16:35:22 +0000 (17:35 +0100)]
udev: run link_update() with increased retry count in second invocation
In PR #17431 we have introduced retry loop in link_update() in order to
maximize the chance that we end up with correct target when there are
multiple contenders for given symlink.
Number of iterations in retry loop is either 1 or
LINK_UPDATE_MAX_RETRIES, depending on the value of 'initialized' db
flag. When device appears for the first time we need to set the
flag before calling link_update() via update_devnode() for the second
time to make sure we run the second invocation with higher retry loop
counter.
(cherry picked from commit
996c83903da5bf8b371314b4207ff97afeef65a4)
Related: #
1931947
Michal Sekletár [Thu, 9 Jul 2020 16:16:44 +0000 (18:16 +0200)]
core: prevent excessive /proc/self/mountinfo parsing
(cherry picked from commit
d586f642fd90e3bb378f7b6d3e3a64a753e51756)
Resolves: #
1819868
Michal Sekletár [Mon, 23 Nov 2020 17:04:57 +0000 (18:04 +0100)]
test: add ratelimiting test
(Taken from Michal's #17274 by Lennart, and slightly adjusted)
(cherry picked from commit
68d890651781904a4c762ac866af36e30c4f7ff8)
Related: #
1819868
Lennart Poettering [Mon, 23 Nov 2020 17:02:40 +0000 (18:02 +0100)]
sd-event: add ability to ratelimit event sources
Let's a concept of "rate limiting" to event sources: if specific event
sources fire too often in some time interval temporarily take them
offline, and take them back online once the interval passed.
This is a simple scheme of avoiding starvation of event sources if some
event source fires too often.
This introduces the new conceptual states of "offline" and "online" for
event sources: an event source is "online" only when enabled *and* not
ratelimited, and offline in all other cases. An event source that is
online hence has its fds registered in the epoll, its signals in the
signalfd and so on.
(cherry picked from commit
b6d5481b3d9f7c9b1198ab54b54326ec73e855bf)
Related: #
1819868
Zbigniew Jędrzejewski-Szmek [Tue, 10 Nov 2020 11:57:34 +0000 (12:57 +0100)]
sd-event: increase n_enabled_child_sources just once
Neither source_child_pidfd_register() nor event_make_signal_data() look at
n_enabled_child_sources.
(cherry picked from commit
ac9f2640cb9c107b43f47bba7e068d3b92b5337b)
Related: #
1819868
Zbigniew Jędrzejewski-Szmek [Tue, 10 Nov 2020 09:38:37 +0000 (10:38 +0100)]
sd-event: update state at the end in event_source_enable
Coverity in CID#
1435966 was complaining that s->enabled is not "restored" in
all cases. But the code was actually correct, since it should only be
"restored" in the error paths. But let's still make this prettier by not setting
the state before all operations that may fail are done.
We need to set .enabled for the prioq reshuffling operations, so move those down.
No functional change intended.
(cherry picked from commit
d2eafe61ca07f8300dc741a0491a914213fa2b6b)
Related: #
1819868
Lennart Poettering [Mon, 23 Nov 2020 16:49:27 +0000 (17:49 +0100)]
sd-event: remove earliest_index/latest_index into common part of event source objects
So far we used these fields to organize the earliest/latest timer event
priority queue. In a follow-up commit we want to introduce ratelimiting
to event sources, at which point we want any kind of event source to be
able to trigger time wakeups, and hence they all need to be included in
the earliest/latest prioqs. Thus, in preparation let's make this
generic.
No change in behaviour, just some shifting around of struct members from
the type-specific to the generic part.
(cherry picked from commit
f41315fceb5208c496145cda2d6c865a5458ce44)
Related: #
1819868
Lennart Poettering [Mon, 23 Nov 2020 16:47:16 +0000 (17:47 +0100)]
sd-event: follow coding style with naming return parameter
(cherry picked from commit
cad143a8f26976a23e634d5e1ecfb7d7ba75c3bf)
Related: #
1819868
Lennart Poettering [Mon, 23 Nov 2020 14:38:00 +0000 (15:38 +0100)]
sd-event: ref event loop while in sd_event_prepare() ot sd_event_run()
sd_event_prepare() invokes callbacks that might drop the last user ref
on our event loop. Let's make sure we keep an explicit ref around it, so
that we won't end up with an invalid pointer. Similar in sd_event_run().
Basically, any function that is publically callable that might end up
invoking callbacks should ref the relevant objects to be protected
against callbacks destroying these objects while we still want to access
them. We did this correctly in sd_event_dispatch() and sd_event_loop(),
but these are not the only ones which are callable from the outside.
(cherry picked from commit
f814c871e65df8552a055dd887bc94b074037833)
Related: #
1819868
Lennart Poettering [Wed, 30 Oct 2019 19:26:50 +0000 (20:26 +0100)]
sd-event: refuse running default event loops in any other thread than the one they are default for
(cherry picked from commit
e544601536ac13a288d7476f4400c7b0f22b7ea1)
Related: #
1819868
Lennart Poettering [Mon, 23 Nov 2020 14:33:50 +0000 (15:33 +0100)]
sd-event: let's suffix last_run/last_log with "_usec"
Otherwise it's a bit confusing what this is about: two timestamps.
(cherry picked from commit
e6a7bee538f6638c2d5ca2afc66bf47cba3f075c)
Related: #
1819868
Vito Caputo [Tue, 1 Dec 2020 08:26:54 +0000 (00:26 -0800)]
sd-event: fix delays assert brain-o (#17790)
s/sizeof/ELEMENTSOF/
Bug introduced in
34b87517749caa4142b19eb3c63bdf349fafbc49.
(cherry picked from commit
cb9d621ebbfa30bbd620c17e143daeb0d78c12f0)
Related: #
1819868
Lennart Poettering [Mon, 23 Nov 2020 14:25:35 +0000 (15:25 +0100)]
sd-event: split out code to add/remove timer event sources to earliest/latest prioq
Just some refactoring that makes code prettier, and will come handy
later, because we can reuse these functions at more places.
(cherry picked from commit
1e45e3fecc303e7ae9946220c742f69675e99c34)
Related: #
1819868
Lennart Poettering [Mon, 23 Nov 2020 10:40:24 +0000 (11:40 +0100)]
sd-event: split clock data allocation out of sd_event_add_time()
Just some simple refactoring, that will make things easier for us later.
But it looks better this way even without the later function reuse.
(cherry picked from commit
41c63f36c3352af8bebf03b6181f5d866431d0af)
Related: #
1819868
Lennart Poettering [Mon, 23 Nov 2020 10:39:40 +0000 (11:39 +0100)]
sd-event: mention that two debug logged events are ignored
(cherry picked from commit
f80a5d6a86dc2346f406ee086ba179879afaab70)
Related: #
1819868
Lennart Poettering [Fri, 23 Oct 2020 19:21:58 +0000 (21:21 +0200)]
sd-event: split out enable and disable codepaths from sd_event_source_set_enabled()
So far half of sd_event_source_set_enabled() was doing enabling, the
other half was doing disabling. Let's split that into two separate
calls.
(This also adds a new shortcut to sd_event_source_set_enabled(): if the
caller toggles between "ON" and "ONESHOT" we'll now shortcut this, since
the event source is already enabled in that case and shall remain
enabled.)
This heavily borrows and is inspired from Michal Sekletár's #17284
refactoring.
(cherry picked from commit
ddfde737b546c17e54182028153aa7f7e78804e3)
Related: #
1819868
Michal Sekletár [Fri, 23 Oct 2020 16:29:27 +0000 (18:29 +0200)]
sd-event: split out helper functions for reshuffling prioqs
We typically don't just reshuffle a single prioq at once, but always
two. Let's add two helper functions that do this, and reuse them
everywhere.
(Note that this drops one minor optimization:
sd_event_source_set_time_accuracy() previously only reshuffled the
"latest" prioq, since changing the accuracy has no effect on the
earliest time of an event source, just the latest time an event source
can run. This optimization is removed to simplify things, given that
it's not really worth the effort as prioq_reshuffle() on properly
ordered prioqs has practically zero cost O(1)).
(Slightly generalized, commented and split out of #17284 by Lennart)
(cherry picked from commit
e1951c16a8fbe5b0b9ecc08f4f835a806059d28f)
Related: #
1819868
Martin Wilck [Tue, 24 Apr 2018 19:40:23 +0000 (21:40 +0200)]
test/sys-script.py: add missing DEVNAME entries to uevents
Resolves: #
1931947
Michal Sekletar [Tue, 2 Mar 2021 17:57:59 +0000 (12:57 -0500)]
Revert "test: add test cases for empty string match" and "test: add test case for multi matches when use ||"
This effectively reverts commits
03bc565e6e3249385c4e1ca0ae27670ca2ad9a41
and
03b766cc937ffa4dcb7cfb25b2ac20d8a00cb6db.
Resolves: #
1931947
Zbigniew Jędrzejewski-Szmek [Tue, 17 Nov 2020 16:13:31 +0000 (17:13 +0100)]
test/udev-test: gracefully exit when imports fail
In Fedora rawhide various perl modules are now available as separate
packages that are not pulled in by dependencies. If we don't have some
package, skip the tests.
This ugly code is apparently the way to do conditional imports:
https://www.cs.ait.ac.th/~on/O/oreilly/perl/cookbook/ch12_03.htm.
(cherry picked from commit
d40763838278246e2073d15ca927ee700e583afc)
Related: #
1642728
Martin Wilck [Thu, 26 Apr 2018 12:07:27 +0000 (14:07 +0200)]
test/udev_test.pl: add "expected good" count
Since 'test/udev-test.pl: count "good" results', we know how many
checks succeeded. Add an "expected good" count to make that number
more meaningful.
(cherry picked from commit
cbeb23d863d540408cd1fb274d78213f59639df2)
Related: #
1642728
Martin Wilck [Thu, 26 Apr 2018 11:25:11 +0000 (13:25 +0200)]
test/udev-test.pl: suppress umount error message at startup
umount emits an error message "no mount point specified" if the
tmpfs isn't mounted yet, which is the normal case.
Suppress that by redirecting stderr.
(cherry picked from commit
f1cb0860549e775be5f91237b5a3b97698dd14dd)
Related: #
1642728
Martin Wilck [Wed, 25 Apr 2018 07:54:26 +0000 (09:54 +0200)]
test/udev-test.pl: generator for large list of block devices
Manually listing all devices in the test definition becomes cumbersome with
lots of devices. Add a function that scans on all block devices in
the test sysfs and generates a list of devices to test.
(cherry picked from commit
eb44d715ebee2fe11288433b99f8e1dc5fdac84a)
Related: #
1642728
Martin Wilck [Tue, 24 Apr 2018 20:24:43 +0000 (22:24 +0200)]
test/udev-test.pl: add repeat count
for easier reproduction of sporadic test failures.
(cherry picked from commit
2ab0a8d00bc48d3531e953d938db889d8a932d65)
Related: #
1642728
Martin Wilck [Tue, 24 Apr 2018 20:04:55 +0000 (22:04 +0200)]
tests/udev-test.pl: add multiple device test
Add 4 new tests using multiple devices. Number 2-4 use many
devices claiming the same symlink, where only one device has
a higher priority thatn the others. They fail sporadically with
the current code, if a race condition causes the symlink to point
to the wrong device. Test 4 is like test 2 with sleeps in between,
it's much less likely to fail.
(cherry picked from commit
4a0ec82daf32446519e1d86329bb802325b82104)
Related: #
1642728
Martin Wilck [Tue, 24 Apr 2018 18:55:01 +0000 (20:55 +0200)]
test/udev-test.pl: count "good" results
This is helpful to catch possible regressions in the test.
Also, don't count wait() errors, they are likely not udev errors.
(cherry picked from commit
b95c43982ab7d0253b552ad56cffb3d68fcbb4f6)
Related: #
1642728
Martin Wilck [Tue, 24 Apr 2018 16:30:09 +0000 (18:30 +0200)]
test/udev-test.pl: merge import parent tests into one
As we can test multiple devices and multiple links per device
in one test now, these two tests can be merged into one.
(cherry picked from commit
a96cd21d31cb7af211862768e133b50b085634e7)
Related: #
1642728
Martin Wilck [Tue, 24 Apr 2018 16:27:25 +0000 (18:27 +0200)]
test/udev-test.pl: merge "space and var with space" tests
As we can check multiple links in a single test now, these 3
tests can be merged into one.
(cherry picked from commit
2084fe0d3290c525ecb9faa07d07c3abc2488e59)
Related: #
1642728
Martin Wilck [Tue, 24 Apr 2018 16:16:59 +0000 (18:16 +0200)]
test/udev-test.pl: remove bogus rules from magic subsys test
These rules have survived from an ancient version of the code
and save no purpose any more.
(cherry picked from commit
86634df43b715f3f77c7de73a3ef6566e5cdf571)
Related: #
1642728
Martin Wilck [Tue, 24 Apr 2018 16:09:50 +0000 (18:09 +0200)]
test/udev-test.pl: Make some tests a little harder
Add some rules that make it a bit harder to pass, mainly the
non-existence checks.
(cherry picked from commit
06d4d4e24e7d0b51120b165e540d278842e8b1a3)
Related: #
1642728
Martin Wilck [Tue, 24 Apr 2018 16:08:18 +0000 (18:08 +0200)]
test/udev-test.pl: last_rule is unsupported
the "last_rule" option hasn't been supported for some time.
Therefore this test fails if a "not_exp_links" attribute is added,
as it should be. Mark it appropriately.
(cherry picked from commit
17cce031531a5d3f38a27374c99d1bdba5959dbd)
Related: #
1642728
Martin Wilck [Tue, 24 Apr 2018 15:57:47 +0000 (17:57 +0200)]
test/udev-test.pl: fix wrong test descriptions
udev hasn't supported renaming device nodes for some time.
(cherry picked from commit
46bc71b2b73f8a1e27dc5e142730e9877dd05e3e)
Related: #
1642728
Martin Wilck [Tue, 24 Apr 2018 15:15:58 +0000 (17:15 +0200)]
test/udev-test.pl: allow checking multiple symlinks
Instead of testing the existence or non-exisitence of just a single
symlink, allow testing of several links per device.
Change the test definitions accordingly.
(cherry picked from commit
e62acc3159935781f05fa59c48e5a74e85c61ce2)
Related: #
1642728
Martin Wilck [Tue, 24 Apr 2018 08:50:24 +0000 (10:50 +0200)]
test/udev-test.pl: test correctness of symlink targets
Test if symlinks are created correctly by comparing the symlink
targets to the devnode path. This implies (for the symlink) that
major/minor numbers and permissions are correct, as we have tested
that on the devnode already.
(cherry picked from commit
997683c8f152e1c139a7ce537de81a0aeae4627f)
Related: #
1642728
Martin Wilck [Tue, 24 Apr 2018 07:38:26 +0000 (09:38 +0200)]
test/udev-test.pl: use computed devnode name
More often than not, the created devnode is the basename of the
sysfs entry. The "devnode" device may be used to override the
auto-detected node name.
Permissions and major/minor number are now verified on the devnode
itself, not on symlinks.
For those tests where exp_name is set to the computed devnode name,
the explicit "exp_name" can be removed. "exp_name" is only required for
symlinks.
This allows separate testing for devnodes and symlinks an a follow-up
patch.
(cherry picked from commit
f0dccf01a7b4e72278e14effd74782ea83d0a73b)
Related: #
1642728
Martin Wilck [Mon, 23 Apr 2018 19:59:05 +0000 (21:59 +0200)]
test/udev-test.pl: allow concurrent additions and removals
Allow testing cases where multiple devices are added and removed
simultaneously. Tests are started as synchronously as possible using a
semaphore, in order to test possible race conditions. If this isn't desired,
the test parameter "sleep_us" can be set to the number of microseconds to wait
between udev invocations.
(cherry picked from commit
09a4062d70b3a10d022e40066e2adf09df05bbbc)
Related: #
1642728
Martin Wilck [Mon, 23 Apr 2018 19:58:12 +0000 (21:58 +0200)]
test/udev-test.pl: create rules only once
It's not necessary to write the rules for every udev run, as we
now may have many (rather than just 2) per test.
(cherry picked from commit
af7ee3eae689f9c31b49ea13758ad9c901918ce3)
Related: #
1642728
Martin Wilck [Fri, 20 Apr 2018 20:38:30 +0000 (22:38 +0200)]
test/udev-test.pl: allow multiple devices per test
Allow testing cases where multiple devices are added and removed.
This implies a change of the data structure: every test allows
for multiple devices to be added, and "exp_name" etc. are now properties
of the device, not of the test.
(cherry picked from commit
255c05b72455dcad1b5552d12a813b31f68201a7)
Related: #
1642728
Zbigniew Jędrzejewski-Szmek [Fri, 4 Sep 2020 16:09:20 +0000 (18:09 +0200)]
udev-test: do not rely on "mail" group being defined
"audio" should be there, at least we declare it. "mail" nowadays is less
likely to exist than in the past.
Fixes one of the items in #16942.
(cherry picked from commit
a9030b81c154c3ec92227d04cad6b13cc1125608)
Related: #
1642728
gaoyi [Sun, 12 Jul 2020 07:27:45 +0000 (03:27 -0400)]
test: add test case for multi matches when use "||"
Signed-off-by: gaoyi <ymuemc@163.com>
(cherry picked from commit
0d3a8bc7ebd76591e14f7098b4266fd2065ac4db)
Related: #
1642728
Yu Watanabe [Wed, 11 Sep 2019 00:06:15 +0000 (09:06 +0900)]
test: add test cases for empty string match
(cherry picked from commit
48d26c90852c22ec94be961f5fbdcf462bb9a6e8)
Related: #
1642728
Dan Streetman [Fri, 5 Jul 2019 15:24:55 +0000 (11:24 -0400)]
test/udev-test.pl: cleanup if skipping test
In Ubuntu CI, udev-test.pl is run from the debian/test/udev script,
in a test dir created for it; but udev-test.pl setup mounts a
dir, so if it doesn't cleanup/unmount before exiting, the test dir
autopkgtest created for it can't be removed, and autopkgtest
aborts the entire test suite, for example this output (from a
test run inside an armhf container):
autopkgtest [12:45:36]: test udev: [-----------------------
umount: test/tmpfs: no mount point specified.
mknod: test/tmpfs/dev/null: Operation not permitted
unable to create test/tmpfs/dev/null at ./udev-test.pl line 1611.
Failed to set up the environment, skipping the test at ./udev-test.pl line 1731.
autopkgtest [12:45:41]: test udev: -----------------------]
autopkgtest [12:45:44]: test udev: - - - - - - - - - - results - - - - - - - - - -
udev FAIL non-zero exit status 77
rm: cannot remove '/tmp/autopkgtest.ocPFA6/autopkgtest_tmp/test/tmpfs': Device or resource busy
autopkgtest [12:46:22]: ERROR: "rm -rf /tmp/autopkgtest.ocPFA6/udev-artifacts /tmp/autopkgtest.ocPFA6/autopkgtest_tmp" failed with stderr "rm:
(cherry picked from commit
abb9cc50afb3949c442849f43301fb33578f3888)
Related: #
1642728
Yu Watanabe [Thu, 21 Feb 2019 09:04:12 +0000 (18:04 +0900)]
test-udev: fix alignment and drop unnecessary white spaces
(cherry picked from commit
3dd2d524141d09d57443ae339e1a77d7ce40f847)
Related: #
1642728
Yu Watanabe [Thu, 21 Feb 2019 09:03:32 +0000 (18:03 +0900)]
test-udev: add more tests for line continuation
(cherry picked from commit
84a0819c9d89a2ddb195a5d975ae1fd5c62fde3c)
Related: #
1642728
Yu Watanabe [Tue, 19 Feb 2019 00:22:45 +0000 (09:22 +0900)]
test-udev: add more tests for line continuations and comments
(cherry picked from commit
d35976c670b0e5c2d4081b781e5af88c0689ff00)
Related: #
1642728
Yu Watanabe [Tue, 19 Feb 2019 00:21:42 +0000 (09:21 +0900)]
test-udev: use proper semantics for too long line with continuation
Follow-up for
1e797cf596df50a6bdd8cbf8e9b2467a3a934171.
(cherry picked from commit
e37a5d90b0c624b95f8d0c3400288fec60417ec4)
Related: #
1642728
Yu Watanabe [Mon, 18 Feb 2019 01:38:29 +0000 (10:38 +0900)]
test-udev: add a testcase of too long line
(cherry picked from commit
1e797cf596df50a6bdd8cbf8e9b2467a3a934171)
Related: #
1642728
Alexey Bogdanenko [Tue, 11 Dec 2018 13:55:34 +0000 (16:55 +0300)]
udev-test: check if permitted to create block device nodes
(cherry picked from commit
dbfbc6c4e34366033cb340e8b0c3cbca683ff6f5)
Related: #
1642728
Alexey Bogdanenko [Sat, 8 Dec 2018 12:35:30 +0000 (15:35 +0300)]
udev-test: fix missing directory test/run
Fixes the following error:
Failed to mount test /run: No such file or directory
By the time command "./test-udev check" calls function "fake_filesystems",
directory "test/run" must be present.
(cherry picked from commit
1e5548c0e0962424b6ca5fdfd35c866b70760c8f)
Related: #
1642728
Alexey Bogdanenko [Sat, 8 Dec 2018 08:02:30 +0000 (11:02 +0300)]
udev-test: fix test skip condition
When there is a failure to setup the environment, the following happens:
1. Command "./test-udev check" exits with non-zero code.
2. Perl function "system" returns the code.
3. The code is evaluated as true by Perl.
Then we stop the test.
(cherry picked from commit
7935dae547caf164d807237f1009a9e9fa510337)
Related: #
1642728
Evgeny Vereshchagin [Fri, 9 Nov 2018 03:01:15 +0000 (04:01 +0100)]
udev-test: skip the test only if it can't setup its environment
This is basically a replacement for
0eb3cc88504b5d8f74.
(cherry picked from commit
110a13202eab6d92678abcde08372d4afac1cc45)
Related: #
1642728
Evgeny Vereshchagin [Fri, 9 Nov 2018 02:14:04 +0000 (03:14 +0100)]
udev-test: remove a check for whether the test is run in a container
It's too broad a check that prevents the test from running on Travis CI.
(cherry picked from commit
881886ef08d50951159633248b0f73977c5d6924)
Related: #
1642728
Yu Watanabe [Wed, 7 Nov 2018 05:56:20 +0000 (14:56 +0900)]
Yu Watanabe [Mon, 22 Oct 2018 22:23:01 +0000 (07:23 +0900)]
test: create /dev/null in test-udev.pl
(cherry picked from commit
a41ff38b0999fb83464309a29b8f39450b8d4b85)
Related: #
1642728
Michal Sekletar [Wed, 6 Jan 2021 10:43:50 +0000 (11:43 +0100)]
udev: make algorithm that selects highest priority devlink less susceptible to race conditions
Previously it was very likely, when multiple contenders for the symlink
appear in parallel, that algorithm would select wrong symlink (i.e. one
with lower-priority).
Now the algorithm is much more defensive and when we detect change in
set of contenders for the symlink we reevaluate the selection. Same
happens when new symlink replaces already existing symlink that points
to different device node.
Resolves: #
1642728
Michal Sekletár [Thu, 5 Nov 2020 16:55:25 +0000 (17:55 +0100)]
basic/stat-util: make mtime check stricter and use entire timestamp
Note that st_mtime member of struct stat is defined as follows,
#define st_mtime st_mtim.tv_sec
Hence we omitted checking nanosecond part of the timestamp (struct
timespec) and possibly would miss modifications that happened within the
same second.
(cherry picked from commit
a59b0a9f768f6e27b25f4f1bab6de08842e78d74)
Related: #
1642728
Michal Sekletar [Tue, 5 Jan 2021 11:30:15 +0000 (12:30 +0100)]
udev/net_id: give RHEL-8.4 naming scheme a name
Follow-up for
bb6114af097da0cd9c5081e42db718559130687f
Related: #
1827462
Christian Göttsche [Mon, 6 Jan 2020 14:27:23 +0000 (15:27 +0100)]
selinux: add trigger for policy reload to refresh internal selabel cache
Reload the internal selabel cache automatically on SELinux policy reloads so non pid-1 daemons are participating.
Run the reload function `mac_selinux_reload()` not manually on daemon-reload, but rather pass it as callback to libselinux.
Trigger the callback prior usage of the systemd internal selabel cache by depleting the selinux netlink socket via `avc_netlink_check_nb()`.
Improves:
a9dfac21ec85 ("core: reload SELinux label cache on daemon-reload")
Improves: #13363
(cherry picked from commit
61f3e897f13101f29fb8027e8839498a469ad58e)
Related: #
1888912
Franck Bui [Mon, 2 Jul 2018 08:22:56 +0000 (10:22 +0200)]
selinux: introduce mac_selinux_create_file_prepare_at()
(cherry picked from commit
7e531a5265687aef5177b070c36ca4ceab42e768)
Related: #
1888912
Christian Göttsche [Wed, 27 Nov 2019 18:43:47 +0000 (19:43 +0100)]
core: reload SELinux label cache on daemon-reload
Reloading the SELinux label cache here enables a light-wight follow-up of a SELinux policy change, e.g. adding a label for a RuntimeDirectory.
Closes: #13363
(cherry picked from commit
a9dfac21ec850eb5dcaf1ae9ef729389e4c12802)
Resolves: #
1888912
Franck Bui [Mon, 28 Jan 2019 11:07:37 +0000 (12:07 +0100)]
units: make sure initrd-cleanup.service terminates before switching to rootfs
A follow-up for commit
a8cb1dc3e0fa81aff.
Commit
a8cb1dc3e0fa81aff made sure that initrd-cleanup.service won't be stopped
when initrd-switch-root.target is isolated.
However even with this change, it might happen that initrd-cleanup.service
survives the switch to rootfs (since it has no ordering constraints against
initrd-switch-root.target) and is stopped right after when default.target is
isolated. This led to initrd-cleanup.service entering in failed state as it
happens when oneshot services are stopped.
This patch along with
a8cb1dc3e0fa81aff should fix issue #4343.
Fixes: #4343
(cherry picked from commit
e2c7c94ea35fe7e669afb51bfc2251158b522ea5)
Related: #
1657810
Pavel Hrdina [Wed, 25 Nov 2020 08:05:36 +0000 (09:05 +0100)]
cgroup: Also set blkio.bfq.weight
Commit [1] added a workaround when unified cgroups are used but missed
legacy cgroups where there is the same issue.
[1] <https://github.com/systemd/systemd/commit/
2dbc45aea747f25cc1c3848fded2ec0062f96bcf>
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
(cherry picked from commit
35e7a62ca32a30169a94693b831e53c832251984)
Resolves: #
1657810
David Tardon [Fri, 11 Dec 2020 08:34:19 +0000 (09:34 +0100)]
use link to RHEL-8 docs
RHEL-only
Related: #
1623116
Lennart Poettering [Thu, 8 Nov 2018 08:33:31 +0000 (09:33 +0100)]
unit: make UNIT() cast function deal with NULL pointers
Fixes: #10681
(cherry picked from commit
bbf11206230d1b089118971f98a047151cb5c4fa)
Related: #
1871827