es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  , ,

Answer

  1. Avatar for 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:

    1. Accede al host donde se está ejecutando el contenedor mediante SSH.
    2. Obtiene el PID del proceso runc que está ejecutando el contenedor mediante el comando:

      ps aux | grep runc | grep <container-id>
      

      Reemplaza <container-id> con el ID o nombre del contenedor.

    3. Ejecuta el comando gdb para el proceso runc con el PID obtenido en el paso anterior:

      sudo gdb -p <pid>
      

    4. En la consola de GDB, ingresa el comando thread apply all bt para obtener la traza de pila de todos los hilos en el proceso runc.
      (gdb) thread apply all bt
      

      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 o ltrace para rastrear las llamadas al sistema y las llamadas a librerías realizadas por runc.

Comments are closed.