2015-07-02 54 views
4

我很惊讶地发现,不知何故,最近,jstack停止了对新JDK 8的工作我不知道在其周围释放该发生的,但我得到:jstack是否停止在较新的JDK8版本上工作?

36649: Unable to open socket file: target process not responding or HotSpot VM not loaded 
The -F option can be used when the target process is not responding 

ps -Af|grep 36649 
conflue+ 36649  1 62 08:14 ?  00:48:28 /usr/lib/jvm/java-8-oracle/bin/java -Djava.util.logging.config.file=/opt/atlassian/confluence/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xms15000m -Xmx15000m -Duser.timezone=UTC -Djava.awt.headless=true -Dconfluence.upgrade.recovery.file.enabled=false -Dmail.smtp.connectiontimeout=10000 -Dmail.smtp.timeout=10000 -XX:MaxMetaspaceSize=256m -XX:+UseG1GC -Djava.awt.headless=true -Xloggc:/opt/atlassian/confluence/logs/gc-2015-07-02_08-14-39.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=2M -XX:-PrintGCDetails -XX:+PrintGCTimeStamps -XX:-PrintTenuringDistribution -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8091 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=127.0.0.1 -Djava.endorsed.dirs=/opt/atlassian/confluence/endorsed -classpath /opt/atlassian/confluence/bin/bootstrap.jar:/opt/atlassian/confluence/bin/tomcat-juli.jar -Dcatalina.base=/opt/atlassian/confluence -Dcatalina.home=/opt/atlassian/confluence -Djava.io.tmpdir=/opt/atlassian/confluence/temp org.apache.catalina.startup.Bootstrap start 

我敢肯定,PID是正确的,我甚至尝试了-F模式,这似乎阻止了jstack,我等了很多分钟,似乎根本没有回应。

如果任何人都可以提供一种替代方法来产生调查死锁所需的线程转储,那么我将非常乐意去尝试它们。

其他系统信息

Ubuntu 14.04.2 LTS 
>java -version 
Java build 1.8.0_45-b14 
>uname -r 
3.13.0-55-generic 
+5

一些最新的LInux版本需要更改内核设置(通过将新值写入虚拟文件中)以使附着机制起作用。我无法立即找到我使用的说明。 –

+1

@ThorbjørnRavnAndersen我能找到https://bugs.openjdk.java.net/browse/JDK-7050524,但我尝试了推荐的解决方法,但是如果使用没有-F的jstack,它没有任何作用。这是否意味着没有-F的运行变得不可能? (即使服务正在运行并响应,它也会失败)。在通过'/ proc/sys'设置内核标志后, – sorin

+0

适用于我。可能是特定于您的系统或程序的内容。也许尝试在其他一些Java进程。 – the8472

回答

1

确保您从java8 jstack使用。你运行java-8-oracle,但有可能,默认的jvm是不同的:)另外,试试sudo来排除访问问题。

相关问题