0

I'd like to know how can I track the reason for this error shown above. Is there is anyway to track objects generated during test running, or if is there any good solution to solve this. This error is happening when running tests on jenkins.

java.lang.OutOfMemoryError: GC overhead limit exceeded
Dumping heap to java_pid18526.hprof ...
Heap dump file created [1438953690 bytes in 25.846 secs]
Ran out of memory creating debug info for an error
java.lang.OutOfMemoryError: GC overhead limit exceeded
    at java.util.HashMap.resize(HashMap.java:580)
    at java.util.HashMap.addEntry(HashMap.java:879)
    at java.util.HashMap.put(HashMap.java:505)
    at java.util.HashSet.add(HashSet.java:217)
    at org.aspectj.apache.bcel.generic.InstructionHandle.addTargeter(InstructionHandle.java:161)
    at org.aspectj.apache.bcel.generic.MethodGen.<init>(MethodGen.java:300)
    at org.aspectj.weaver.bcel.LazyMethodGen.initialize(LazyMethodGen.java:336)
    at org.aspectj.weaver.bcel.LazyMethodGen.markAsChanged(LazyMethodGen.java:504)
    at org.aspectj.weaver.bcel.LazyMethodGen.getBody(LazyMethodGen.java:894)
    at org.aspectj.weaver.bcel.BcelShadow.makeShadowForMethod(BcelShadow.java:679)
    at org.aspectj.weaver.bcel.BcelShadow.makeMethodExecution(BcelShadow.java:675)
    at org.aspectj.weaver.bcel.BcelShadow.makeMethodExecution(BcelShadow.java:655)
    at org.aspectj.weaver.bcel.BcelClassWeaver.match(BcelClassWeaver.java:2532)
    at org.aspectj.weaver.bcel.BcelClassWeaver.weave(BcelClassWeaver.java:480)
    at org.aspectj.weaver.bcel.BcelClassWeaver.weave(BcelClassWeaver.java:99)
    at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1691)
    at org.aspectj.weaver.bcel.BcelWeaver.weaveWithoutDump(BcelWeaver.java:1635)
    at org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify(BcelWeaver.java:1400)
    at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1186)
    at org.aspectj.weaver.tools.WeavingAdaptor.getWovenBytes(WeavingAdaptor.java:525)
    at org.aspectj.weaver.tools.WeavingAdaptor.weaveClass(WeavingAdaptor.java:361)
    at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:99)
    at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:54)
    at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
    at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:424)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
Igor
  • 1,397
  • 3
  • 24
  • 56
  • In what way did or didn't the related questions help? http://stackoverflow.com/questions/1393486/error-java-lang-outofmemoryerror-gc-overhead-limit-exceeded?rq=1 http://stackoverflow.com/questions/4371505/gc-overhead-limit-exceeded?rq=1 – Jeroen Vannevel Sep 18 '15 at 17:48
  • As in question: "Is there is anyway to track objects generated during test running" I want to know if there is a way to track the objects created, who are creating them, etc. We have some plugins on Java to see that, but I couldn't find anything for testing. – Igor Sep 18 '15 at 18:20

1 Answers1

0

Is there is anyway to track objects generated during test running

Use a profiler that has allocation recording.

Free: VisualVM, hprof (CLI)
Commercial: Java Mission Control, JProfiler, Yourkit Java Profiler.

the8472
  • 40,999
  • 5
  • 70
  • 122