Mi respuesta será un poco ajena, pero tuve el mismo problema al intentar volcar hilos usando jcmd
. Recibía el mismo mensaje de error aunque estaba ejecutando jcmd
bajo la raíz usuario.
Necesitas ejecutar jcmd <pid> Thread.print
bajo el mismo usuario que el proceso java tiene, de lo contrario sus conexiones se perderán. A Java no le importa si eres root o no.
Así que básicamente:
sudo -u <java_process_user> jcmd <pid> Thread.print
Trabaje por ahora.
Agregando '-XX:+StartAttachListener'
al argumento jvm solucionó el problema.
Un problema similar se analiza aquí en https://code.google.com/p/jmockit/issues/detail?id=136 y http://mail.openjdk.java.net/pipermail/macosx-port-dev/2013 -Octubre/006098.html (que habla de una posible regresión en jdk7 build)
Al igual que @bbarker, recibí el mismo error pero en JDK 1.8.0_161 usando el subsistema Linux en Windows 10 ("Bash on Ubuntu on Windows"). La configuración del complemento Surefire con el argumento JVM mencionado anteriormente también me solucionó el problema:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.21.0</version>
<configuration>
<argLine>-XX:+StartAttachListener</argLine>
</configuration>
</plugin>
Sin embargo, ejecutar las pruebas desde un símbolo del sistema de Windows "normal" funciona sin lo anterior.