Nightly Windows test shards fail on temp-path spelling (RUNNER~1 vs canonical \\?\ paths)
维护者通常 1 天内回复
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 55/100
调研方向
Start by reading the failing tests named in the nightly logs: governing_root.rs:3320, get_failure_paths.rs:1660, and uv.rs:2389, then inspect the shared temp directory constructors used by those suites. Reproduce on Windows and compare the test expectations with the paths returned by the code. Done means the Windows nightly shards pass reliably with path comparisons that handle canonical prefixes, short names, and separators.
由索引模型根据 Issue 内容生成。
描述
[agent] The full-scope nightly's Windows test shards failed on 2 of the last 3 nights. A different test fails each night, and every failure we could read compares one temp path in two different spellings.
2026-10-23, run 39907645034 (aa69125)
test (windows-latest, 1),-p socket-patch-core --lib:hosted::governing_root::tests::vlt_project_root_governs_unlisted_directories(governing_root.rs:3320). The message names the same temp dir asC:\Users\RUNNER~1\AppData\Local\Temp\.tmpnPw8bm\tools/x(8.3 short name, mixed separators) and as\\?\C:\Users\unneradmin\AppData\Local\Temp\.tmpnPw8bm(canonical, verbatim prefix).- Same job,
-p socket-patch-cli --test user_patches: also failed. The test name isn't recoverable from the session's log access (the log is too long to tail). test (windows-latest, 2),-p socket-patch-cli --test get:get_failure_paths::engine_nested_apply_preserves_conflicts_introduced_during_fetch(get_failure_paths.rs:1660),assert!(skip["reason"]...contains(patch.to_str())). This is a substring check of a raw tempdir path against a message that probably carries the canonical one.
2026-10-22, run 39730006970 (3b6a85c)
test (windows-latest, 1),-p socket-patch-core --lib:patch::redirect::upstream::uv::tests::global_uv_settings_reads_the_user_then_first_system_file(uv.rs:2389). left["…\.tmp1nilbo\xdg\uv\uv.toml"], right["…\.tmp1nilbo\xdg/uv/uv.toml", "…\.tmp1nilbo\dirs2/uv/uv.toml"].
2026-10-21 (39551481612) was green.
Likely shared cause (needs confirming): tests build expected paths from tempfile paths (RUNNER~1 8.3 form, / joins in format strings) and compare them by string or substring with paths the code canonicalized (\\?\C:\Users\<long name>). Whether a runner's %TEMP% comes back in 8.3 form seems to vary between images and runs, so it fails intermittently. A fix in the test harness would canonicalize test tempdirs once, e.g. with a dunce::canonicalize-style helper in the tempdir constructors the suites share, and build expected paths with Path::join, not format!("{}/…").
This doesn't affect PR or merge-queue CI (lean scope has no Windows), only the nightly.
Generated by Claude Code
- 主要语言
- Rust
- 星标
- 8
- 派生
- 1
- 平均合并
- 19 小时 9 分钟
- 30 天内合并 PR
- 645
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
SocketDev/socket-patch 的其他 Issue
-
agent:triaged bug bughunt pm:npm priority:p3 ux
难度 2/5 1-3 小时 新手友好度 75/100
SocketDev/socket-patch#1072 · 2 条评论 ·
维护者通常 1 天内回复
-
agent:needs-human agent:triaged ci-perf priority:p3
难度 3/5 1-2 天 新手友好度 45/100
SocketDev/socket-patch#1720 · 3 条评论 ·
维护者通常 1 天内回复
-
agent:needs-human agent:triaged ci-perf priority:p3
难度 2/5 1-3 小时 新手友好度 48/100
SocketDev/socket-patch#1670 · 2 条评论 ·
维护者通常 1 天内回复
-
agent:triaged ci-janitor priority:p3
难度 3/5 1-2 天 新手友好度 55/100
SocketDev/socket-patch#1665 · 3 条评论 ·
维护者通常 1 天内回复
-
agent:needs-human agent:triaged ci-janitor priority:p3
难度 4/5 1-2 天 新手友好度 18/100
SocketDev/socket-patch#1660 · 4 条评论 ·
维护者通常 1 天内回复
查看 SocketDev/socket-patch 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 82/100
manuscript-lang/manuscript#1364 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 76/100
fable-compiler/Fable#5157 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 73/100
维护者通常 1 天内回复
-
C-bug needs-triage O-UEFI T-libs
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
移动端宽屏适配未关闭
难度 2/5 1-3 小时 新手友好度 64/100
维护者通常 1 天内回复