Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

elfuse is killed by `SIGXFSZ` at startup under a host `RLIMIT_FSIZE` below 1 TiB

Aperta
#437 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 2 giorni

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
Mezza giornata
Idoneità per principianti
62/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
c, shell

Direzione di ricerca

Start in guest_init in src/core/guest.c, where tmpfile_anon("slab") is followed by ftruncate(sfd, try_size), and read the existing fallback to MAP_ANON that the comment describes. Reproduce with (ulimit -f 4; build/elfuse build/test-hello; echo "status=$?") and confirm the process dies from SIGXFSZ. Done means that call fails with EFBIG and elfuse falls back, so the guest prints hello with status 0 under the same limit. Weigh the trade-off the issue names before choosing how to suppress the signal around that call.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

guest_init (src/core/guest.c) backs the primary slab with an unlinked temp file from tmpfile_anon("slab") and sizes it with ftruncate(sfd, try_size), which is 1 TiB on the first (40-bit) attempt. The comment above it says a failed step falls back silently to MAP_ANON. A host soft RLIMIT_FSIZE below the slab size makes that ftruncate raise SIGXFSZ instead, and the default action ends the process before the call can return EFBIG. So under any host file size limit below 1 TiB, elfuse is killed before the guest runs.

Reproducer (zsh, where ulimit -f counts 512-byte blocks):

(ulimit -f 4; build/elfuse build/test-hello; echo "status=$?")
host limit elfuse 8612033
ulimit -f 4 (2048 bytes) killed by SIGXFSZ, status 153, no guest output
ulimit -f 2147483647 (1 TiB less 512 bytes) killed by SIGXFSZ, status 153
ulimit -f 2147483648 (1 TiB) prints hello, status 0
ulimit -f 4, with SIGXFSZ ignored in the parent shell (trap '' XFSZ) prints hello, status 0

The last row shows the fallback itself works once the call is allowed to fail: the limit is the same 2048 bytes and the guest runs. Ignoring SIGXFSZ around that ftruncate would be enough for the existing fallback to take over, at the cost the comment already names (fork then copies regions over IPC in place of passing the fd).

Lingua principale
C
Stelle
273
Fork
29
Merge medio
2g 3h
PR unite (30g)
14

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di sysprog21/elfuse

Tutte le issue di sysprog21/elfuse

Issue simili

Altre issue su C

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.