Repository navigation
[bug][windows] 0.0.95 下 mcpp test --workspace 以 exit 127 中断(0.0.94 同负载全绿) #230
Description
Activity
- added a commit that references this issue
on Jul 17, 2026 根因已定位并修复:见 #231。
一句话:0.0.95 扫描器新增 follow_directory_symlink,顺着项目本地
.mcpp/.xlings/data/<index>(指回索引根的符号链接)走出成员目录、扫遍整个 checkout;在 windows runner(ACP=1252)上撞到 vendored xim-pkgindex 里的中文文件名bug-report---问题反馈.md,path_matches_glob的generic_string()宽→窄转换抛std::system_error,未捕获 →__fastfail(0xC0000409),git-bash 显示为裸 127。0.0.94 不跟随目录符号链接,所以同负载全绿。取证过程(WER 全内存 dump + cdb 栈 + 字符串还原)记录在 mcpplibs/mcpp-index 的debug/mcpp230-windows-repro分支。- added 7 commits that reference this issue
on Jul 18, 2026 Status — resolved in mcpp 0.0.99 (released + indexed).
The exit-127 root cause (scanner glob following the
.mcpp/.xlingssymlink into the vendored index, where a CJK filename tripped MSVC's wide→narrow conversion → uncaught exception →__fastfail(0xC0000409)→ bare exit 127) was fixed in 0.0.96 (df985df: prune.mcppfrom glob walks + never-throw on unnarrowable names) plus a top-levelmain()catch (exit 70, no more bare 127) — both in the released tree since 0.0.98. mcpp's ownbuild + test (windows x64, self-host)CI is green on 0.0.99.0.0.99 additionally closes a secondary Windows surface that only becomes reachable once the scanner crash stops masking it: a workspace
build.mcppmember compiled tobuild.mcpp.bin, which Windows cmd.exe (thecapture_execshell there) cannot launch —.binis not in PATHEXT. It is now namedbuild.mcpp.exeon Windows (is_windowsconstexpr; non-Windows bytes unchanged).Re-verification of the full workspace matrix on 0.0.99 (incl. the
workspace (windows)leg) is in flight: mcpplibs/mcpp-index#81 bumps the pin 0.0.98 → 0.0.99. Will close once that CI is green.Confirmed:
workspace (windows)is green on mcpp 0.0.99 (mcpplibs/mcpp-index#81 CI — the 17-member workspace builds on windows-latest, including the build-mcpp member that exercises thebuild.mcpp.exepath). The exit-127 scanner crash (fixed 0.0.96) and the build.mcpp.exesecondary surface (0.0.99) are both verified on the real Windows workspace. Closing.- added a commit that references this issue
on Jul 19, 2026 - added a commit that references this issue
on Aug 27, 2026
现象
mcpp-index 的
workspace (windows)CI job(windows-latest,vendored xlings,mcpp test --workspace,17 个成员)在 0.0.95 下于成员依赖下载阶段中断,step 以 exit 127(command not found)失败;同一成员集在 0.0.94(main 分支每日 CI)持续全绿。macOS/linux 同 run 无此现象(linux 的失败另有原因,见 mcpp-index#74)。证据
https://github.com/mcpplibs/mcpp-index/actions/runs/29614755884/job/87997292043
##[error]Process completed with exit code 127初步怀疑
0.0.95 引入的三个特性中,windows 路径上新增子进程/工具调用的是 #222(依赖包 build.mcpp 执行)与 #220(nasm 解析);127 指示某个被 spawn 的命令在 windows runner 上不存在。workspace 成员含
tests/examples/build-mcpp(带 build.mcpp),0.0.95 起依赖/成员的 build.mcpp 在 windows 的执行细节(shell/驱动路径)值得优先排查。影响与临时对策
阻塞 mcpp-index 的 MCPP_VERSION 升级(compat.ffmpeg 描述符需要 0.0.95 的 per-glob flags 语法)。临时对策:windows 矩阵腿单独钉回 0.0.94(该平台不消费新语法,cfg(linux) 门控成员为 no-op),linux/macos 用 0.0.95;待本 issue 修复后统一。