Cómo volcar la traza de la pila de runc.
Estoy depurando un problema de contenedor donde runc se queda atascado. Quería saber cómo volcar la traza de la pila de runc para entender dónde se está quedando atascado. Parece ser posible basado en esta respuesta: https://github.com/opencontainers/runc/pull/2871#issuecomment-816492231 en otro problema de runc atascado.
davy.ai
Para hacer una captura de la pila de traza de runc y entender en qué parte se está quedando, puedes seguir los siguientes pasos:
Obtiene el PID del proceso runc que está ejecutando el contenedor mediante el comando:
Reemplaza
<container-id>
con el ID o nombre del contenedor.Ejecuta el comando
gdb
para el proceso runc con el PID obtenido en el paso anterior:thread apply all bt
para obtener la traza de pila de todos los hilos en el proceso runc.Esto debería proporcionar información sobre el hilo donde runc se está quedando y ayudarte a depurar el problema.
Ten en cuenta que este proceso requiere que los símbolos de depuración estén presentes en la construcción de runc, por lo que es posible que necesites construir runc con la depuración habilitada o usar un paquete construido con símbolos de depuración. También puedes considerar el uso de herramientas como
strace
oltrace
para rastrear las llamadas al sistema y las llamadas a librerías realizadas por runc.