eclipse-openj9 / openj9

Eclipse OpenJ9: A Java Virtual Machine for OpenJDK that's optimized for small footprint, fast start-up, and high throughput. Builds on Eclipse OMR (https://github.com/eclipse/omr) and combines with the Extensions for OpenJDK for OpenJ9 repo.
Other
3.27k stars 720 forks source link

DaCapo Exceptions #4859

Open tongzhou80 opened 5 years ago

tongzhou80 commented 5 years ago

Hi,

I ran into some errors on some benchmarks in DaCapo. Note that the JVM didn't segfault or anything. It's just the benchmark threw Java exceptions while it ran fine with hotspot jvm.

DaCapo

I used the default DaCapo version, which can be downloaded from https://sourceforge.net/projects/dacapobench/files/latest/download.

OpenJ9 Build

I used the docker build environment from https://www.eclipse.org/openj9/oj9_build.html. The build command was make all.

Exceptions

There were a couple benchmarks that had errors such as tradebeans, tradesoap and tomcat. For example, tradebeans's error was:

tong@titanxp-system ~/soot-dacapo> /home/tong/openj9-openjdk-jdk8/build/linux-x86_64-normal-server-release/images/j2re-image/bin/java -jar dacapo-9.12-MR1-bac
h.jar tradebeans
Using scaled threading model. 4 processors detected, 4 threads used to drive the workload, in a possible range of [1,512]
10:14:01,030 ERROR [GBeanInstanceState] Error while starting; GBean is now in the FAILED state: abstractName="org.apache.geronimo.framework/j2ee-system/2.1.4/
car?ServiceModule=org.apache.geronimo.framework/j2ee-system/2.1.4/car,j2eeType=AttributeStore,name=AttributeManager"
java.lang.ArrayIndexOutOfBoundsException: Array index out of range: -4
        at com.sun.xml.bind.v2.util.CollisionCheckStack.findDuplicate(CollisionCheckStack.java:112)
        at com.sun.xml.bind.v2.util.CollisionCheckStack.push(CollisionCheckStack.java:53)
        at com.sun.xml.bind.v2.runtime.XMLSerializer.pushObject(XMLSerializer.java:471)
        at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:574)
        at com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:113)
        at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:98)
        at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:127)
        at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(ElementBeanInfoImpl.java:244)
        at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:251)
        at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:33)
        at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:461)
        at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:292)
        at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:221)
        at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:116)
        at org.apache.geronimo.system.configuration.AttributesXmlUtil.writeAttribute(AttributesXmlUtil.java:71)
        at org.apache.geronimo.system.configuration.AttributesXmlUtil.extractAttributeValue(AttributesXmlUtil.java:75)
at org.apache.geronimo.system.configuration.GBeanOverride.<init>(GBeanOverride.java:191)
        at org.apache.geronimo.system.configuration.ConfigurationOverride.<init>(ConfigurationOverride.java:79)
        at org.apache.geronimo.system.configuration.ServerOverride.<init>(ServerOverride.java:42)
        at org.apache.geronimo.system.configuration.LocalAttributeManager.read(LocalAttributeManager.java:354)
        at org.apache.geronimo.system.configuration.LocalAttributeManager.load(LocalAttributeManager.java:334)
        at org.apache.geronimo.system.configuration.LocalAttributeManager.doStart(LocalAttributeManager.java:520)
        at org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:998)
        at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:268)
        at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:102)
        at org.apache.geronimo.gbean.runtime.GBeanInstance.start(GBeanInstance.java:541)
        at org.apache.geronimo.gbean.runtime.GBeanDependency.attemptFullStart(GBeanDependency.java:111)
        at org.apache.geronimo.gbean.runtime.GBeanDependency.addTarget(GBeanDependency.java:146)
        at org.apache.geronimo.gbean.runtime.GBeanDependency$1.running(GBeanDependency.java:120)
        at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.fireRunningEvent(BasicLifecycleMonitor.java:176)
        at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.access$300(BasicLifecycleMonitor.java:44)
        at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor$RawLifecycleBroadcaster.fireRunningEvent(BasicLifecycleMonitor.java:254)
        at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:294)
        at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:102)
        at org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:124)
        at org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:555)
        at org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:379)
        at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:456)
        at org.apache.geronimo.kernel.config.ConfigurationUtil.loadBootstrapConfiguration(ConfigurationUtil.java:208)
        at org.apache.geronimo.kernel.config.ConfigurationUtil.loadBootstrapConfiguration(ConfigurationUtil.java:167)
        at org.dacapo.daytrader.DaCapoServerRunner.initialize(DaCapoServerRunner.java:38)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.dacapo.daytrader.Launcher.initialize(Launcher.java:70)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.dacapo.harness.Tradebeans.prepare(Tradebeans.java:49)
        at org.dacapo.harness.Benchmark.run(Benchmark.java:163)
        at org.dacapo.harness.TestHarness.runBenchmark(TestHarness.java:199)
        at org.dacapo.harness.TestHarness.main(TestHarness.java:152)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at Harness.main(Unknown Source)
