vp run: automatic input tracking crashes Git for Windows sh.exe child (Win32 error 487)
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 55/100
Hướng nghiên cứu
Start by reading the vp run task caching and automatic input tracking paths; the report does not name implementation files or tests. Reproduce with the linked gist on Windows using Git for Windows sh.exe, comparing the automatic and explicit input configurations. Done when the automatic-tracking task runs the shell command successfully while preserving the reported cache behavior.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Describe the bug
On Windows, a cache-enabled vp run task using default automatic input tracking makes a Git for Windows sh.exe child fail before executing its command:
0 [main] sh (...) C:\Program Files\Git\usr\bin\sh.exe: *** fatal error - MapViewOfFileEx 'shared.5'(0x120, size 59320, m 0, created 0), Win32 error 487. Terminating.
The same Node script succeeds with cache: false or explicit cache.input files. Both tracked variants use output: [], isolating the input-tracking configuration. The mapping-failure mechanism itself has not been diagnosed.
This breaks shell-using automation and test commands when adopting default task caching. Explicit input lists permit caching as a workaround, but require maintaining the dependency list manually.
Reproduction
https://gist.github.com/d3lay/a3102d1ed956f133d29ed4e9f186360b
Five synthetic files, with no application code, Vitest tests, credentials, hooks or Git repository required. Verified with a fresh public-registry installation outside every project checkout. The repro pins vite-plus to 1.3.0; the same failure was also observed with 1.1.0.
The entire program under test is:
import { spawnSync } from 'node:child_process'
const result = spawnSync('sh', ['-c', 'printf ok'], { encoding: 'utf8' })
process.stdout.write(result.stdout ?? '')
process.stderr.write(result.stderr ?? '')
if (result.error) console.error(result.error.message)
process.exitCode = result.status ?? 1
Steps to reproduce
Save the gist files together in an empty directory. With Git for Windows sh.exe on PATH:
pnpm install --ignore-scripts
pnpm exec vp cache clean
pnpm exec vp run uncached
pnpm exec vp run automatic
pnpm exec vp run explicit
pnpm exec vp run explicit
Expected: all task variants print ok and exit 0.
Observed after clearing the fixture cache:
| Task | Configuration | Result |
|---|---|---|
uncached |
cache: false |
ok, exit 0 |
automatic |
cache: { output: [] } |
sh.exe mapping failure, task exit 1 |
explicit |
explicit input files, output: [] |
ok, exit 0 |
explicit, unchanged second run |
same | cache hit, replayed ok, exit 0 |
There is no Vite/Vitest/bundler invocation in the task; it is only Node launching sh. No system mitigation or ACL settings were changed for these controls.
System Info
- Windows 11, OS build 10.0.26300, x64
- Node.js 26.10.0
- pnpm 12.8.2
- Git for Windows 2.55.0.windows.3
sh --version: GNU bash 5.3.15(1)-release (x86_64-pc-cygwin)- Failing child executable:
C:\Program Files\Git\usr\bin\sh.exe
Package-local pnpm exec vp --version in the reproduction:
vp v1.3.0
Local vite-plus:
vite-plus v1.3.0
Tools:
vite v8.3.4
rolldown v1.2.14
vitest v5.0.5
oxfmt v0.73.0
oxlint v1.88.0
oxlint-tsgolint v7.0.2004
tsdown v0.23.1
The package-local CLI reports that vp env current is available only through the global CLI. The global CLI manages the Node/pnpm versions above; its environment report is below with user-specific installation paths redacted:
Node.js:
Version 26.10.0
Source .node-version
Bin Path <user-home>\AppData\Local\vite-plus\data\js_runtime\node\26.10.0\node.exe
Installed true
Mode managed
Package Manager:
Name pnpm
Version 12.8.2
Source packageManager
Bin Paths
pnpm <user-home>\AppData\Local\vite-plus\data\package_manager\pnpm\12.8.2\pnpm\bin\pnpm.exe
pnpx <user-home>\AppData\Local\vite-plus\data\package_manager\pnpm\12.8.2\pnpm\bin\pnpx.exe
Installed true
Mode managed
Used Package Manager
pnpm
Validations
- Read the contributing guidelines.
- Searched existing reports for MapViewOfFileEx, Win32 error 487, MSYS, and Git Bash/task caching; no matching report found.
- Isolated to the
vp runautomatic-tracking path rather than an application or Vite/Vitest/Rolldown/Oxc invocation. - Provided a minimal runnable reproduction with uncached, explicit-input and warm-cache controls.
- Ngôn ngữ chính
- Rust
- Star
- 6.5k
- Fork
- 297
- Merge trung bình
- 20 giờ 18 phút
- Pull request đã merge (30 ngày)
- 236
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
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 voidzero-dev/vite-plus
-
triage: not actionable
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
voidzero-dev/vite-plus#3296 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
pending triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 63/100
voidzero-dev/vite-plus#3235 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Docker guide: the runtime stage needs libatomic1 for Node.js 25 and laterCó thể đã có người làm @kshanxs đã nhận 9 ngày trước. Đang mởdocumentation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
voidzero-dev/vite-plus#3219 · 2 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
pending triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
voidzero-dev/vite-plus#2882 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Upgrade Upstream Dependencies timed outCó thể đã có người làm @fengmk2 đã nhận hôm nay. Đang mởupgrade-deps-timeout
voidzero-dev/vite-plus#3319 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của voidzero-dev/vite-plus
Issue tương tự
-
question
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
autoindex tests: denied loopback bind shows only PermissionDenied (255 failures), not the causeĐang mởfield-report
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Define the ypass-core error typeĐang mởarea:core
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
julian-hemmer/ypass#4 ·
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 70/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
davidkodar/klipp#3426 ·
Maintainer thường phản hồi trong vòng 1 ngày