Bug ID 1215548
Summary new coreutils-systemd breaks "uptime"
Classification openSUSE
Product openSUSE Tumbleweed
Version Current
Hardware aarch64
OS Other
Status NEW
Severity Normal
Priority P5 - None
Component Basesystem
Assignee screening-team-bugs@suse.de
Reporter seife@novell.slipkontur.de
QA Contact qa-bugs@suse.de
Target Milestone ---
Found By ---
Blocker ---

The new coreutils-systemd's "uptime" command reports wrong values:

wrong, newer system:
raspi4c:~ # grep VERSION_ID /etc/os-release 
VERSION_ID="20230910"
raspi4c:~ # rpm -qf `which uptime`
coreutils-systemd-9.4-1.1.aarch64
raspi4c:~ # uptime
 06:28:33  up 4 days 21:40,  1 user,  load average: 0.16, 0.16, 0.11
raspi4c:~ # cat /proc/uptime
136079.24 225710.69

correct, older system:
raspi4a:~ # grep VERSION_ID /etc/os-release 
VERSION_ID="20230904"
raspi4a:~ # rpm -qf `which uptime`
coreutils-9.3-1.2.aarch64
raspi4a:~ # uptime
 06:28:51  up 1 day 13:48,  1 user,  load average: 0.09, 0.16, 0.12
raspi4a:~ # cat /proc/uptime 
136093.86 92370.61

These are raspberry pi4's which don't have a realtime clock, so the system
clock is wrong on boot.

The broken version does not consult the kernel:
raspi4c:~ # strace -e file uptime
execve("/usr/bin/uptime", ["uptime"], 0xffffe61bb560 /* 48 vars */) = 0
faccessat(AT_FDCWD, "/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or
directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=26215, ...}, AT_EMPTY_PATH) =
0
openat(AT_FDCWD, "/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=2515928, ...}, AT_EMPTY_PATH)
= 0
openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = -1
ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=2940, ...}, AT_EMPTY_PATH) = 0
openat(AT_FDCWD, "/usr/lib/locale/de_DE.utf8/LC_CTYPE", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=357744, ...}, AT_EMPTY_PATH) =
0
openat(AT_FDCWD, "/usr/lib64/gconv/gconv-modules.cache", O_RDONLY|O_CLOEXEC) =
3
newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=27012, ...}, AT_EMPTY_PATH) =
0
faccessat(AT_FDCWD, "/var/run/utmpx", F_OK) = -1 ENOENT (No such file or
directory)
openat(AT_FDCWD, "/var/run/utmp", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/etc/localtime", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such
file or directory)
newfstatat(1, "", {st_mode=S_IFCHR|0620, st_rdev=makedev(0x88, 0x1), ...},
AT_EMPTY_PATH) = 0
 06:30:05  up 4 days 21:41,  1 user,  load average: 0.20, 0.18, 0.11
+++ exited with 0 +++

The working version does:
raspi4a:~ # strace -e file uptime
execve("/usr/bin/uptime", ["uptime"], 0xffffe5952d00 /* 48 vars */) = 0
faccessat(AT_FDCWD, "/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or
directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=23327, ...}, AT_EMPTY_PATH) =
0
openat(AT_FDCWD, "/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=2515928, ...}, AT_EMPTY_PATH)
= 0
openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = -1
ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=2940, ...}, AT_EMPTY_PATH) = 0
openat(AT_FDCWD, "/usr/lib/locale/de_DE.utf8/LC_CTYPE", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=357744, ...}, AT_EMPTY_PATH) =
0
openat(AT_FDCWD, "/usr/lib64/gconv/gconv-modules.cache", O_RDONLY|O_CLOEXEC) =
3
newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=27012, ...}, AT_EMPTY_PATH) =
0
faccessat(AT_FDCWD, "/var/run/utmpx", F_OK) = -1 ENOENT (No such file or
directory)
openat(AT_FDCWD, "/var/run/utmp", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/proc/uptime", O_RDONLY) = 3
newfstatat(3, "", {st_mode=S_IFREG|0444, st_size=0, ...}, AT_EMPTY_PATH) = 0
openat(AT_FDCWD, "/etc/localtime", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such
file or directory)
newfstatat(1, "", {st_mode=S_IFCHR|0620, st_rdev=makedev(0x88, 0x2), ...},
AT_EMPTY_PATH) = 0
 06:30:40  up 1 day 13:49,  1 user,  load average: 0.10, 0.15, 0.12
+++ exited with 0 +++


You are receiving this mail because: