Systemd/src
Zbigniew Jędrzejewski-Szmek 3ceae1bc14 basic/fs-util: skip fsync_directory_of_file() if /proc/self/fd/ is not available (#8386)
When systemd is running under lorax (in Fedora compose process), it'd think that
it failed to write /etc/machine-id, even though the write succeeded, because
fsync_directory_of_file() would fail, because /proc/self/fd/ is not available.
fsync_directory_of_file() is mostly an additional safety net, so I think it's best
to just silently ignore the error.

Strace of pid1:
35791 stat("/etc", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
35791 openat(AT_FDCWD, "/etc/machine-id", O_RDWR|O_CREAT|O_NOCTTY|O_CLOEXEC, 0444) = 3
35791 umask(022)                        = 000
35791 read(3, "", 38)                   = 0
35791 openat(AT_FDCWD, "/var/lib/dbus/machine-id", O_RDONLY|O_NOCTTY|O_NOFOLLOW|O_CLOEXEC) = -1 ENOENT (No such file o
r directory)
35791 openat(AT_FDCWD, "/sys/class/dmi/id/product_name", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
35791 openat(AT_FDCWD, "/sys/class/dmi/id/sys_vendor", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
35791 openat(AT_FDCWD, "/sys/class/dmi/id/board_vendor", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
35791 openat(AT_FDCWD, "/sys/class/dmi/id/bios_vendor", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
35791 access("/proc/xen", F_OK)         = -1 ENOENT (No such file or directory)
35791 openat(AT_FDCWD, "/sys/hypervisor/type", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
35791 openat(AT_FDCWD, "/proc/cpuinfo", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
35791 getrandom("\xb8\x82\xed\xd4\x35\x11\xd0\xeb\xa6\x79\xd7\x31\x6e\x7b\x99\xce", 16, GRND_NONBLOCK) = 16
35791 writev(2, [{iov_base="Initializing machine ID from random generator.", iov_len=46}, {iov_base="\n", iov_len=1}],
 2) = 47
35791 lseek(3, 0, SEEK_SET)             = 0
35791 ftruncate(3, 0)                   = 0
35791 write(3, "b882edd4351140eba679d7316e7b99ce\n", 33) = 33
35791 fsync(3)                          = 0
35791 fstat(3, {st_mode=S_IFREG|0444, st_size=33, ...}) = 0
35791 readlinkat(AT_FDCWD, "/proc/self/fd/3", 0x564df8c694c0, 99) = -1 ENOENT (No such file or directory)
35791 close(3)                          = 0
35791 umask(022)                        = 022
35791 openat(AT_FDCWD, "/run/machine-id", O_WRONLY|O_CREAT|O_NOCTTY|O_TRUNC|O_CLOEXEC, 0444) = 3
35791 write(3, "b882edd4351140eba679d7316e7b99ce\n", 33) = 33
35791 close(3)                          = 0
35791 umask(022)                        = 022
35791 mount("/run/machine-id", "/etc/machine-id", NULL, MS_BIND, NULL) = 0
35791 writev(2, [{iov_base="Installed transient /etc/machine-id file.", iov_len=41}, {iov_base="\n", iov_len=1}], 2) = 42
35791 mount(NULL, "/etc/machine-id", NULL, MS_RDONLY|MS_REMOUNT|MS_BIND, NULL) = 0

https://bugzilla.redhat.com/show_bug.cgi?id=1552843
2018-03-20 18:20:01 +01:00
..
ac-power
activate tree-wide: port various places over to use new rearrange_stdio() 2018-03-02 11:42:10 +01:00
analyze bus-util: make bus_map_all_properties() not copy string 2018-03-20 00:42:48 +09:00
ask-password
backlight
basic basic/fs-util: skip fsync_directory_of_file() if /proc/self/fd/ is not available (#8386) 2018-03-20 18:20:01 +01:00
binfmt
boot boot: also use _cleanup_freepool_ in util.c 2018-03-13 11:42:02 +01:00
busctl tree-wide: voidify pager_open() 2018-03-19 21:04:02 +09:00
cgls tree-wide: voidify pager_open() 2018-03-19 21:04:02 +09:00
cgroups-agent
cgtop Merge pull request #8149 from poettering/fake-root-cgroup 2018-03-01 11:10:24 +01:00
core Merge pull request #8452 from keszybz/use-libmount-more 2018-03-20 09:53:34 +01:00
coredump tree-wide: voidify pager_open() 2018-03-19 21:04:02 +09:00
cryptsetup log: remove LOG_TARGET_SAFE pseudo log target 2018-01-24 18:22:56 +01:00
debug-generator log: remove LOG_TARGET_SAFE pseudo log target 2018-01-24 18:22:56 +01:00
delta tree-wide: voidify pager_open() 2018-03-19 21:04:02 +09:00
detect-virt
dissect
environment-d-generator
escape
firstboot tty-ask-password-agent: don't open terminal multiple times 2018-02-14 00:11:16 +01:00
fsck tree-wide: make use of wait_for_terminate_and_check() at various places 2018-01-04 13:27:27 +01:00
fstab-generator fstab-generator: downgrade message when we can't canonicalize fstab entries (#8281) 2018-02-27 07:58:19 +01:00
fuzz fuzz-unit-file: simply do not test ListenNetlink= at all 2018-03-18 21:05:43 +01:00
getty-generator log: remove LOG_TARGET_SAFE pseudo log target 2018-01-24 18:22:56 +01:00
gpt-auto-generator log: remove LOG_TARGET_SAFE pseudo log target 2018-01-24 18:22:56 +01:00
hibernate-resume log: remove LOG_TARGET_SAFE pseudo log target 2018-01-24 18:22:56 +01:00
hostname bus-util: make bus_map_all_properties() not copy string 2018-03-20 00:42:48 +09:00
hwdb networkctl,hwdb: make verbs static 2018-03-19 21:03:35 +09:00
import tree-wide: port various places over to use new rearrange_stdio() 2018-03-02 11:42:10 +01:00
initctl log: minimize includes in log.h 2018-01-11 14:44:31 +01:00
journal tree-wide: voidify pager_open() 2018-03-19 21:04:02 +09:00
journal-remote meson: use triple-quote delimition in one more place 2018-03-09 14:15:39 +01:00
kernel-install kernel-install: Don't install BLS kernel images if dest dir doesn't exist (#8306) 2018-02-28 10:25:19 +01:00
libsystemd Merge pull request #8106 from dqminh/route-expires-kernel 2018-03-20 17:38:30 +01:00
libsystemd-network dhcp4: introduce new option 'duid-only' for ClientIdentifier= (#8350) 2018-03-12 17:18:07 +01:00
libudev Make MANAGER_TEST_RUN_MINIMAL just allocate data structures 2018-03-11 16:33:59 +01:00
locale bus-util: make bus_map_all_properties() not copy string 2018-03-20 00:42:48 +09:00
login bus-util: introduce bus_message_print_all_properties() 2018-03-20 00:44:37 +09:00
machine bus-util: introduce bus_message_print_all_properties() 2018-03-20 00:44:37 +09:00
machine-id-setup
modules-load
mount tree-wide: voidify pager_open() 2018-03-19 21:04:02 +09:00
network Merge pull request #8106 from dqminh/route-expires-kernel 2018-03-20 17:38:30 +01:00
notify notify: add new --uid= command 2018-01-11 15:12:16 +01:00
nspawn nspawn: move network namespace creation to a separate step (#8430) 2018-03-20 18:07:17 +01:00
nss-myhostname
nss-mymachines nss-mymachines: add work-around to silence gcc warning 2018-02-06 17:08:42 +09:00
nss-resolve resolve: Adjust and unify D-Bus call timeout (#7847) 2018-01-23 09:53:31 +09:00
nss-systemd nss-systemd: add work-around to silence gcc warning 2018-02-05 15:21:07 +01:00
partition log: minimize includes in log.h 2018-01-11 14:44:31 +01:00
path
quotacheck process-spec: add another flag FORK_WAIT to safe_fork() 2018-01-04 13:27:27 +01:00
random-seed
rc-local-generator log: remove LOG_TARGET_SAFE pseudo log target 2018-01-24 18:22:56 +01:00
remount-fs process-util: add another fork_safe() flag for enabling LOG_ERR/LOG_WARN logging 2018-01-04 13:27:26 +01:00
reply-password
resolve resolve: show more global settings in systemd-resolve --status 2018-03-20 00:44:47 +09:00
rfkill
run bus-util: make bus_map_all_properties() not copy string 2018-03-20 00:42:48 +09:00
shared seccomp: enable RestrictAddressFamilies on ppc (#8505) 2018-03-20 16:08:20 +01:00
sleep Introduce suspend-to-hibernate (#8274) 2018-03-08 14:17:33 +01:00
socket-proxy
stdio-bridge
sulogin-shell process-util: rework wait_for_terminate_and_warn() to take a flags parameter 2018-01-04 13:27:27 +01:00
sysctl tree-wide: use path_hash_ops instead of string_hash_ops whenever we key by a path 2018-02-12 11:07:55 +01:00
system-update-generator log: remove LOG_TARGET_SAFE pseudo log target 2018-01-24 18:22:56 +01:00
systemctl bus-util: introduce bus_message_print_all_properties() 2018-03-20 00:44:37 +09:00
systemd dhcp4: introduce new option 'duid-only' for ClientIdentifier= (#8350) 2018-03-12 17:18:07 +01:00
sysusers sysusers: make sure to reset errno before calling fget*ent() 2018-03-20 11:38:39 +01:00
sysv-generator log: remove LOG_TARGET_SAFE pseudo log target 2018-01-24 18:22:56 +01:00
test Merge pull request #8452 from keszybz/use-libmount-more 2018-03-20 09:53:34 +01:00
timedate bus-util: make bus_map_all_properties() not copy string 2018-03-20 00:42:48 +09:00
timesync tree-wide: use "cannot" instead of "can not" 2018-02-08 10:34:52 +01:00
tmpfiles tmpfiles: don't resolve pathnames when traversing recursively through directory trees 2018-03-05 19:00:11 +01:00
tty-ask-password-agent fixed 3 occurences of 'Failed top open' (#8349) 2018-03-04 21:12:45 +09:00
udev v4l_id: check mplane video capture and output capailities (#8464) 2018-03-20 09:54:18 +01:00
update-done
update-utmp
user-sessions nologin: extend the /run/nologin descriptions a bit (#8244) 2018-02-22 14:21:30 +01:00
vconsole coccinelle: similar to reallocarray() let's also systematically use malloc_multiply() 2018-03-02 12:39:07 +01:00
veritysetup log: remove LOG_TARGET_SAFE pseudo log target 2018-01-24 18:22:56 +01:00
volatile-root