Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

elfuse stalls at startup under any finite host RLIMIT_CPU

未关闭
#474 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 3 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
48/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
技术栈
c, macos

调研方向

Start by reproducing with the supplied zsh command and compare behavior with no host CPU limit. The report places the stall in hv_vcpu_run (Hv::Vcpu::run_once in hv_trap), with the vCPU stuck at the same EL1 PC; inspect that execution path and the host RLIMIT_CPU setup. Done means elfuse runs the guest and prints hello under a finite host CPU limit.

由索引模型根据 Issue 内容生成。

描述

Under any finite host RLIMIT_CPU, elfuse stalls before the guest produces output: test-hello prints nothing, and the vCPU watchdog ends elfuse after 10 s with status 124. The limit is nowhere near used up, so the stall comes from a finite limit being set, not from the limit firing.

Reproducer (zsh):

(ulimit -St 1000; build/elfuse build/test-hello; echo "status=$?")
host limit result
none prints hello, status 0
ulimit -St 1000 no output, vCPU execution timed out after 10s, PC=0xfeffdf6000 CPSR=0x3c5, status 124
ulimit -St 100000 same
ulimit -Ht 100000 same
ulimit -St 1000, with SIGXCPU ignored in the parent shell (trap '' XCPU) same

The same happens on 3347188 (main), e9fdbbb, and c2785c7^1, from before #448 moved guest limits into the guest table, so it is not caused by the guest table or its enforcement. Ignoring SIGXCPU does not change it, so the host signal is not what stops the guest.

A sample of a stalled process shows the main thread inside hv_vcpu_run (Hv::Vcpu::run_once in hv_trap) for the whole 2 s window, with process CPU time equal to wall time, and the vCPU at EL1 at the same PC on every run. The cause is not traced yet.

Since #448 the guest seeds its RLIMIT_CPU from the host, so a CPU limit inherited from the shell, which the RLIMIT_CPU enforcement in the follow-up PR handles, cannot be exercised until this is fixed.

主要语言
C
星标
278
派生
31
平均合并
2 天 22 小时
30 天内合并 PR
18

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

sysprog21/elfuse 的其他 Issue

查看 sysprog21/elfuse 的全部 Issue

相似的 Issue

更多 C Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。