Skip to content

Commit 2db4a49

Browse files
committed
smoke: the greeter wrapper testifies at its own exit points
The journal shows the greeter mid-wgpu-shader-compile when the whole chain dies silently — three seconds in, no panic, no niri line. The wrapper knows which branch ends the session (compositor death with its status, socket timeout, greeter exit with rc); each branch now logs it, tagged kuma-greeter. The failure dump also reads the kernel journal now: a compositor dying without a log line leaves a traps/segfault/oom line there instead. Goldens re-blessed; suite green.
1 parent 5f93fe6 commit 2db4a49

5 files changed

Lines changed: 23 additions & 5 deletions

File tree

‎scripts/smoke.sh‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,9 @@ bad() {
249249
# but exactly the verdict an SELinux-bound greeter leaves.
250250
guest 'journalctl -b --no-pager -t kuma-greeter | tail -40' || true
251251
guest 'journalctl -b --no-pager | grep -iE "avc.*denied|selinux" | tail -20' || true
252+
# a compositor or GPU client dying without its own log line
253+
# leaves a kernel line instead: traps/segfault, oom-kill
254+
guest 'journalctl -k -b --no-pager | grep -iE "segfault|general protection|traps:|oom-kill|killed process" | tail -10' || true
252255
guest 'journalctl -b --no-pager | grep -iE "greetd|niri|noctalia|kuma-shell|kuma-greeter" | tail -30' || true
253256
guest 'journalctl -b --no-pager | grep -vE "sshd|logind|audit|session-[0-9]+" | tail -30' || true
254257
guest 'journalctl --user -b --no-pager | grep -vE "sshd|logind|audit|session-[0-9]+" | tail -30' || true

‎src/containerfile/blocks.rs‎

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -532,8 +532,13 @@ export XDG_CACHE_HOME=/var/lib/greetd/cache
532532
export RUST_LOG=debug
533533
exec 2> >(exec logger -t kuma-greeter)
534534
535+
# The wrapper knows why the session ends: compositor death, socket
536+
# timeout, or greeter exit with its status. Say so — three laps of a
537+
# silent "greeter exited without creating a session" bought this.
538+
echo "wrapper: greetd started the session (pid $$)"
535539
niri -c /usr/share/kumaos/greeter-niri.kdl &
536540
niri_pid=$!
541+
started=$SECONDS
537542
cleanup() { kill "$niri_pid" 2>/dev/null; }
538543
trap cleanup EXIT
539544
@@ -543,19 +548,29 @@ sock=""
543548
for _ in $(seq 1 100); do
544549
sock=$(ls "$XDG_RUNTIME_DIR"/wayland-? 2>/dev/null | head -1)
545550
[ -n "$sock" ] && break
546-
kill -0 "$niri_pid" 2>/dev/null || exit 1
551+
if ! kill -0 "$niri_pid" 2>/dev/null; then
552+
wait "$niri_pid"
553+
echo "wrapper: niri died after $((SECONDS - started))s (exit $?)"
554+
exit 1
555+
fi
547556
sleep 0.1
548557
done
549-
[ -n "$sock" ] || exit 1
558+
if [ -z "$sock" ]; then
559+
echo "wrapper: no wayland socket after 10s, niri still alive"
560+
exit 1
561+
fi
562+
echo "wrapper: wayland socket up after $((SECONDS - started))s"
550563
551564
WAYLAND_DISPLAY=${sock##*/} /usr/bin/kuma-greeter
552565
rc=$?
566+
echo "wrapper: greeter exited rc=$rc after $((SECONDS - started))s"
553567
# the greeter only exits on success or crash: either way hand the
554568
# session back to greetd immediately, don't make it wait out its
555569
# 5-second patience on a compositor nobody is using
556570
cleanup
557571
trap - EXIT
558572
wait "$niri_pid" 2>/dev/null
573+
echo "wrapper: niri reaped (exit $?)"
559574
exit $rc
560575
"#;
561576

‎src/containerfile/goldens/everything-on.manifest‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ kuma-fstab-sync 8d91559a751bb9871641d2295536dac4fca72da4ca6b66787f5765cc0f191021
4949
kuma-fstab-sync.service 9d865e627355d6a5abb8ca39d00e62c41ef3effffe1eb235caeb16691622925b
5050
kuma-greeter 001555c61143bba5fc71ab136eadf5444ac9e0189bf20cc7fca15a6eb0224e25
5151
kuma-greeter-check ba4ff3ab5f84f6e5623a73a5a1c6f1384522652536f797bcad7048b3514fba5a
52-
kuma-greeter-session ab78d697690a44ce4c1e2cff73a40be3a3e012361ce5ec84314b19f1f43b0357
52+
kuma-greeter-session 8d9a8035f3352e4f4a0348523c4984d4b3e97a0795dae42f7a028180b48ba8ce
5353
kuma-greeter-tmpfiles.conf ac57bb5086c057d537a424cd2d36924a739ef48e8b74b00baeb14bc4f8c4477e
5454
kuma-home-subvol b90db7dc4eabc2b9a95bdf90e7c93a432f6b818cb36c8135cde11138b39e2766
5555
kuma-home-subvol.service af9133fe3d2a930c432880a9937c71e8842e6d0fefbd75da065dc745240e4573

‎src/containerfile/goldens/niri.manifest‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ kuma-fstab-sync 8d91559a751bb9871641d2295536dac4fca72da4ca6b66787f5765cc0f191021
3737
kuma-fstab-sync.service 9d865e627355d6a5abb8ca39d00e62c41ef3effffe1eb235caeb16691622925b
3838
kuma-greeter 001555c61143bba5fc71ab136eadf5444ac9e0189bf20cc7fca15a6eb0224e25
3939
kuma-greeter-check ba4ff3ab5f84f6e5623a73a5a1c6f1384522652536f797bcad7048b3514fba5a
40-
kuma-greeter-session ab78d697690a44ce4c1e2cff73a40be3a3e012361ce5ec84314b19f1f43b0357
40+
kuma-greeter-session 8d9a8035f3352e4f4a0348523c4984d4b3e97a0795dae42f7a028180b48ba8ce
4141
kuma-greeter-tmpfiles.conf ac57bb5086c057d537a424cd2d36924a739ef48e8b74b00baeb14bc4f8c4477e
4242
kuma-home-subvol b90db7dc4eabc2b9a95bdf90e7c93a432f6b818cb36c8135cde11138b39e2766
4343
kuma-home-subvol.service af9133fe3d2a930c432880a9937c71e8842e6d0fefbd75da065dc745240e4573

‎src/containerfile/goldens/nostr.manifest‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ kuma-fstab-sync 8d91559a751bb9871641d2295536dac4fca72da4ca6b66787f5765cc0f191021
3737
kuma-fstab-sync.service 9d865e627355d6a5abb8ca39d00e62c41ef3effffe1eb235caeb16691622925b
3838
kuma-greeter 001555c61143bba5fc71ab136eadf5444ac9e0189bf20cc7fca15a6eb0224e25
3939
kuma-greeter-check ba4ff3ab5f84f6e5623a73a5a1c6f1384522652536f797bcad7048b3514fba5a
40-
kuma-greeter-session ab78d697690a44ce4c1e2cff73a40be3a3e012361ce5ec84314b19f1f43b0357
40+
kuma-greeter-session 8d9a8035f3352e4f4a0348523c4984d4b3e97a0795dae42f7a028180b48ba8ce
4141
kuma-greeter-tmpfiles.conf ac57bb5086c057d537a424cd2d36924a739ef48e8b74b00baeb14bc4f8c4477e
4242
kuma-home-subvol b90db7dc4eabc2b9a95bdf90e7c93a432f6b818cb36c8135cde11138b39e2766
4343
kuma-home-subvol.service af9133fe3d2a930c432880a9937c71e8842e6d0fefbd75da065dc745240e4573

0 commit comments

Comments
 (0)