Exception initializing server: org.apache.geronimo.kernel.config.InvalidConfigException: Unknown start exceptionorg.apache.geronimo.kernel.config.InvalidConfi
gException: Unknown start exception
        at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:522)
        at org.apache.geronimo.kernel.config.ConfigurationUtil.loadBootstrapConfiguration(ConfigurationUtil.java:208)
        at org.apache.geronimo.kernel.config.ConfigurationUtil.loadBootstrapConfiguration(ConfigurationUtil.java:167)
        at org.dacapo.daytrader.DaCapoServerRunner.initialize(DaCapoServerRunner.java:38)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.dacapo.daytrader.Launcher.initialize(Launcher.java:70)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.dacapo.harness.Tradebeans.prepare(Tradebeans.java:49)
        at org.dacapo.harness.Benchmark.run(Benchmark.java:163)
        at org.dacapo.harness.TestHarness.runBenchmark(TestHarness.java:199)
        at org.dacapo.harness.TestHarness.main(TestHarness.java:152)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at Harness.main(Unknown Source)
Caused by: org.apache.geronimo.gbean.InvalidConfigurationException: Configuration org.apache.geronimo.framework/j2ee-system/2.1.4/car failed to start due to t
he following reasons:
  The service ServiceModule=org.apache.geronimo.framework/j2ee-system/2.1.4/car,j2eeType=AttributeStore,name=AttributeManager did not start because Array inde
x out of range: -7
  The service ServiceModule=org.apache.geronimo.framework/j2ee-system/2.1.4/car,j2eeType=ConfigurationManager,name=ConfigurationManager did not start because 
org.apache.geronimo.framework/j2ee-system/2.1.4/car?ServiceModule=org.apache.geronimo.framework/j2ee-system/2.1.4/car,j2eeType=AttributeStore,name=AttributeMa
nager did not start.

        at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:485)
        ... 21 more

I think it's because I am missing something. Anyone encountered similar issues? Thanks.

DanHeidinga commented 5 years ago

@vesuppi Can you try running with the -XX:+PositiveIdentityHash commandline option? If it's easier, it can be put in an environment variable like export OPENJ9_JAVA_OPTIONS="-XX:+PositiveIdentityHash" when running the application.

I found https://coderanch.com/t/617050/languages/ArrayIndexOutOfBounds-error-unmarshalling which suggests the code is using the hashcode to index into an array and OpenJ9 by default uses the full range of hashcodes - both positive and negative - to give a better hash space.

tongzhou80 commented 5 years ago

@vesuppi Can you try running with the -XX:+PositiveIdentityHash commandline option? If it's easier, it can be put in an environment variable like export OPENJ9_JAVA_OPTIONS="-XX:+PositiveIdentityHash" when running the application.

I found https://coderanch.com/t/617050/languages/ArrayIndexOutOfBounds-error-unmarshalling which suggests the code is using the hashcode to index into an array and OpenJ9 by default uses the full range of hashcodes - both positive and negative - to give a better hash space.

Great that seemed to have fixed tradebeans. But tradesoap had a new error. Let me update the error in a bit.

gacholio commented 5 years ago

We're also always interested if a problem can be reproduced with -Xint on the command line.

tongzhou80 commented 5 years ago

@DanHeidinga @gacholio

I pulled the most recent source and rebuilt it. Both tradebeans and tradesoap work now with -XX:+PositiveIdentityHash. But for some reason if I specify them two both on the command line it threw a lot of exceptions.

Here's a brief table showing what benchmarks don't work yet with the latest source on Ubuntu 16.04.5 LT (even with -XX:+PositiveIdentityHash):

Both errors are reproducible with -Xint.

tongzhou80 commented 5 years ago

batik has following exceptions:

===== DaCapo 9.12-MR1 batik starting =====
About to transcode 3 SVG file(s)

Converting mapWaadt.svg to /home/tong/soot-dacapo/./scratch/mapWaadt.png ... ... success
Converting mapSpain.svg to /home/tong/soot-dacapo/./scratch/mapSpain.png ... ... success
Converting sydney.svg to /home/tong/soot-dacapo/./scratch/sydney.png ... java.lang.reflect.InvocationTargetException
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.dacapo.harness.Batik.iterate(Batik.java:41)
        at org.dacapo.harness.Benchmark.run(Benchmark.java:187)
        at org.dacapo.harness.TestHarness.runBenchmark(TestHarness.java:199)
        at org.dacapo.harness.TestHarness.main(TestHarness.java:152)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at Harness.main(Unknown Source)
Caused by: java.lang.NoClassDefFoundError: com.sun.image.codec.jpeg.TruncatedFileException
        at org.apache.batik.ext.awt.image.codec.jpeg.JPEGRegistryEntry.handleStream(JPEGRegistryEntry.java:87)
        at org.apache.batik.ext.awt.image.spi.ImageTagRegistry.readURL(ImageTagRegistry.java:189)
        at org.apache.batik.bridge.SVGImageElementBridge.createImageGraphicsNode(SVGImageElementBridge.java:257)
        at org.apache.batik.bridge.SVGImageElementBridge.buildImageGraphicsNode(SVGImageElementBridge.java:176)
        at org.apache.batik.bridge.SVGImageElementBridge.createGraphicsNode(SVGImageElementBridge.java:118)
        at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:206)
        at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:164)
        at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:212)
        at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:164)
        at org.apache.batik.bridge.GVTBuilder.build(GVTBuilder.java:78)
        at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:214)
        at org.apache.batik.transcoder.image.ImageTranscoder.transcode(ImageTranscoder.java:92)
        at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:142)
        at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:159)
        at org.apache.batik.apps.rasterizer.SVGConverter.transcode(SVGConverter.java:992)
        at org.apache.batik.apps.rasterizer.SVGConverter.execute(SVGConverter.java:715)
        at org.apache.batik.apps.rasterizer.Main.execute(Main.java:938)
        ... 13 more
Caused by: java.lang.ClassNotFoundException: com.sun.image.codec.jpeg.TruncatedFileException
        at java.net.URLClassLoader.findClass(URLClassLoader.java:591)
        at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:946)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:891)
        at org.dacapo.harness.DacapoClassLoader.loadClass(DacapoClassLoader.java:123)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:874)
        ... 30 more
tongzhou80 commented 5 years ago

tomcat has following exceptions:

URL /examples/jsp/plugin/plugin.jsp returned status 500 (expected 200)
URL /examples/jsp/jsp2/jspx/basic.jspx returned status 500 (expected 200)
URL /examples/jsp/tagplugin/choose.jsp returned status 500 (expected 200)
URL /examples/jsp/forward/forward.jsp returned status 500 (expected 200)
URL /examples/jsp/jsptoserv/jsptoservlet.jsp returned status 500 (expected 200)
URL /examples/jsp/plugin/plugin.jsp returned status 500 (expected 200)
URL /examples/jsp/xml/xml.jsp returned status 500 (expected 200)
URL /examples/jsp/jsp2/jspx/textRotate.jspx?name=JSPX returned status 500 (expected 200)
URL /examples/jsp/jsptoserv/jsptoservlet.jsp returned status 500 (expected 200)
URL /examples/jsp/jsp2/jspattribute/jspattribute.jsp returned status 500 (expected 200)
URL /examples/jsp/tagplugin/if.jsp returned status 500 (expected 200)
URL /examples/jsp/xml/xml.jsp returned status 500 (expected 200)
URL /examples/jsp/jsp2/jspattribute/shuffle.jsp returned status 500 (expected 200)
URL /examples/jsp/tagplugin/foreach.jsp returned status 500 (expected 200)
URL /examples/jsp/tagplugin/if.jsp returned status 500 (expected 200)
URL /examples/jsp/jsp2/misc/dynamicattrs.jsp returned status 500 (expected 200)
URL /examples/jsp/tagplugin/choose.jsp returned status 500 (expected 200)
URL /examples/jsp/jsp2/misc/config.jsp returned status 500 (expected 200)
URL /examples/jsp/tagplugin/foreach.jsp returned status 500 (expected 200)
URL /examples/jsp/num/numguess.jsp returned status 500 (expected 200)
URL /examples/jsp/tagplugin/choose.jsp returned status 500 (expected 200)
URL /examples/jsp/dates/date.jsp returned status 500 (expected 200)
URL /examples/jsp/snp/snoop.jsp returned status 500 (expected 200)
URL /examples/jsp/error/err.jsp?name=audi&submit=Submit
   expected 7f207b1e98367e0ee43056f5a242421a46d82eb9
   found    5ab472a06743915c5ba82fa9ecd7a67bf1cee270
   response code 500, log file result.1.21.15.html
URL /examples/jsp/error/err.jsp?name=integra&submit=Submit returned status 500 (expected 200)
URL /examples/jsp/sessions/carts.jsp?item=NIN+CD&submit=add returned status 500 (expected 200)
URL /examples/jsp/sessions/carts.jsp?item=JSP+Book&submit=add returned status 500 (expected 200)
URL /examples/jsp/sessions/carts.jsp?item=Love+life&submit=add returned status 500 (expected 200)
URL /examples/jsp/sessions/carts.jsp?item=NIN+CD&submit=remove returned status 500 (expected 200)
URL /examples/jsp/sessions/carts.jsp?item=JSP+Book&submit=remove returned status 500 (expected 200)
URL /examples/jsp/sessions/carts.jsp?item=Love+life&submit=remove returned status 500 (expected 200)
URL /examples/jsp/include/include.jsp returned status 500 (expected 200)
URL /examples/jsp/forward/forward.jsp returned status 500 (expected 200)
URL /examples/jsp/plugin/plugin.jsp returned status 500 (expected 200)
URL /examples/jsp/jsptoserv/jsptoservlet.jsp returned status 500 (expected 200)
URL /examples/jsp/xml/xml.jsp returned status 500 (expected 200)
URL /examples/jsp/tagplugin/if.jsp returned status 500 (expected 200)
URL /examples/jsp/tagplugin/foreach.jsp returned status 500 (expected 200)
URL /examples/jsp/tagplugin/choose.jsp returned status 500 (expected 200)
Client threads complete ... unloading web application
Digest validation failed for stderr.log, expecting 0xda39a3ee5e6b4b0d3255bfef95601890afd80709 found 0x9fdd57b4d19695ed3580bd0d3a43a3bb4d91e2a0
===== DaCapo 9.12-MR1 tomcat FAILED =====
Server stopped ... iteration complete
Validation FAILED for tomcat default
mikezhang1234567890 commented 5 years ago

