steam-short-session-tracker: incorrect registry backup path resets settings during automatic repair
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 80/100
Hướng nghiên cứu
Lỗi nằm trong tập lệnh /usr/lib/steamos/steam-short-session-tracker. Kiểm tra các dòng xung quanh đường dẫn sao lưu registry. Cách sửa là thay đổi biến registry_backup_vdf từ $steam_config_backup_dir/.steam/registry.vdf thành $steam_config_backup_dir/registry.vdf. Kiểm tra bản sửa bằng cách chạy tập lệnh tái tạo được cung cấp trong một thư mục tạm thời để xác minh rằng việc sao chép thành công sau khi thay đổi.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- Không có dữ liệu ngôn ngữ
- Star
- 2.6k
- Fork
- 83
- Merge trung bình
- 4 phút
- Pull request đã merge (30 ngày)
- 3
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của ValveSoftware/SteamOS
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 68/100
ValveSoftware/SteamOS#1743 · 1 bình luận · 2 reaction ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
ValveSoftware/SteamOS#2828 ·
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 30/100
ValveSoftware/SteamOS#2827 ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
ValveSoftware/SteamOS#2823 ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 38/100
ValveSoftware/SteamOS#2822 ·
Tất cả issue của ValveSoftware/SteamOS
Issue tương tự
-
`--app` focus through the daemon can pick an off-screen window and refuse with `axElementNotFound` Đang mởclawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:other issue-rating: 🦞 diamond lobster no-stale P1
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
-
state:needs triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
zed-industries/zed#64742 · 1 bình luận ·
-
documentation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 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) Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
eandualem/avatar-studio#68 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100