nikgoodley-ibboost / gprof

Automatically exported from code.google.com/p/gprof
Apache License 2.0
0 stars 0 forks source link

FATAL ERROR in native method: JDWP on getting class status, jvmtiError=JVMTI_ERROR_WRONG_PHASE(112) #16

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Start the profiler with a sql.eachRow() statement with over 35 000 proccesed 
rows (all work fine in case of 35 000 rows but in case of 40 000 it is crashing)

What is the expected output? What do you see instead?
Instead of profiling statistics I get an error message:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
    at java.lang.Class.privateGetPublicMethods(Unknown Source)
    at java.lang.Class.privateGetPublicMethods(Unknown Source)
    at java.lang.Class.privateGetPublicMethods(Unknown Source)
    at java.lang.Class.privateGetPublicMethods(Unknown Source)
    at java.lang.Class.getMethods(Unknown Source)
    at java.beans.Introspector.getPublicDeclaredMethods(Unknown Source)
    at java.beans.Introspector.internalFindMethod(Unknown Source)
    at java.beans.Introspector.findMethod(Unknown Source)
    at java.beans.Introspector.findMethod(Unknown Source)
    at java.beans.PropertyDescriptor.getReadMethod(Unknown Source)
    at groovy.lang.MetaClassImpl.applyPropertyDescriptors(MetaClassImpl.java:2230)
    at groovy.lang.MetaClassImpl.setupProperties(MetaClassImpl.java:2010)
    at groovy.lang.MetaClassImpl.addProperties(MetaClassImpl.java:2960)
    at groovy.lang.MetaClassImpl.initialize(MetaClassImpl.java:2931)
    at groovyx.gprof.AdaptingExpandoMetaClass.initialize(AdaptingExpandoMetaClass.java:62)
    at groovyx.gprof.ProfileMetaClass.<init>(ProfileMetaClass.java:34)
    at groovyx.gprof.Profiler.proxyMetaClass(Profiler.java:253)
    at groovyx.gprof.Profiler.createNormalMetaClass(Profiler.java:264)
    at groovy.lang.MetaClassRegistry$MetaClassCreationHandle.createWithCustomLookup(MetaClassRegistry.java:147)
    at groovy.lang.MetaClassRegistry$MetaClassCreationHandle.create(MetaClassRegistry.java:130)
    at org.codehaus.groovy.reflection.ClassInfo.getMetaClassUnderLock(ClassInfo.java:175)
    at org.codehaus.groovy.reflection.ClassInfo.getMetaClass(ClassInfo.java:205)
    at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.getMetaClass(MetaClassRegistryImpl.java:313)
    at org.codehaus.groovy.runtime.InvokerHelper.getMetaClass(InvokerHelper.java:802)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.createPojoSite(CallSiteArray.java:122)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.createCallSite(CallSiteArray.java:163)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
    at com.ibm.rational.tools.amps.importer.model.Data.containsAVPTask(Data.groovy:58)
FATAL ERROR in native method: JDWP on getting class status, 
jvmtiError=JVMTI_ERROR_WRONG_PHASE(112)
JDWP exit error JVMTI_ERROR_WRONG_PHASE(112): on getting class status 
[../../../src/share/back/util.c:1283]

In a debug mode I get an information about that PojoMetaClassSite.class cannot 
be found (Class File Editor, Source not found), with a details:

