rm: "traversal failed" is not shown when 2nd getdents64 failed on broken device
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- Medio día
- Aptitud para principiantes
- 25/100
Línea de trabajo
Start by reproducing the bug with the strace fault injection in the issue (getdents64 returning EIO on the second call) against the uutils rm binary, and compare it with GNU rm's output. Read PR #15209 first, since it is already open against this issue and may already cover the fix. Done means the "traversal failed" message is printed when the second getdents64 fails, instead of the misleading "Directory not empty" error.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
$ mkdir -p dir/nonempty
$ strace -e trace=getdents64 -e fault=getdents64:error=EIO:when=2 '/home/a/bin/gnu9.12/rm' -Rf dir
getdents64(3, 0x55ea90f71890 /* 3 entries */, 32768) = 80
getdents64(3, 0x55ea90f71890, 32768) = -1 EIO (Input/output error) (INJECTED)
getdents64(3, 0x55ea90f71890 /* 2 entries */, 32768) = 48
getdents64(3, 0x55ea90f71890 /* 0 entries */, 32768) = 0
rm: traversal failed: dir: Input/output error
+++ exited with 1 +++
$ mkdir -p dir/nonempty
$ strace -e trace=getdents64 -e fault=getdents64:error=EIO:when=2 rm -Rf dir
getdents64(3, 0x7ffda48701a8 /* 3 entries */, 8192) = 80
getdents64(3, 0x7ffda48701a8, 8192) = -1 EIO (Input/output error) (INJECTED)
getdents64(3, 0x560de267a060 /* 3 entries */, 32768) = 80
rm: cannot remove 'dir': Directory not empty
+++ exited with 1 +++
- Lenguaje dominante
- Rust
- Estrellas
- 24.3k
- Forks
- 2.2k
- Merge medio
- 2 d 5 h
- PR fusionados (30 d)
- 387
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de uutils/coreutils
-
cp: fails to compile due to E0609 errorPosiblemente ocupada @Devel08 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
pr: -o/--indent does not pad the header linePosiblemente ocupada @emirmrkaljevic la tomó hace 2 días. AbiertoU - pr
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
Los mantenedores suelen responder en 1 día
-
realpath: empty operand aborts with a garbled error instead of being reported as missingPosiblemente ocupada @emirmrkaljevic la tomó hace 2 días. AbiertoU - realpath
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
Unhelpful manual page(s)Abierto
Dificultad 2/5 Medio día Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
nl: section delimiters reset --join-blank-lines groupingPosiblemente ocupada @coracoracora la tomó hace 3 días. AbiertoU - nl
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
uutils/coreutils#16130 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de uutils/coreutils
Issues similares
-
Shell `yoyo <verb> <sub>` missing its required argument prints usage and exits 0: `config get`Abiertoagent-self
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
yologdev/yoyo-evolve#1154 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
eliasstravik/herdr-projects#789 · 1 comentario ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Alex-Sebastian-Ene/mind-over-chicken#195 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 2 días