Diagnosticar un bloqueo de JVM a partir de volcados de hilos con TDA
Cuándo usarlo: La JVM de producción se volvió no responsiva; tienes una serie de volcados kill -3.
Requisitos previos
- tda.jar descargado — github.com/irockel/tda releases
- Java 21+ instalado — Para características de análisis de Project Loom
Flujo
-
Analiza el registroparse_log en /tmp/threaddumps.log. Resume: cuántos volcados, hilos por volcado.✓ Copiado→ Resumen de volcados
-
Verifica bloqueos mutuoscheck_deadlocks en todos los volcados. ¿Qué hilos, qué bloqueos?✓ Copiado→ Ciclos de bloqueo si los hay
-
Encuentra hilos de larga duraciónfind_long_running hilos persistentes en todos los volcados. ¿Qué están haciendo?✓ Copiado→ Lista con cabeceras de pila
Resultado: Un hilo específico + bloqueo + ruta de código responsable del bloqueo.
Errores comunes
- Los scripts que imprimen en stdout corrompen el flujo JSON-RPC — Usa
java -Djava.awt.headless=true -jar tda.jar --mcpsin envolverlo en ningún script que también imprima