steam-runtime-launcher-service: forwarded fd >= 1024 silently lost (steam-runtime-supervisor: cannot open /proc/self/fd/N)
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 45/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Ambito
- operating-systems
Direzione di ricerca
Start in bin/launcher-service.c at child_setup_func (around lines 414-433), where dup2 and close run on fd_map entries without checking results, then follow fd_map[i].to from lines 525-527. The issue also cites _srt_set_compatible_resource_limits in steam-runtime-tools/utils.c, which lowers the soft RLIMIT_NOFILE to 1024. Done means a forwarded fd of 1024 or higher either launches correctly or fails with a clear error, with no silent loss; check it by reproducing the fd numbers the issue describes.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Your system information
- Steam Runtime Version: steamrt3c client runtime 3c.0.20260824.257593 (pressure-vessel 0.20260824.0), Steam client 1792618285 (steamdeck_stable channel, "Use experimental SteamRT3 Steam Client" enabled)
- Distribution (e.g. Ubuntu 18.04): Bazzite 44 (Stable F44.20261026, bazzite-deck image), Fedora Atomic based; reproduced on two machines (desktop and Lenovo Legion Go 2)
- Link to your full system information (Help -> Steam Runtime Diagnostics) in a Gist: can provide on request
- Have you checked for system updates?: Yes
- What compatibility tool are you using?: None (native Linux executable added as a non-Steam shortcut)
- What versions are listed in
steamapps/common/SteamLinuxRuntime/VERSIONS.txt? depot 1.0.20261021.266054, scripts 0.20261007.0 - What versions are listed in
steamapps/common/SteamLinuxRuntime_soldier/VERSIONS.txt? depot 2.0.20261021.266042, pressure-vessel 0.20261007.0 - What versions are listed in
steamapps/common/SteamLinuxRuntime_sniper/VERSIONS.txt? depot 3.0.20261021.266025, pressure-vessel 0.20261007.0 - What versions are listed in
steamapps/common/SteamLinuxRuntime_4/VERSIONS.txt? depot 4.0.20261021.265997, pressure-vessel 0.20261007.0
Please describe your issue in as much detail as possible:
With the steamrt3c 64-bit client, non-Steam shortcuts (and presumably games) fail to launch
once the fd number Steam passes as --forward-fd=N / --edit-env-fd=N is 1024 or higher.
steam-runtime-supervisor reports Failed to open file "/proc/self/fd/N": No such file or directory and exits immediately. Every launch with N < 1024 works; after a Steam restart
launches work again until Steam's fd numbers pass 1023.
Expected: the shortcut launches every time. Actual: once Steam's forwarded fd number is 1024 or higher, every launch fails before the game starts, until Steam is restarted.
Root cause (steam-runtime-tools v0.20260824.0, unchanged on main a41efe20)
bin/launcher-service.c:1654calls_srt_set_compatible_resource_limits (0), which sets
soft RLIMIT_NOFILE to 1024 (steam-runtime-tools/utils.c:1268-1269, MR !353).bin/launch-client.c:1364sends the requested target fd number N unchanged.bin/launcher-service.c:525-527stores it asfd_map[i].to/final, and
child_setup_func(:414-433) doesdup2 (fd_map[i].from, fd_map[i].to); close (fd_map[i].from);without checking the result. In the child the soft limit is 1024, so
dup2 to N >= 1024 fails with EBADF, the source fd is closed, and the program is executed
without fd N.steam-runtime-tools/env-overlay.c:869-871then opens/proc/self/fd/N-> ENOENT.
This became reachable with--edit-env-fd(13be3db7, 2026-08-07), since the client now
forwards an fd on every launch.
Suggested fix
In child_setup_func, temporarily raise the soft RLIMIT_NOFILE to cover the highest target
fd (capped at the hard limit), perform the dup2 calls with error checking (fail the launch
loudly instead of continuing), then restore the soft limit to 1024 before exec; existing
fds above the limit stay valid. Optionally have the client pass a low fd number.
Workaround
Restart Steam; or raise the running service's soft limit with
prlimit --pid <srt-launcher-service pid> --nofile=65536: (we saw N up to 3545, so 4096 is not enough in long sessions). Games then inherit soft 65536 instead of 1024.
Steps for reproducing this issue:
- Keep Steam running long enough (or open many fds) that console_log.txt shows
steam-runtime-launch-client ... --forward-fd=Nwith N >= 1024. - Launch any non-Steam shortcut.
- Journal:
steam-runtime-supervisor[PID]: E: Failed to open file "/proc/self/fd/N": No such file or directory. Observed N: 1026..3545 (40 failures); all N <= 1017 succeed.
- Lingua principale
- Shell
- Stelle
- 1.5k
- Fork
- 98
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di ValveSoftware/steam-runtime
-
Need Retest Pressure Vessel
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
ValveSoftware/steam-runtime#854 · 4 commenti ·
-
Need Retest
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
ValveSoftware/steam-runtime#853 · 6 commenti ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
ValveSoftware/steam-runtime#851 · 3 commenti ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
ValveSoftware/steam-runtime#847 · 3 commenti ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 58/100
ValveSoftware/steam-runtime#845 · 4 commenti ·
Tutte le issue di ValveSoftware/steam-runtime
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
heroku/heroku-buildpack-php#1024 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
openSUSE/rpm-config-SUSE#98 ·
-
Update llmfit to 1.1.20Apertapackage-update
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno