Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 340414 - Latest DTFJ breaks build
Summary: Latest DTFJ breaks build
Status: RESOLVED NOT_ECLIPSE
Alias: None
Product: MAT
Classification: Tools
Component: Core (show other bugs)
Version: 1.1   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-03-18 07:31 EDT by Andrew Johnson CLA
Modified: 2011-05-12 06:39 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrew Johnson CLA 2011-03-18 07:31:42 EDT
11 failures with the latest build which has used the DTFJ 1.5 from IBM:

	Test Result (11 failures / +11)

    * org.eclipse.mat.tests.snapshot.GeneralSnapshotTests.Stacks1[14]
    * org.eclipse.mat.tests.snapshot.GeneralSnapshotTests.TotalClasses[14]
    * org.eclipse.mat.tests.snapshot.GeneralSnapshotTests.TotalObjects[14]
    * org.eclipse.mat.tests.snapshot.GeneralSnapshotTests.TotalHeapSize[14]
    * org.eclipse.mat.tests.snapshot.GeneralSnapshotTests.ObjectSizes[14]
    * org.eclipse.mat.tests.snapshot.GeneralSnapshotTests.topComponents[14]
    * org.eclipse.mat.tests.snapshot.GeneralSnapshotTests.testMethods[14]
    * org.eclipse.mat.tests.snapshot.GeneralSnapshotTests.testClassLoaders[14]
    * org.eclipse.mat.tests.snapshot.GeneralSnapshotTests.reload1[14]
    * org.eclipse.mat.tests.snapshot.GeneralSnapshotTests.reload2[14]

Error Message

org.eclipse.mat.SnapshotException: Error opening heap dump 'javacore.20100209.165721.4484.txt'. Check the error log for further details.

Stacktrace

java.lang.RuntimeException: org.eclipse.mat.SnapshotException: Error opening heap dump 'javacore.20100209.165721.4484.txt'. Check the error log for further details.
	at org.eclipse.mat.tests.TestSnapshots.getSnapshot(TestSnapshots.java:141)
	at org.eclipse.mat.tests.TestSnapshots.getSnapshot(TestSnapshots.java:67)
	at org.eclipse.mat.tests.snapshot.GeneralSnapshotTests.<init>(GeneralSnapshotTests.java:106)
	at sun.reflect.GeneratedConstructorAccessor24.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at org.junit.runners.Parameterized$TestClassRunnerForParameters.createTest(Parameterized.java:86)
	at org.junit.runners.BlockJUnit4ClassRunner$1.runReflectiveCall(BlockJUnit4ClassRunner.java:251)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
	at org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:248)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
	at org.junit.runners.Suite.runChild(Suite.java:128)
	at org.junit.runners.Suite.runChild(Suite.java:24)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
	at org.junit.runners.Suite.runChild(Suite.java:128)
	at org.junit.runners.Suite.runChild(Suite.java:24)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
	at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
	at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
	at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
	at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
	at org.codehaus.tycho.surefire.osgibooter.OsgiSurefireBooter.run(OsgiSurefireBooter.java:81)
	at org.codehaus.tycho.surefire.osgibooter.HeadlessTestApplication.run(HeadlessTestApplication.java:11)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.equinox.internal.app.EclipseAppContainer.callMethodWithException(EclipseAppContainer.java:587)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:198)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
Caused by: org.eclipse.mat.SnapshotException: Error opening heap dump 'javacore.20100209.165721.4484.txt'. Check the error log for further details.
	at org.eclipse.mat.parser.internal.SnapshotFactoryImpl.parse(SnapshotFactoryImpl.java:239)
	at org.eclipse.mat.parser.internal.SnapshotFactoryImpl.openSnapshot(SnapshotFactoryImpl.java:114)
	at org.eclipse.mat.snapshot.SnapshotFactory.openSnapshot(SnapshotFactory.java:145)
	at org.eclipse.mat.tests.TestSnapshots.getSnapshot(TestSnapshots.java:128)
	... 57 more
Caused by: org.eclipse.core.runtime.CoreException: Error opening heap dump 'javacore.20100209.165721.4484.txt'
	at org.eclipse.mat.parser.internal.SnapshotFactoryImpl.parse(SnapshotFactoryImpl.java:237)
	... 60 more


Opening the dump manually with MAT with DTFJ 1.5 give this error in the log:

Javacore files earlier than 1.5.0 are not supported 
(com.ibm.dtfj.javacore.parser.framework.parser.ParserException)
com.ibm.dtfj.javacore.parser.framework.parser.ParserException: Javacore files earlier than 1.5.0 are not supported
	at com.ibm.dtfj.javacore.parser.j9.section.environment.EnvironmentSectionParser.parseVersion(EnvironmentSectionParser.java:71)
	at com.ibm.dtfj.javacore.parser.j9.section.environment.EnvironmentSectionParser.topLevelRule(EnvironmentSectionParser.java:44)
	at com.ibm.dtfj.javacore.parser.j9.SectionParser.readIntoDTFJ(SectionParser.java:50)
	at com.ibm.dtfj.javacore.parser.j9.ParserController.parse(ParserController.java:96)
	at com.ibm.dtfj.javacore.parser.j9.JavaCoreReader.generateImage(JavaCoreReader.java:76)
	at com.ibm.dtfj.image.javacore.JCImageFactory.getImage(JCImageFactory.java:38)
	at org.eclipse.mat.dtfj.DTFJIndexBuilder.getDynamicDTFJDump(DTFJIndexBuilder.java:8049)
	at org.eclipse.mat.dtfj.DTFJIndexBuilder.getUncachedDump(DTFJIndexBuilder.java:7822)
	at org.eclipse.mat.dtfj.DTFJIndexBuilder.getDump(DTFJIndexBuilder.java:7635)
	at org.eclipse.mat.dtfj.DTFJIndexBuilder.fill(DTFJIndexBuilder.java:573)
	at org.eclipse.mat.parser.internal.SnapshotFactoryImpl.parse(SnapshotFactoryImpl.java:203)
	at org.eclipse.mat.parser.internal.SnapshotFactoryImpl.openSnapshot(SnapshotFactoryImpl.java:114)
	at org.eclipse.mat.snapshot.SnapshotFactory.openSnapshot(SnapshotFactory.java:145)
	at org.eclipse.mat.ui.snapshot.ParseHeapDumpJob.run(ParseHeapDumpJob.java:83)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)


