Skip to content

DeuceSTM fails instrumentation of rt.jar from JRE8. #18

@harrisonrodgers

Description

@harrisonrodgers

Overview
DeuceSTM used for the Java Software Transactional Memory is unable to instrument rt.jar from JRE8.

Synchrobench contains algorithms that require Java 8 while also containing transactional algorithms that currently require DeuceSTM.

Errors
Instrumentation of jre7 from java-7-openjdk:

java -cp lib/deuceAgent-1.3.0.jar -Dorg.deuce.exclude=java.lang.Enum,sun.* org.deuce.transform.asm.Agent /usr/lib/jvm/java-7-openjdk/jre/lib/rt.jar lib/rt_instrumented.jar
Jan 24, 2017 6:33:01 PM org.deuce.transform.asm.Agent transformJar
INFO: Start tranlating source:/usr/lib/jvm/java-7-openjdk/jre/lib/rt.jar target:lib/rt_instrumented.jar
Jan 24, 2017 6:33:16 PM org.deuce.transform.asm.Agent transformJar
INFO: Closing source:/usr/lib/jvm/java-7-openjdk/jre/lib/rt.jar target:lib/rt_instrumented.jar

Instrumentation of jre8 from java-8-openjdk:

java -cp lib/deuceAgent-1.3.0.jar -Dorg.deuce.exclude=java.lang.Enum,sun.* org.deuce.transform.asm.Agent /usr/lib/jvm/java-8-openjdk/jre/lib/rt.jar lib/rt_instrumented.jar
Jan 24, 2017 6:36:10 PM org.deuce.transform.asm.Agent transformJar
INFO: Start tranlating source:/usr/lib/jvm/java-8-openjdk/jre/lib/rt.jar target:lib/rt_instrumented.jar
Jan 24, 2017 6:36:13 PM org.deuce.transform.asm.Agent transformJar
SEVERE: Failed to translate com/sun/media/sound/JDK13Services.class
java.lang.ArrayIndexOutOfBoundsException: 52264
        at org.deuce.objectweb.asm.ClassReader.readClass(Unknown Source)
        at org.deuce.objectweb.asm.ClassReader.accept(Unknown Source)
        at org.deuce.objectweb.asm.ClassReader.accept(Unknown Source)
        at org.deuce.transform.asm.FramesCodeVisitor.visit(Unknown Source)
        at org.deuce.transform.asm.Agent.addFrames(Unknown Source)
        at org.deuce.transform.asm.Agent.transform(Unknown Source)
        at org.deuce.transform.asm.Agent.transformJar(Unknown Source)
        at org.deuce.transform.asm.Agent.main(Unknown Source)

Jan 24, 2017 6:36:13 PM org.deuce.transform.asm.Agent transformJar
INFO: Closing source:/usr/lib/jvm/java-8-openjdk/jre/lib/rt.jar target:lib/rt_instrumented.jar

Instrumentation of jre7 from java-7-oracle:

java -cp lib/deuceAgent-1.3.0.jar -Dorg.deuce.exclude=java.lang.Enum,sun.* org.deuce.transform.asm.Agent /usr/lib/jvm/java-7-jdk/jre/lib/rt.jar lib/rt_instrumented.jar
Jan 25, 2017 10:42:34 AM org.deuce.transform.asm.Agent transformJar
INFO: Start tranlating source:/usr/lib/jvm/java-7-jdk/jre/lib/rt.jar target:lib/rt_instrumented.jar
Jan 25, 2017 10:42:44 AM org.deuce.transform.asm.Agent transformJar
INFO: Closing source:/usr/lib/jvm/java-7-jdk/jre/lib/rt.jar target:lib/rt_instrumented.jar

Instrumentation of jre8 from java-8-oracle:

java -cp lib/deuceAgent-1.3.0.jar -Dorg.deuce.exclude=java.lang.Enum,sun.* org.deuce.transform.asm.Agent /usr/lib/jvm/java-8-jdk/jre/lib/rt.jar lib/rt_instrumented.jar
Jan 25, 2017 10:41:17 AM org.deuce.transform.asm.Agent transformJar
INFO: Start tranlating source:/usr/lib/jvm/java-8-jdk/jre/lib/rt.jar target:lib/rt_instrumented.jar
Jan 25, 2017 10:41:20 AM org.deuce.transform.asm.Agent transformJar
SEVERE: Failed to translate com/sun/jndi/cosnaming/CNCtx.class
java.lang.ArrayIndexOutOfBoundsException: 31067
        at org.deuce.objectweb.asm.ClassReader.<init>(Unknown Source)
        at org.deuce.objectweb.asm.ClassReader.<init>(Unknown Source)
        at org.deuce.transform.asm.FramesCodeVisitor.visit(Unknown Source)
        at org.deuce.transform.asm.Agent.addFrames(Unknown Source)
        at org.deuce.transform.asm.Agent.transform(Unknown Source)
        at org.deuce.transform.asm.Agent.transformJar(Unknown Source)
        at org.deuce.transform.asm.Agent.main(Unknown Source)

Jan 25, 2017 10:41:20 AM org.deuce.transform.asm.Agent transformJar
INFO: Closing source:/usr/lib/jvm/java-8-jdk/jre/lib/rt.jar target:lib/rt_instrumented.jar

Potential fixes

  • exclude the offending classes from being instrumented (if aplicable), or
  • split the java version of Synchrobench in two, or
  • use an alternative STM library, or
  • ...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions