Signalfd + waitpid + multithreading
Los mantenedores suelen responder en 2 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- cpp, linux
- Área
- operating-systems
Línea de trabajo
Start by cloning the linked rr-signalfd-bug reproducer and running ./run.sh to confirm the difference between normal execution and rr record. Read issue #3658, then trace the rr handling of CLONE events and subsequent signal-delivery events for tasks whose tracer uses signalfd, epoll, and waitpid. Done means the reproduced cloned-task events no longer remain asleep under recording.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
This is a bug much similar to a previous one (that was fixed by @rocallahan) which can be found here, called RR waitpid bug not seen during non-recording
This time, it's instead an "awaiter thread" that uses signalfd and epoll to be notified of events (and then subsequently running waitpid as one would).
There's a test application that reproduces this bug 100% of the time here, clone the repo, and just do ./run.sh (it builds and runs without then with rr record).
Short summary of the reproducer:
a tracer application, it has a thread whose job is to be notified via signalfd on SIGCHLD that it can WAITPID. The tracee is TRACEMEd and set up to signal for most of the ptrace events.
The actual CLONE events will show up, as usual, but not the subsequent events for the cloned tasks, essentially putting them to sleep forever (since the tracer application doesn't get the SIGSTOP/SIGTRAP, whatever signal is delivered at the next signal-delivery-stop for the newly created task).
Since this test application works just fine, if no additional tracer/debugger thread is doing the epoll+waitpid-dance (i.e. done on the "main thread/task leader"), I'm guessing the solution will be very similar to that of the previous related issue #3658
- Lenguaje dominante
- C++
- Estrellas
- 10.7k
- Forks
- 666
- Merge medio
- 2 d 13 h
- PR fusionados (30 d)
- 33
Preparar el entorno
- 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 rr-debugger/rr
-
Dificultad 4/5 3-5 días Aptitud para principiantes 43/100
rr-debugger/rr#4127 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
rr-debugger/rr#4060 · 5 comentarios ·
Los mantenedores suelen responder en 2 días
-
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
rr-debugger/rr#4059 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
rr-debugger/rr#4047 · 4 comentarios ·
Los mantenedores suelen responder en 2 días
-
CPU report: Intel Atom x6212REAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
rr-debugger/rr#4042 · 4 comentarios ·
Los mantenedores suelen responder en 2 días
Todos los issues de rr-debugger/rr
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
godotengine/godot#125004 ·
Los mantenedores suelen responder en 1 día
-
44-x-y bug :beetle:
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
electron/electron#55528 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
gabime/spdlog#3698 · 1 comentario ·
Los mantenedores suelen responder en 5 días
-
ai_p2 bug comp-datalake
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
ClickHouse/ClickHouse#128306 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
70 Instance - Raid - Outland
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
azerothcore/azerothcore-wotlk#28328 ·
Los mantenedores suelen responder en 1 día