Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
harrisonrodgers opened this issue Jan 25, 2017 · 0 comments
Open

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

harrisonrodgers opened this issue Jan 25, 2017 · 0 comments

Comments

@harrisonrodgers
Copy link
Contributor

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
  • ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant