fspy aborts every cached task under QEMU user-mode emulation (arm64 on x86-64)
維護者通常 1 天內回覆
還沒有人認領這個 Issue。
評估
研究方向
Start at crates/fspy_preload_unix/src/client.rs:33, where the issue reports the panic, and inspect how fspy reads /proc/self/stat fields 48–51. Reproduce with the provided arm64 Docker command using vp run --cache probe, then compare with --no-cache. Done means cached tasks no longer abort under QEMU user-mode emulation, while native cached runs continue to work.
由索引模型根據 Issue 內容生成。
描述
Building an arm64 image on an x86-64 machine runs the arm64 Vite+ image under QEMU user-mode emulation, as docker buildx build --platform linux/arm64 does. There, any vp run with the cache on aborts before the task's command starts. fspy's preload reads the bounds of the arguments and environment from fields 48–51 of /proc/self/stat, but QEMU's emulation writes only the first 44 fields of that file (open_self_stat in linux-user/syscall.c). The read fails with EINVAL and the preload panics. A patch exposing all 52 fields was posted to qemu-devel in September 2025, but it isn't in QEMU's master.
With the official image, in a directory whose package.json has only "scripts": { "probe": "node -e \"console.log(42)\"" }:
docker run --rm --platform linux/arm64 -v "$PWD:/work" -w /work \
ghcr.io/voidzero-dev/vite-plus:1.3.0 vp run --cache probe
thread '<unnamed>' (37) panicked at .../vite-task-b9d2f8c2bec84a8f/9ba4cc9/crates/fspy_preload_unix/src/client.rs:33:57:
called `Result::unwrap()` on an `Err` value: Error(22)
qemu: uncaught target signal 6 (Aborted) - core dumped
The same command with --no-cache prints 42, and natively on amd64 the cached run works. QEMU 11.1.1, Docker 29.7.2.
We build our release images with --no-cache for now. Could fspy handle a /proc/self/stat without those fields, or run the task untraced, as without the cache?
- 主要語言
- Rust
- 星號
- 480
- 分支
- 50
- 平均合併
- 1 天 3 小時
- 30 天內合併 PR
- 62
環境準備
在瀏覽器裡用你自己的 GitHub 帳號啟動這個專案的開發容器。
- 沒有 Dockerfile 或 Docker Compose 檔案
- 沒有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
voidzero-dev/vite-task 的其他 Issue
-
難度 4/5 3-5 天 新手友好度 45/100
voidzero-dev/vite-task#888 ·
維護者通常 1 天內回覆
-
難度 3/5 1-2 天 新手友好度 58/100
voidzero-dev/vite-task#886 ·
維護者通常 1 天內回覆
-
難度 4/5 3-5 天 新手友好度 45/100
voidzero-dev/vite-task#884 ·
維護者通常 1 天內回覆
-
難度 3/5 1-2 天 新手友好度 72/100
voidzero-dev/vite-task#881 ·
維護者通常 1 天內回覆
-
vp run hangs after a failure when a cancelled task's detached descendant holds its IPC connection未關閉
難度 4/5 3-5 天 新手友好度 48/100
voidzero-dev/vite-task#878 ·
維護者通常 1 天內回覆
查看 voidzero-dev/vite-task 的全部 Issue
相似的 Issue
-
難度 1/5 1 小時以內 新手友好度 75/100
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 82/100
manuscript-lang/manuscript#1364 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 65/100
equinor/septic-config-generator#504 ·
維護者通常 1 天內回覆
-
難度 1/5 1 小時以內 新手友好度 72/100
GiganticMinecraft/seichi-portal-backend#1633 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 76/100
fable-compiler/Fable#5157 ·
維護者通常 1 天內回覆