我惊讶地发现,不知何故,最近 jstack 停止了在较新的 JDK 8 上的工作。我不确定这发生在哪个版本,但我确实得到:
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
mode,似乎阻塞了jstack,我等了很多分钟,似乎根本没有响应。
如果有人可以提供一种替代方法来生成调查死锁所需的线程转储,那么我将非常愿意尝试它们。
附加系统信息
Ubuntu 14.04.2 LTS
>java -version
Java build 1.8.0_45-b14
>uname -r
3.13.0-55-generic
确保您使用的是 java8 中的 jstack。您运行 java-8-oracle,但默认 jvm 可能不同:) 另外,请尝试 sudo,以排除访问问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)