aboutsummaryrefslogtreecommitdiff
path: root/tests/installer-steps/test_idempotency_cluster.py
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-07-24 23:16:56 -0500
committerCraig Jennings <c@cjennings.net>2026-07-24 23:16:56 -0500
commita9391c90f07a564693bb1994f4f8fe6470efb3a2 (patch)
tree73ac6d588491314615ef50dbffc8fdd07842019d /tests/installer-steps/test_idempotency_cluster.py
parent082d870d6c4c3a3cce85506505582b17ef19487b (diff)
downloadarchsetup-a9391c90f07a564693bb1994f4f8fe6470efb3a2.tar.gz
archsetup-a9391c90f07a564693bb1994f4f8fe6470efb3a2.zip
fix(installer): harden the lock path against the AMD-iGPU DPMS lockout
An idle lock on this Strix Halo box wedged the whole session: hyprlock died and the compositor stayed locked with no prompt, recoverable only from a console. It's a documented AMD-integrated-Radeon failure (hyprlock#953, Hyprland#5822) -- a display power cycle via DPMS invalidates the GPU resources the lock client holds, so hyprlock loses its surface and exits without unlocking. No coredump, no OOM; the GPU pulls the rug out. Two installer changes, both scoped and tested: update_grub_cmdline adds amdgpu.runpm=0 on AMD machines only. Disabling GPU runtime power management keeps those resources valid across a display cycle -- the root fix. A no-op on Intel/NVIDIA, and it rides the existing merge so no boot-critical token is touched. configure_hyprlock_pam writes a complete PAM stack. The hyprlock package ships only `auth include login`, leaving account and session uninitialised so pam_end() crashes on cleanup -- a separate documented lockout cause. All three phases now resolve through login, inheriting the keyring the graphical login uses. CALL_SITES pins both new wirings. 372 unit tests, exit 0; each addition proven by reverting it.
Diffstat (limited to 'tests/installer-steps/test_idempotency_cluster.py')
0 files changed, 0 insertions, 0 deletions