The batik issue also occurs on the latest JDK8 Hotspot build from Adopt:

mike@forms1:~/scratch/dacapo-bench$ ~/adopt-hotspot-jdk8/bin/java -jar dacapo-9.12-MR1-bach.jar batik
===== DaCapo 9.12-MR1 batik starting =====
About to transcode 3 SVG file(s)

Converting mapWaadt.svg to /home/mike/scratch/dacapo-bench/./scratch/mapWaadt.png ... ... success
Converting mapSpain.svg to /home/mike/scratch/dacapo-bench/./scratch/mapSpain.png ... ... success
Converting sydney.svg to /home/mike/scratch/dacapo-bench/./scratch/sydney.png ... java.lang.reflect.InvocationTargetException
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.dacapo.harness.Batik.iterate(Batik.java:41)
    at org.dacapo.harness.Benchmark.run(Benchmark.java:187)
    at org.dacapo.harness.TestHarness.runBenchmark(TestHarness.java:199)
    at org.dacapo.harness.TestHarness.main(TestHarness.java:152)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at Harness.main(Unknown Source)
Caused by: java.lang.NoClassDefFoundError: com/sun/image/codec/jpeg/TruncatedFileException
    at org.apache.batik.ext.awt.image.codec.jpeg.JPEGRegistryEntry.handleStream(JPEGRegistryEntry.java:87)
    at org.apache.batik.ext.awt.image.spi.ImageTagRegistry.readURL(ImageTagRegistry.java:189)
    at org.apache.batik.bridge.SVGImageElementBridge.createImageGraphicsNode(SVGImageElementBridge.java:257)
    at org.apache.batik.bridge.SVGImageElementBridge.buildImageGraphicsNode(SVGImageElementBridge.java:176)
    at org.apache.batik.bridge.SVGImageElementBridge.createGraphicsNode(SVGImageElementBridge.java:118)
    at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:206)
    at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:164)
    at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:212)
    at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:164)
    at org.apache.batik.bridge.GVTBuilder.build(GVTBuilder.java:78)
    at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:214)
    at org.apache.batik.transcoder.image.ImageTranscoder.transcode(ImageTranscoder.java:92)
    at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:142)
    at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:159)
    at org.apache.batik.apps.rasterizer.SVGConverter.transcode(SVGConverter.java:992)
    at org.apache.batik.apps.rasterizer.SVGConverter.execute(SVGConverter.java:715)
    at org.apache.batik.apps.rasterizer.Main.execute(Main.java:938)
    ... 13 more
Caused by: java.lang.ClassNotFoundException: com.sun.image.codec.jpeg.TruncatedFileException
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at org.dacapo.harness.DacapoClassLoader.loadClass(DacapoClassLoader.java:123)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 30 more
mike@forms1:~/scratch/dacapo-bench$ ~/adopt-hotspot-jdk8/bin/java -version
openjdk version "1.8.0_202-internal"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_202-internal-201903200429-b08)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.202-b08, mixed mode)

I also found a blog post that suggests that batik uses a Oracle class not found in OpenJDK builds. Not sure if we can do anything here.

mikezhang1234567890 commented 5 years ago

The tomcat issue also occurs with the JDK8 Hotspot build on AdoptOpenJDK. Seems like every page returns status 500 because of:

exception

org.apache.jasper.JasperException: org.apache.jasper.JasperException: Unable to load class for JSP
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:156)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause

org.apache.jasper.JasperException: Unable to load class for JSP
    org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:620)
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:144)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause

java.lang.ClassNotFoundException: org.apache.jsp.jsp.error.err_jsp
    java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:134)
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66)
    org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:618)
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:144)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

Not sure if there is some set up that needs to be done. I just ran $java_bin/java -jar dacapo-9.12-MR1-bach.jar tomcat