elfuse stalls at startup under any finite host RLIMIT_CPU
Maintainer antworten meist innerhalb von 3 Tagen
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 48/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- c, macos
- Bereich
- backend, operating-systems
Rechercherichtung
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.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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.
- Vorherrschende Sprache
- C
- Sterne
- 278
- Forks
- 31
- Ø Merge
- 2 T. 22 Std.
- Gemergte PRs (30 T.)
- 17
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus sysprog21/elfuse
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
Maintainer antworten meist innerhalb von 3 Tagen
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 3 Tagen
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
Maintainer antworten meist innerhalb von 3 Tagen
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 52/100
Maintainer antworten meist innerhalb von 3 Tagen
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 68/100
sysprog21/elfuse#476 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 3 Tagen
Alle Issues in sysprog21/elfuse
Ähnliche Issues
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 70/100
ly05010419/MacNativeGames#1340 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
Maintainer antworten meist innerhalb von 1 Tag
-
area:stdlib bug found-by:cold-read kind:bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 83/100
InauguralSystems/EigenScript#2197 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Hide the cursorOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 63/100
seedds/nxnative#675 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
Maintainer antworten meist innerhalb von 2 Tagen