// Compiled from PojoMetaClassSite.java (version 1.5 : 49.0, super bit)
public class org.codehaus.groovy.runtime.callsite.PojoMetaClassSite extends 
org.codehaus.groovy.runtime.callsite.MetaClassSite {

  // Field descriptor #7 Lorg/codehaus/groovy/reflection/ClassInfo;
  private final org.codehaus.groovy.reflection.ClassInfo classInfo;

  // Field descriptor #9 I
  private final int version;

  // Method descriptor #11 (Lorg/codehaus/groovy/runtime/callsite/CallSite;Lgroovy/lang/MetaClass;)V
  // Stack: 3, Locals: 3
  public PojoMetaClassSite(org.codehaus.groovy.runtime.callsite.CallSite site, groovy.lang.MetaClass metaClass);
     0  aload_0 [this]
     1  aload_1 [site]
     2  aload_2 [metaClass]
     3  invokespecial org.codehaus.groovy.runtime.callsite.MetaClassSite(org.codehaus.groovy.runtime.callsite.CallSite, groovy.lang.MetaClass) [13]
     6  aload_0 [this]
     7  aload_2 [metaClass]
     8  invokeinterface groovy.lang.MetaClass.getTheClass() : java.lang.Class [19] [nargs: 1]
    13  invokestatic org.codehaus.groovy.reflection.ClassInfo.getClassInfo(java.lang.Class) : org.codehaus.groovy.reflection.ClassInfo [25]
    16  putfield org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.classInfo : org.codehaus.groovy.reflection.ClassInfo [27]
    19  aload_0 [this]
    20  aload_0 [this]
    21  getfield org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.classInfo : org.codehaus.groovy.reflection.ClassInfo [27]
    24  invokevirtual org.codehaus.groovy.reflection.ClassInfo.getVersion() : int [31]
    27  putfield org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.version : int [33]
    30  return
      Line numbers:
        [pc: 0, line: 36]
        [pc: 6, line: 37]
        [pc: 19, line: 38]
        [pc: 30, line: 39]
      Local variable table:
        [pc: 0, pc: 31] local: this index: 0 type: org.codehaus.groovy.runtime.callsite.PojoMetaClassSite
        [pc: 0, pc: 31] local: site index: 1 type: org.codehaus.groovy.runtime.callsite.CallSite
        [pc: 0, pc: 31] local: metaClass index: 2 type: groovy.lang.MetaClass

  // Method descriptor #41 (Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
  // Stack: 4, Locals: 4
  public java.lang.Object call(java.lang.Object receiver, java.lang.Object[] args) throws java.lang.Throwable;
     0  aload_0 [this]
     1  aload_1 [receiver]
     2  invokevirtual org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.checkCall(java.lang.Object) : boolean [49]
     5  ifeq 30
     8  aload_0 [this]
     9  getfield org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.metaClass : groovy.lang.MetaClass [51]
    12  aload_1 [receiver]
    13  aload_0 [this]
    14  getfield org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.name : java.lang.String [55]
    17  aload_2 [args]
    18  invokeinterface groovy.lang.MetaClass.invokeMethod(java.lang.Object, java.lang.String, java.lang.Object[]) : java.lang.Object [59] [nargs: 4]
    23  areturn
    24  astore_3 [gre]
    25  aload_3 [gre]
    26  invokestatic org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(groovy.lang.GroovyRuntimeException) : java.lang.Throwable [65]
    29  athrow
    30  aload_0 [this]
    31  aload_1 [receiver]
    32  aload_2 [args]
    33  invokestatic org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(org.codehaus.groovy.runtime.callsite.CallSite, java.lang.Object, java.lang.Object[]) : java.lang.Object [71]
    36  areturn
      Exception Table:
        [pc: 8, pc: 23] -> 24 when : groovy.lang.GroovyRuntimeException
      Line numbers:
        [pc: 0, line: 42]
        [pc: 8, line: 44]
        [pc: 24, line: 45]
        [pc: 25, line: 46]
        [pc: 30, line: 49]
      Local variable table:
        [pc: 25, pc: 30] local: gre index: 3 type: groovy.lang.GroovyRuntimeException
        [pc: 0, pc: 37] local: this index: 0 type: org.codehaus.groovy.runtime.callsite.PojoMetaClassSite
        [pc: 0, pc: 37] local: receiver index: 1 type: java.lang.Object
        [pc: 0, pc: 37] local: args index: 2 type: java.lang.Object[]

  // Method descriptor #47 (Ljava/lang/Object;)Z
  // Stack: 2, Locals: 2
  protected final boolean checkCall(java.lang.Object receiver);
     0  aload_1 [receiver]
     1  ifnull 38
     4  aload_1 [receiver]
     5  invokevirtual java.lang.Object.getClass() : java.lang.Class [82]
     8  aload_0 [this]
     9  getfield org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.metaClass : groovy.lang.MetaClass [51]
    12  invokeinterface groovy.lang.MetaClass.getTheClass() : java.lang.Class [19] [nargs: 1]
    17  if_acmpne 38
    20  aload_0 [this]
    21  getfield org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.version : int [33]
    24  aload_0 [this]
    25  getfield org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.classInfo : org.codehaus.groovy.reflection.ClassInfo [27]
    28  invokevirtual org.codehaus.groovy.reflection.ClassInfo.getVersion() : int [31]
    31  if_icmpne 38
    34  iconst_1
    35  goto 39
    38  iconst_0
    39  ireturn
      Line numbers:
        [pc: 0, line: 54]
      Local variable table:
        [pc: 0, pc: 40] local: this index: 0 type: org.codehaus.groovy.runtime.callsite.PojoMetaClassSite
        [pc: 0, pc: 40] local: receiver index: 1 type: java.lang.Object
}

What version of the product are you using? On what operating system?
1) gprof-0.3.0-groovy-2.1.jar on 
2) Win7 64bit, 
3) with Eclipse "Java EE IDE for Web Developers" (Version: Juno Service Release 
2, Build id: 20130225-0426) 
4) and two versions of JAVA:
a) JAVA from SUN:
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)
b) JAVA from IBM:
Java(TM) SE Runtime Environment (build pwa6470sr6-20131015_01(SR6))
IBM J9 VM (build 2.6, JRE 1.7.0 Windows 7 amd64-64 Compressed References 2013101
3_170512 (JIT enabled, AOT enabled)
J9VM - R26_Java726_SR6_20131013_1510_B170512
JIT  - r11.b05_20131003_47443
GC   - R26_Java726_SR6_20131013_1510_B170512_CMPRSS
J9CL - 20131013_170512)
JCL - 20131011_01 based on Oracle 7u45-b18

Please provide any additional information below.

Original issue reported on code.google.com by Tadeusz....@gmail.com on 17 Nov 2013 at 11:24

GoogleCodeExporter commented 9 years ago
Thank you for your reporting. 

gprof has results on heap while profiling for now and it causes out-of-memory 
if the size is over the maximum heap size you set up.

I'll solve the problem in a future version.

Thank you.

Original comment by nagaimas...@gmail.com on 20 Nov 2013 at 9:24