运行jinfo和jmap时的灾难性错误

时间:2014-09-02 07:12:38

标签: java jvm jvm-hotspot jmap jinfo

当我将jinfo或jmap运行到任何Java进程时,它将“暂停”Java进程。它是100%重现的长期运行过程。

以下是详细步骤:

  1. 选择一个运行超过25天的Java进程(它已连线,因为这对新进程不起作用)。
  2. 运行ps来检查进程的状态,应为“Sl”,这是预期的。
  3. 将jinfo或jmap运行到此进程(BTY,jstack没有此问题)。
  4. 运行ps以检查进程的状态。这次它变为“Tl”,这意味着STOPPED并且该过程不响应任何请求。
  5. 以下是我们流程的输出:

    [work@hadoop ~]$ ps aux |grep "qktst" |grep "RegionServer"
    work     36663  0.1  1.7 24157828 1150820 ?    Sl   Aug06  72:54 /opt/soft/jdk/bin/java -cp /home/work/app/hbase/qktst-qk/regionserver/:/home/work/app/hbase/qktst-qk/regionserver/package//:/home/work/app/hbase/qktst-qk/regionserver/package//lib/*:/home/work/app/hbase/qktst-qk/regionserver/package//* -Djava.library.path=:/home/work/app/hbase/qktst-qk/regionserver/package/lib/native/:/home/work/app/hbase/qktst-qk/regionserver/package/lib/native/Linux-amd64-64 -Xbootclasspath/p:/home/work/app/hbase/qktst-qk/regionserver/package/lib/hadoop-security-2.0.0-mdh1.1.0.jar -Xmx10240m -Xms10240m -Xmn1024m -XX:MaxDirectMemorySize=1024m -XX:MaxPermSize=512m -Xloggc:/home/work/app/hbase/qktst-qk/regionserver/stdout/regionserver_gc_20140806-211157.log -Xss256k -XX:PermSize=64m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/work/app/hbase/qktst-qk/regionserver/log -XX:+PrintGCApplicationStoppedTime -XX:+UseConcMarkSweepGC -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:SurvivorRatio=6 -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+CMSParallelRemarkEnabled -XX:+UseNUMA -XX:+CMSClassUnloadingEnabled -XX:CMSMaxAbortablePrecleanTime=10000 -XX:TargetSurvivorRatio=80 -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=100 -XX:GCLogFileSize=128m -XX:CMSWaitDuration=2000 -XX:+CMSScavengeBeforeRemark -XX:+PrintPromotionFailure -XX:ConcGCThreads=16 -XX:ParallelGCThreads=16 -XX:PretenureSizeThreshold=2097088 -XX:+CMSConcurrentMTEnabled -XX:+ExplicitGCInvokesConcurrent -XX:+SafepointTimeout -XX:MonitorBound=16384 -XX:-UseBiasedLocking -XX:MaxTenuringThreshold=3 -Dproc_regionserver -Djava.security.auth.login.config=/home/work/app/hbase/qktst-qk/regionserver/jaas.conf -Djava.net.preferIPv4Stack=true -Dhbase.log.dir=/home/work/app/hbase/qktst-qk/regionserver/log -Dhbase.pid=36663 -Dhbase.cluster=qktst-qk -Dhbase.log.level=debug -Dhbase.policy.file=hbase-policy.xml -Dhbase.home.dir=/home/work/app/hbase/qktst-qk/regionserver/package -Djava.security.krb5.conf=/home/work/app/hbase/qktst-qk/regionserver/krb5.conf -Dhbase.id.str=work org.apache.hadoop.hbase.regionserver.HRegionServer start
    [work@hadoop ~]$ jinfo 36663 > tobe.jinfo
    Attaching to process ID 36663, please wait...
    Debugger attached successfully.
    Server compiler detected.
    JVM version is 20.12-b01
    [work@hadoop ~]$ ps aux |grep "qktst" |grep "RegionServer"
    work     36663  0.1  1.7 24157828 1151008 ?    Tl   Aug06  72:54 /opt/soft/jdk/bin/java -cp /home/work/app/hbase/qktst-qk/regionserver/:/home/work/app/hbase/qktst-qk/regionserver/package//:/home/work/app/hbase/qktst-qk/regionserver/package//lib/*:/home/work/app/hbase/qktst-qk/regionserver/package//* -Djava.library.path=:/home/work/app/hbase/qktst-qk/regionserver/package/lib/native/:/home/work/app/hbase/qktst-qk/regionserver/package/lib/native/Linux-amd64-64 -Xbootclasspath/p:/home/work/app/hbase/qktst-qk/regionserver/package/lib/hadoop-security-2.0.0-mdh1.1.0.jar -Xmx10240m -Xms10240m -Xmn1024m -XX:MaxDirectMemorySize=1024m -XX:MaxPermSize=512m -Xloggc:/home/work/app/hbase/qktst-qk/regionserver/stdout/regionserver_gc_20140806-211157.log -Xss256k -XX:PermSize=64m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/work/app/hbase/qktst-qk/regionserver/log -XX:+PrintGCApplicationStoppedTime -XX:+UseConcMarkSweepGC -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:SurvivorRatio=6 -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+CMSParallelRemarkEnabled -XX:+UseNUMA -XX:+CMSClassUnloadingEnabled -XX:CMSMaxAbortablePrecleanTime=10000 -XX:TargetSurvivorRatio=80 -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=100 -XX:GCLogFileSize=128m -XX:CMSWaitDuration=2000 -XX:+CMSScavengeBeforeRemark -XX:+PrintPromotionFailure -XX:ConcGCThreads=16 -XX:ParallelGCThreads=16 -XX:PretenureSizeThreshold=2097088 -XX:+CMSConcurrentMTEnabled -XX:+ExplicitGCInvokesConcurrent -XX:+SafepointTimeout -XX:MonitorBound=16384 -XX:-UseBiasedLocking -XX:MaxTenuringThreshold=3 -Dproc_regionserver -Djava.security.auth.login.config=/home/work/app/hbase/qktst-qk/regionserver/jaas.conf -Djava.net.preferIPv4Stack=true -Dhbase.log.dir=/home/work/app/hbase/qktst-qk/regionserver/log -Dhbase.pid=36663 -Dhbase.cluster=qktst-qk -Dhbase.log.level=debug -Dhbase.policy.file=hbase-policy.xml -Dhbase.home.dir=/home/work/app/hbase/qktst-qk/regionserver/package -Djava.security.krb5.conf=/home/work/app/hbase/qktst-qk/regionserver/krb5.conf -Dhbase.id.str=work org.apache.hadoop.hbase.regionserver.HRegionServer start
    

    这可能是JVM的错误,但在向oracle报告之后我没有得到任何响应。所以我希望这里的一些JVM专家可以提供帮助。

      

    $ java -version
      java版“1.6.0_37”
      Java(TM)SE运行时环境(版本1.6.0_37-b06)
      Java HotSpot(TM)64位服务器VM(版本20.12-b01,混合模式)

0 个答案:

没有答案