SteamOS 3.9.2 -> 3.9.3 update hangs around 95%: holo-sync-var blocks looking up /etc after freezing /var
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 42/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- bash, linux
- Área
- devops
Línea de trabajo
Start by reading /usr/lib/holo/holo-sync-var, especially build_etc_rsync_config and the /var freeze and unfreeze around sync_var_mountpoints; the report says the lookup of /etc/atomic-update.conf.d/*.conf blocks in OverlayFS. Compare the reported kernel stack and RAUC timeline with the sync flow, then investigate a safe way to avoid or recover from the blocked lookup. Done means the update completes without leaving /var frozen, including with a custom keep-list.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Your system information
- Device: Steam Machine (Fremont)
- Steam client version:
1792192922 - SteamOS version:
3.9.2, build20260925.101, updating to3.9.3, build20261015.100 - Kernel during the failure:
7.2.7-valve1-1-neptune-72-gc8730d37f9c6 - Opted into Steam client beta?: Yes (
steamdeck_publicbeta) - Opted into SteamOS beta?: Yes (
Branch=beta) - Have you checked for updates in Settings > System?: Yes
- Updater package:
steamos-customizations-jupiter 20260827.2-1
Please describe your issue in as much detail as possible:
Tried updating the Steam Machine from 3.9.2 to 3.9.3 and it got stuck around 95%. Rebooting then got stuck on the Steam logo too, so I ended up having to force it off. Tried the update again after booting and hit the same hang, this time with enough access left to see what was going on.
The image write itself finished. It was the post-install configuration sync that got stuck: holo-sync-var was in D state, waiting for write access to a filesystem it had just frozen.
Expected: the update finishes and asks for a reboot. Actual: the post-install step waits indefinitely, /var stays frozen, and unrelated processes start blocking too. Normal SSH login stopped working during the second attempt; a separate SSH connection with PAM disabled still worked, which let me inspect the stuck process.
I have a custom keep-list under /etc/atomic-update.conf.d/ for SSH configuration, Wake-on-LAN and Flatpak update units. I haven't reproduced this on a clean install.
Where it gets stuck
On the second attempt, RAUC reported All slots updated at 15:41:49 UTC, then entered /usr/lib/rauc/post-install.sh and stopped at:
# Syncing the var partitions from 'self' to 'other'
# Booted into slot A
# Update slot candidate is B
The blocked child was PID 5773, /bin/bash /usr/lib/holo/holo-sync-var all. Its syscall was openat, and reading the pathname argument from its memory gave:
/etc/atomic-update.conf.d/
Relevant kernel stack, with unrelated frames omitted:
task:holo-sync-var state:D pid:5773 ppid:5763
percpu_rwsem_wait+0x14e/0x1c0
__percpu_down_read+0x81/0x150
mnt_want_write+0x98/0xc0
ovl_lookup_layers+0x95f/0xb00 [overlay]
ovl_lookup+0x1a9/0x2c0 [overlay]
path_openat+0xaae/0x14c0
do_file_open+0x117/0x1d0
do_sys_openat2+0x7d/0xe0
__x64_sys_openat+0x61/0xa0
/etc is an overlay with its upper/work directories under /var/lib/overlays/etc/; /var is ext4. In the installed holo-sync-var, line 509 freezes /var, then sync_var_mountpoints calls rsync_etc_overlay, which calls build_etc_rsync_config. That function expands /etc/atomic-update.conf.d/*.conf at line 237. The unfreeze is at line 523, after the sync returns.
So the updater freezes the backing filesystem, then gets stuck looking up its configuration through the overlay, before it can reach its own unfreeze.
What released it
Ran sudo fsfreeze --unfreeze /var once through the working connection. The blocked processes immediately resumed. That attempt then failed at its own unfreeze with Invalid argument, since /var was already unfrozen.
Retried without rebooting. This time the sync finished and RAUC reported success:
15:41:49 UTC post-install sync starts, then hangs
15:47:25 UTC manual unfreeze releases it; keep-list processing resumes
15:47:26 UTC attempt fails after its own unfreeze returns Invalid argument
15:48:03 UTC next attempt reaches the same sync step
15:48:04 UTC Installation c8245e0b succeeded
After rebooting, /etc/os-release reports 3.9.3 / 20261015.100, and Steam reports up to date.
My current guess is that the directory lookup needed to create missing OverlayFS trusted.overlay.origin metadata. OverlayFS has a lookup-time repair path that takes write access, which fits the stack and the fact that the next attempt passed. I didn't capture the directory's xattrs before releasing the freeze, so I can't claim that part is proven, or say what originally caused the metadata to be missing.
The updater package version is the same before and after the update; the installed holo-sync-var and post-install.sh match their package SHA-256 records. I haven't patched either script.
The expandable sections below contain the blocked task's kernel stack and a selected RAUC timeline, including the successful retry. Timestamps are normalized to UTC and the custom keep-list filename is anonymized. The live pathname capture above was taken separately from /proc while the process was stuck.
Kernel journal: blocked updater
Kernel journal: blocked holo-sync-var task during the second attempt.
Timestamps normalized to UTC. Register values omitted.
2026-10-19T15:45:49+00:00 kernel[]: task:holo-sync-var state:D stack:0 pid:5773 tgid:5773 ppid:5763 task_flags:0x400140 flags:0x00080000
2026-10-19T15:45:49+00:00 kernel[]: Call Trace:
2026-10-19T15:45:49+00:00 kernel[]: <TASK>
2026-10-19T15:45:49+00:00 kernel[]: __schedule+0x406/0x16e0
2026-10-19T15:45:49+00:00 kernel[]: ? ilookup5+0x4c/0xb0
2026-10-19T15:45:49+00:00 kernel[]: ? srso_alias_return_thunk+0x5/0xfbef5
2026-10-19T15:45:49+00:00 kernel[]: ? ovl_lookup_trap_inode+0x20/0x80 [overlay 6f1239f5193666767a30a186d164daeb94bed60e]
2026-10-19T15:45:49+00:00 kernel[]: schedule+0x27/0xa0
2026-10-19T15:45:49+00:00 kernel[]: percpu_rwsem_wait+0x14e/0x1c0
2026-10-19T15:45:49+00:00 kernel[]: ? __pfx_percpu_rwsem_wake_function+0x10/0x10
2026-10-19T15:45:49+00:00 kernel[]: __percpu_down_read+0x81/0x150
2026-10-19T15:45:49+00:00 kernel[]: mnt_want_write+0x98/0xc0
2026-10-19T15:45:49+00:00 kernel[]: ovl_lookup_layers+0x95f/0xb00 [overlay 6f1239f5193666767a30a186d164daeb94bed60e]
2026-10-19T15:45:49+00:00 kernel[]: ? srso_alias_return_thunk+0x5/0xfbef5
2026-10-19T15:45:49+00:00 kernel[]: ? kmem_cache_alloc_lru_noprof+0x424/0x460
2026-10-19T15:45:49+00:00 kernel[]: ovl_lookup+0x1a9/0x2c0 [overlay 6f1239f5193666767a30a186d164daeb94bed60e]
2026-10-19T15:45:49+00:00 kernel[]: ? srso_alias_return_thunk+0x5/0xfbef5
2026-10-19T15:45:49+00:00 kernel[]: ? __d_alloc+0x75/0x220
2026-10-19T15:45:49+00:00 kernel[]: ? security_inode_permission+0x4f/0x130
2026-10-19T15:45:49+00:00 kernel[]: path_openat+0xaae/0x14c0
2026-10-19T15:45:49+00:00 kernel[]: do_file_open+0x117/0x1d0
2026-10-19T15:45:49+00:00 kernel[]: ? do_getname+0x62/0x1d0
2026-10-19T15:45:49+00:00 kernel[]: do_sys_openat2+0x7d/0xe0
2026-10-19T15:45:49+00:00 kernel[]: __x64_sys_openat+0x61/0xa0
2026-10-19T15:45:49+00:00 kernel[]: do_syscall_64+0xa6/0x670
2026-10-19T15:45:49+00:00 kernel[]: ? srso_alias_return_thunk+0x5/0xfbef5
2026-10-19T15:45:49+00:00 kernel[]: ? srso_alias_return_thunk+0x5/0xfbef5
2026-10-19T15:45:49+00:00 kernel[]: ? __alloc_frozen_pages_noprof+0x1a0/0x370
2026-10-19T15:45:49+00:00 kernel[]: ? srso_alias_return_thunk+0x5/0xfbef5
2026-10-19T15:45:49+00:00 kernel[]: ? flush_tlb_func+0x288/0x2f0
2026-10-19T15:45:49+00:00 kernel[]: ? srso_alias_return_thunk+0x5/0xfbef5
2026-10-19T15:45:49+00:00 kernel[]: ? __mod_memcg_lruvec_state+0xdf/0x1a0
2026-10-19T15:45:49+00:00 kernel[]: ? srso_alias_return_thunk+0x5/0xfbef5
2026-10-19T15:45:49+00:00 kernel[]: ? lruvec_stat_mod_folio+0x93/0xd0
2026-10-19T15:45:49+00:00 kernel[]: ? srso_alias_return_thunk+0x5/0xfbef5
2026-10-19T15:45:49+00:00 kernel[]: ? __folio_mod_stat+0x2d/0x90
2026-10-19T15:45:49+00:00 kernel[]: ? srso_alias_return_thunk+0x5/0xfbef5
2026-10-19T15:45:49+00:00 kernel[]: ? folio_add_lru+0x4d/0x80
2026-10-19T15:45:49+00:00 kernel[]: ? srso_alias_return_thunk+0x5/0xfbef5
2026-10-19T15:45:49+00:00 kernel[]: ? do_wp_page+0x940/0x11f0
2026-10-19T15:45:49+00:00 kernel[]: ? srso_alias_return_thunk+0x5/0xfbef5
2026-10-19T15:45:49+00:00 kernel[]: ? __handle_mm_fault+0xaca/0x1110
2026-10-19T15:45:49+00:00 kernel[]: ? srso_alias_return_thunk+0x5/0xfbef5
2026-10-19T15:45:49+00:00 kernel[]: ? count_memcg_events+0xc5/0x180
2026-10-19T15:45:49+00:00 kernel[]: ? srso_alias_return_thunk+0x5/0xfbef5
2026-10-19T15:45:49+00:00 kernel[]: ? handle_mm_fault+0x1e5/0x2c0
2026-10-19T15:45:49+00:00 kernel[]: ? srso_alias_return_thunk+0x5/0xfbef5
2026-10-19T15:45:49+00:00 kernel[]: ? do_user_addr_fault+0x232/0x720
2026-10-19T15:45:49+00:00 kernel[]: ? srso_alias_return_thunk+0x5/0xfbef5
2026-10-19T15:45:49+00:00 kernel[]: ? do_syscall_64+0x5b/0x670
2026-10-19T15:45:49+00:00 kernel[]: ? srso_alias_return_thunk+0x5/0xfbef5
2026-10-19T15:45:49+00:00 kernel[]: ? exc_page_fault+0x75/0x160
2026-10-19T15:45:49+00:00 kernel[]: entry_SYSCALL_64_after_hwframe+0x76/0x7e
2026-10-19T15:45:49+00:00 kernel[]: </TASK>
RAUC journal: stalled attempt, recovery and successful retry
Selected RAUC journal entries, 2026-10-19. Timestamps normalized to UTC.
The custom keep-list filename is anonymized; messages otherwise retain their wording.
2026-10-19T15:41:44+00:00 systemd[1]: Starting RAUC Update Service...
2026-10-19T15:41:49+00:00 rauc[5529]: installing https://steamdeck-images.steamos.cloud/steamdeck/20261015.100/steamdeck-20261015.100-3.9.3.raucb: All slots updated
2026-10-19T15:41:49+00:00 rauc[5529]: Starting post install handler: /usr/lib/rauc/post-install.sh
2026-10-19T15:41:49+00:00 rauc-override.sh[5529]: # Syncing the var partitions from 'self' to 'other'
2026-10-19T15:47:25+00:00 rauc-override.sh[5529]: # Keeping user defined files from '/etc/atomic-update.conf.d/example-additional-keep-list.conf'
2026-10-19T15:47:25+00:00 rauc-override.sh[5529]: # Keeping user defined files from '/etc/atomic-update.conf.d/custom-keep.conf'
2026-10-19T15:47:25+00:00 rauc-override.sh[5529]: # fsfreeze: /var: unfreeze failed: Invalid argument
2026-10-19T15:47:25+00:00 rauc-override.sh[5529]: # Error: Failed to sync var partitions
2026-10-19T15:47:26+00:00 rauc[5529]: Installation 2d58351e failed: Post-install handler error: Child process exited with code 1
2026-10-19T15:47:58+00:00 systemd[1]: Starting RAUC Update Service...
2026-10-19T15:48:03+00:00 rauc[6554]: installing https://steamdeck-images.steamos.cloud/steamdeck/20261015.100/steamdeck-20261015.100-3.9.3.raucb: All slots updated
2026-10-19T15:48:03+00:00 rauc[6554]: Starting post install handler: /usr/lib/rauc/post-install.sh
2026-10-19T15:48:03+00:00 rauc-override.sh[6554]: # Syncing the var partitions from 'self' to 'other'
2026-10-19T15:48:03+00:00 rauc-override.sh[6554]: # Keeping user defined files from '/etc/atomic-update.conf.d/example-additional-keep-list.conf'
2026-10-19T15:48:03+00:00 rauc-override.sh[6554]: # Keeping user defined files from '/etc/atomic-update.conf.d/custom-keep.conf'
2026-10-19T15:48:04+00:00 rauc[6554]: Installation c8245e0b succeeded
Steps for reproducing this issue:
This is the sequence that hit it twice here, not a confirmed minimal reproduction:
- Start from SteamOS 3.9.2 /
20260925.101with a custom keep-list as described above. - Apply the 3.9.3 /
20261015.100update through Settings > System. - The image write finishes, but progress stops around 95% during the
/varconfiguration sync. Check forholo-sync-varblocked inovl_lookup_layers/mnt_want_write.
- Lenguaje dominante
- Sin datos de lenguaje
- Estrellas
- 2.6k
- Forks
- 86
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de ValveSoftware/SteamOS
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
ValveSoftware/SteamOS#2927 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
ValveSoftware/SteamOS#2875 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
ValveSoftware/SteamOS#2856 ·
-
steam-short-session-tracker: incorrect registry backup path resets settings during automatic repairAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
ValveSoftware/SteamOS#2829 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 68/100
ValveSoftware/SteamOS#1743 · 1 comentario · 2 reacciones ·
Todos los issues de ValveSoftware/SteamOS
Issues similares
-
Security: Vulnerable PHP version (CVE-2026-109618 / CVE-2026-109619) in current Docker imagesAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
MISP/misp-docker#478 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
IBM/cloud-pak-deployer#1205 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
nuts-foundation/nuts-admin#344 ·
Los mantenedores suelen responder en 5 días
-
kind/engineering pulumi/pulumi-terraform Task Workflow Failure
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
pulumi/pulumi-terraform#1261 ·
Los mantenedores suelen responder en 1 día
-
bug P5 XS
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
open-astro/AlpacaBridge#1550 ·
Los mantenedores suelen responder en 1 día