steam-short-session-tracker: incorrect registry backup path resets settings during automatic repair
还没有人认领这个 Issue。
评估
调研方向
该错误位于脚本 /usr/lib/steamos/steam-short-session-tracker 中。检查注册表备份路径周围的代码行。修复方法是将变量 registry_backup_vdf 从 $steam_config_backup_dir/.steam/registry.vdf 更改为 $steam_config_backup_dir/registry.vdf。通过在临时目录中运行提供的复现脚本来测试修复,以验证更改后复制操作是否成功。
由索引模型根据 Issue 内容生成。
描述
steam-short-session-tracker: incorrect registry backup path resets settings during automatic repair
Your system information
- Hardware: Valve Steam Machine (DMI product name: Fremont), AMD Radeon Graphics / NAVI33
- Steam client build: 1788652215 (stable update manifest observed during recovery)
- SteamOS version: 3.8.16, build 20260716.1
- Kernel: 6.16.12-valve24.5-1-neptune-616-gb2f7cfe85e45
- Package owning the affected script: gamescope 3.16.23.4-1
- Opted into Steam client beta?: No; stable manifest observed
- Opted into SteamOS beta?: Stable default branch reported by the installed OS; UI selection not independently checked
- Have you checked for updates in Settings > System?: No, not during this investigation
Please describe your issue in as much detail as possible
The automatic repair in /usr/lib/steamos/steam-short-session-tracker tries to preserve ~/.steam/registry.vdf, but constructs the backup source path with an extra .steam/ directory. After repair, the original registry file remains in the backup but is not copied into the newly created ~/.steam. In this case, Steam and Counter-Strike 2 changed from Traditional Chinese to English.
Expected: Automatic repair preserves the existing registry/settings, as the script's own comment intends.
Actual: The copy fails with cannot stat, is ignored through || true, and Steam starts with newly generated defaults.
The installed script contains:
steam_config_dir="$HOME/.steam"
steam_config_backup_dir="$HOME/dot-steam.bak.$(date +%s)"
registry_vdf="$steam_config_dir/registry.vdf"
registry_backup_vdf="$steam_config_backup_dir/.steam/registry.vdf"
mv "$steam_config_dir" "$steam_config_backup_dir"
mkdir -p "$steam_config_dir"
cp -f "$registry_backup_vdf" "$registry_vdf" || true
Because mv renames ~/.steam to the previously nonexistent backup directory, the actual file is $steam_config_backup_dir/registry.vdf, not $steam_config_backup_dir/.steam/registry.vdf.
Observed logs and impact
Journal excerpts (hostname and backup timestamp omitted):
steam-short-session-tracker: Steam failed to start 3 times within 60 seconds
steam-short-session-tracker: Re-bootstrapping steam from OS copy.
cp: cannot stat '/home/deck/dot-steam.bak.<timestamp>/.steam/registry.vdf': No such file or directory
The real backup file was found one directory higher and still contained the original tchinese language settings. Restoring that file while Steam was stopped, then restarting Steam and CS2, restored Traditional Chinese. The Steam web helper returned to -lang=zh_TW, and the game menu was visually verified.
Context only: the repair loop followed a Gamescope crash triggered by a diagnostic gamescopectl backend_info invocation. The HDMI-connected TV was off, both DRM connectors reported disconnected, and subsequent DRM-session starts failed with cannot find any connected connector!. A headless session restored operation. This issue is specifically about the independently reproducible registry backup path error, not a claim about the crash's low-level cause or Remote Play resolution negotiation.
Steps for reproducing this issue
The path error can be reproduced without running the repair script or touching an actual Steam installation:
(
set -eu
repro_dir=$(mktemp -d)
trap 'rm -rf -- "$repro_dir"' EXIT
mkdir "$repro_dir/.steam"
printf '%s\n' 'test fixture' > "$repro_dir/.steam/registry.vdf"
steam_config_dir="$repro_dir/.steam"
steam_config_backup_dir="$repro_dir/dot-steam.bak.test"
registry_backup_vdf="$steam_config_backup_dir/.steam/registry.vdf"
mv "$steam_config_dir" "$steam_config_backup_dir"
mkdir -p "$steam_config_dir"
test -f "$steam_config_backup_dir/registry.vdf"
test ! -e "$registry_backup_vdf"
cp -f "$registry_backup_vdf" "$steam_config_dir/registry.vdf"
)
The final copy fails, although the backup file exists. The same move/path behavior was independently verified in an isolated temporary directory during this investigation.
Suggested correction
-registry_backup_vdf="$steam_config_backup_dir/.steam/registry.vdf"
+registry_backup_vdf="$steam_config_backup_dir/registry.vdf"
It may also be useful to distinguish a missing original registry from a failed restoration of an existing one, rather than silently continuing in both cases.
Related: https://github.com/ValveSoftware/steam-for-linux/issues/12035 describes short-session re-bootstrap triggers; this report isolates the incorrect registry restoration path and its observed settings loss.
- 主要语言
- 没有语言数据
- 星标
- 2.6k
- 派生
- 83
- 平均合并
- 4 分钟
- 30 天内合并 PR
- 3
贡献指南
这个仓库没有索引到贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
ValveSoftware/SteamOS 的其他 Issue
-
难度 1/5 1 小时以内 新手友好度 68/100
ValveSoftware/SteamOS#1743 · 1 条评论 · 2 个 reaction ·
-
难度 4/5 3-5 天 新手友好度 45/100
ValveSoftware/SteamOS#2828 ·
-
难度 5/5 一周以上 新手友好度 30/100
ValveSoftware/SteamOS#2827 ·
-
难度 4/5 3-5 天 新手友好度 48/100
ValveSoftware/SteamOS#2823 ·
-
难度 4/5 3-5 天 新手友好度 38/100
ValveSoftware/SteamOS#2822 ·
查看 ValveSoftware/SteamOS 的全部 Issue
相似的 Issue
-
`--app` focus through the daemon can pick an off-screen window and refuse with `axElementNotFound` 未关闭clawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:other issue-rating: 🦞 diamond lobster no-stale P1
难度 2/5 1-3 小时 新手友好度 88/100
-
state:needs triage
难度 2/5 1-3 小时 新手友好度 75/100
zed-industries/zed#64742 · 1 条评论 ·
-
documentation
难度 2/5 1-3 小时 新手友好度 78/100
gitbutlerapp/gitbutler#16066 ·
-
make dev prints the runtime default model (gpt-5.6-terra), not the app's text model (gpt-5.6-sol) 未关闭
难度 2/5 1-3 小时 新手友好度 75/100
eandualem/avatar-studio#68 ·
-
难度 2/5 1-3 小时 新手友好度 75/100