Also when opening heapdump.20100209.165721.4484.phd with javacore.20100209.165721.4484.txt with the new DTFJ 1.5 the class loader summary is 

Class Name                                 | Defined Classes | No. of Instances
--------------------------------------------------------------------------------
<system class loader>                      |             347 |            4,738
sun.misc.Launcher$ExtClassLoader @ 0xbadfd8|               1 |                0
'- java.net.URLClassLoader                 |                 |                0
sun.misc.Launcher$AppClassLoader @ 0xbadf58|               0 |                0
Total: 3 entries                           |             348 |            4,738
--------------------------------------------------------------------------------

but with DTFJ 1.4 it is
Class Name                                                   | Defined Classes | No. of Instances
--------------------------------------------------------------------------------------------------
<system class loader>                                        |             332 |            4,723
sun.misc.Launcher$AppClassLoader @ 0xbadf58                  |              16 |               15
|- org.eclipse.mat.tests.CreateSampleDump$DominatorTestData  |                 |                1
|- org.eclipse.mat.tests.CreateSampleDump$DominatorTestData$A|                 |                1
|- org.eclipse.mat.tests.CreateSampleDump$DominatorTestData$B|                 |                1
|- org.eclipse.mat.tests.CreateSampleDump$DominatorTestData$C|                 |                1
|- org.eclipse.mat.tests.CreateSampleDump$DominatorTestData$D|                 |                1
|- org.eclipse.mat.tests.CreateSampleDump$DominatorTestData$E|                 |                1
|- org.eclipse.mat.tests.CreateSampleDump$DominatorTestData$F|                 |                1
|- org.eclipse.mat.tests.CreateSampleDump$DominatorTestData$G|                 |                1
|- org.eclipse.mat.tests.CreateSampleDump$DominatorTestData$H|                 |                1
|- org.eclipse.mat.tests.CreateSampleDump$DominatorTestData$I|                 |                1
|- org.eclipse.mat.tests.CreateSampleDump$DominatorTestData$J|                 |                1
|- org.eclipse.mat.tests.CreateSampleDump$DominatorTestData$K|                 |                1
|- org.eclipse.mat.tests.CreateSampleDump$DominatorTestData$L|                 |                1
|- org.eclipse.mat.tests.CreateSampleDump$DominatorTestData$R|                 |                1
|- org.eclipse.mat.tests.CreateSampleDump$ReferenceTestData  |                 |                1
|- org.eclipse.mat.tests.CreateSampleDump                    |                 |                0
'- Total: 16 entries                                         |                 |                 
sun.misc.Launcher$ExtClassLoader @ 0xbadfd8                  |               0 |                0
Total: 3 entries                                             |             348 |            4,738
--------------------------------------------------------------------------------------------------
Comment 1 Andrew Johnson CLA 2011-03-25 05:32:26 EDT
Another failure is with dump:
            {TestSnapshots.IBM_JDK142_32BIT_HEAP_AND_JAVA, Stacks.FRAMES},

org.eclipse.mat.tests.snapshot.GeneralSnapshotTests.Stacks1[15]

java.lang.AssertionError: 
	at org.junit.Assert.fail(Assert.java:91)
	at org.junit.Assert.assertTrue(Assert.java:43)
	at org.junit.Assert.assertTrue(Assert.java:54)
	at org.eclipse.mat.tests.snapshot.GeneralSnapshotTests.Stacks1(GeneralSnapshotTests.java:191)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
	at org.junit.runners.Suite.runChild(Suite.java:128)
	at org.junit.runners.Suite.runChild(Suite.java:24)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
	at org.junit.runners.Suite.runChild(Suite.java:128)
	at org.junit.runners.Suite.runChild(Suite.java:24)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
	at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
	at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
	at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
	at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
	at org.codehaus.tycho.surefire.osgibooter.OsgiSurefireBooter.run(OsgiSurefireBooter.java:81)
	at org.codehaus.tycho.surefire.osgibooter.HeadlessTestApplication.run(HeadlessTestApplication.java:11)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.equinox.internal.app.EclipseAppContainer.callMethodWithException(EclipseAppContainer.java:587)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:198)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1383)

The cause of the failure is missing stack information from the PHD which used to be provided by the javacore.
Comment 2 Andrew Johnson CLA 2011-03-25 08:31:44 EDT
For the moment I have disabled the failing tests with DTFJ >= 1.5
Comment 3 Andrew Johnson CLA 2011-05-12 06:39:40 EDT
The problem is with DTFJ, not with Memory Analyzer.