JDK-8027677 : microbenchmarks failed with self-reference in initializer
  • Type: Bug
  • Component: performance
  • Affected Version: 8
  • Priority: P4
  • Status: Resolved
  • Resolution: Duplicate
  • Submitted: 2013-10-31
  • Updated: 2013-11-07
  • Resolved: 2013-11-07
Related Reports
Duplicate :  
Relates :  
Relates :  
Description
Use http://aurora-ds.us.oracle.com:9502/jdk8-lambda/b114_2013-10-29-1501_614/ws-b114_2013-10-29-1501_614/build/linux-amd64/j2sdk-image/ to build microbenchmark.jar

Output:
[INFO] Building Microbenchmarks (Java 8, Lambda support)
[INFO]    task-segment: [clean, install]
[INFO] ------------------------------------------------------------------------
[INFO] [clean:clean {execution: default-clean}]
[INFO] [resources:resources {execution: default-resources}]
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 1 resource
[INFO] [compiler:compile {execution: default-compile}]
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 71 source files to /root/benchmarks/microbenchmarks/micros-jdk8-lambda/target/classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /root/benchmarks/microbenchmarks/micros-jdk8-lambda/src/main/java/oracle/micro/benchmarks/jsr335/lambda/invoke/Fibonacci.java:[59,42] self-reference in initializer
[ERROR] /root/benchmarks/microbenchmarks/micros-jdk8-lambda/src/main/java/oracle/micro/benchmarks/jsr335/lambda/invoke/Fibonacci.java:[59,67] self-reference in initializer
[ERROR] /root/benchmarks/microbenchmarks/micros-jdk8-lambda/src/main/java/oracle/micro/benchmarks/jsr335/lambda/invoke/Ackermann.java:[60,29] self-reference in initializer
[ERROR] /root/benchmarks/microbenchmarks/micros-jdk8-lambda/src/main/java/oracle/micro/benchmarks/jsr335/lambda/invoke/Ackermann.java:[61,58] self-reference in initializer
[ERROR] /root/benchmarks/microbenchmarks/micros-jdk8-lambda/src/main/java/oracle/micro/benchmarks/jsr335/lambda/invoke/Ackermann.java:[61,29] self-reference in initializer
[ERROR] /root/benchmarks/microbenchmarks/micros-jdk8-lambda/src/main/java/oracle/micro/benchmarks/jsr335/lambda/invoke/Add.java:[57,36] self-reference in initializer
[ERROR] /root/benchmarks/microbenchmarks/micros-jdk8-lambda/src/main/java/oracle/micro/benchmarks/jsr335/lambda/invoke/Add.java:[65,36] self-reference in initializer
[INFO] 7 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Compilation failure

/root/benchmarks/microbenchmarks/micros-jdk8-lambda/src/main/java/oracle/micro/benchmarks/jsr335/lambda/invoke/Fibonacci.java:[59,42] self-reference in initializer
/root/benchmarks/microbenchmarks/micros-jdk8-lambda/src/main/java/oracle/micro/benchmarks/jsr335/lambda/invoke/Fibonacci.java:[59,67] self-reference in initializer
/root/benchmarks/microbenchmarks/micros-jdk8-lambda/src/main/java/oracle/micro/benchmarks/jsr335/lambda/invoke/Ackermann.java:[60,29] self-reference in initializer
/root/benchmarks/microbenchmarks/micros-jdk8-lambda/src/main/java/oracle/micro/benchmarks/jsr335/lambda/invoke/Ackermann.java:[61,58] self-reference in initializer
/root/benchmarks/microbenchmarks/micros-jdk8-lambda/src/main/java/oracle/micro/benchmarks/jsr335/lambda/invoke/Ackermann.java:[61,29] self-reference in initializer
/root/benchmarks/microbenchmarks/micros-jdk8-lambda/src/main/java/oracle/micro/benchmarks/jsr335/lambda/invoke/Add.java:[57,36] self-reference in initializer
/root/benchmarks/microbenchmarks/micros-jdk8-lambda/src/main/java/oracle/micro/benchmarks/jsr335/lambda/invoke/Add.java:[65,36] self-reference in initializer

[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8 minutes 37 seconds
[INFO] Finished at: Thu Oct 31 20:46:27 CET 2013
[INFO] Final Memory: 34M/715M
[INFO] ------------------------------------------------------------------------

Comments
Caused by JDK-8027941.
07-11-2013

The problem has been fixed.
06-11-2013

Lowering the priority, workaround exists. Ludmila, please try to build again and see if workaround helps.
06-11-2013

Ok, this seems to be the bug in javac, JDK-8027941. Luckily, there is the workaround, I commited the workaround to microbenchmark workspace. $ hg tip changeset: 339:c3e78583a554 tag: tip user: shade date: Wed Nov 06 21:31:05 2013 +0100 summary: Put the workaround for JDK-8027941.
06-11-2013

Ok, it is reproducible with latest jdk8/jdk8, jdk8/tl, lambda/lambda. Digging if this is a known change, or is a known regression. Stay tuned.
06-11-2013

The same issue seen with http://aurora-ds.us.oracle.com:9502/jdk8-lambda/b115_2013-11-05-1501_673/ws/build/linux-amd64/j2sdk-image/
06-11-2013

Seems like the instance of JDK-8024809? Released jdk8b114 builds the micros-jdk8-lambda just fine. jdk8/jdk8, jdk8/tl, lambda/lambda builds is affected as of yesterday. Will wait for current build to see if the problem is fixed there.
06-11-2013