-
Bug
-
Resolution: Fixed
-
P2
-
8
-
b102
-
generic
-
generic
-
Verified
Setting the splitter threshold to a value beneath 1000 generates java.lang.VerifyErrors in some tests.
This seems to happen on tests containing finally clauses, but further investigation is required.
bin/js -Dnashorn.compiler.splitter.threshold=200 /home/hannes/work/nashorn/test/script/basic/NASHORN-58.js
Exception in thread "main" java.lang.VerifyError: Inconsistent stackmap frames at branch target 95
Exception Details:
Location:
jdk/nashorn/internal/scripts/Script$NASHORN_58$24.test5(Ljdk/nashorn/internal/runtime/ScriptFunction;Ljava/lang/Object;)Ljava/lang/Object; @90: ifne
Reason:
Current frame's stack size doesn't match stackmap.
Current Frame:
bci: @90
flags: { }
locals: { 'jdk/nashorn/internal/runtime/ScriptFunction', 'java/lang/Object', 'jdk/nashorn/internal/scripts/JO0P0', 'java/lang/Object' }
stack: { integer }
Stackmap Frame:
bci: @95
flags: { }
locals: { 'jdk/nashorn/internal/runtime/ScriptFunction', 'java/lang/Object', 'jdk/nashorn/internal/scripts/JO0P0' }
stack: { 'java/lang/Throwable' }
Bytecode:
0000000: 2ab6 0018 4dbb 001a 5908 b800 1e2c b700
0000010: 214d 2a2b 2cb8 0027 4e2a 2b2c b800 2c4e
0000020: 2cc0 002e b900 3201 009a 0005 2db0 2a2b
0000030: 2cb8 0035 4e2a 2b2c b800 3a4e 2cc0 002e
0000040: b900 3201 009a 0005 2db0 2a2b 2cb8 003f
0000050: 4e2c c000 2eb9 0032 0100 9a00 052d b03a
0000060: 0419 043a 052c 1006 ba00 4e00 002c ba00
0000070: 5200 00b0
Exception Handler Table:
bci [18, 95] => handler: 95
Stackmap Table:
append_frame(@46,Object[#26],Object[#95])
same_frame(@74)
full_frame(@95,{Object[#20],Object[#95],Object[#26]},{Object[#86]})
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2550)
at java.lang.Class.getDeclaredField(Class.java:2059)
at jdk.nashorn.internal.codegen.Compiler$2.run(Compiler.java:417)
at jdk.nashorn.internal.codegen.Compiler$2.run(Compiler.java:413)
at java.security.AccessController.doPrivileged(Native Method)
at jdk.nashorn.internal.codegen.Compiler.install(Compiler.java:413)
at jdk.nashorn.internal.codegen.Compiler.install(Compiler.java:461)
at jdk.nashorn.internal.runtime.Context.compile(Context.java:829)
at jdk.nashorn.internal.runtime.Context.compileScript(Context.java:785)
at jdk.nashorn.internal.runtime.Context.compileScript(Context.java:339)
at jdk.nashorn.tools.Shell.runScripts(Shell.java:309)
at jdk.nashorn.tools.Shell.run(Shell.java:179)
at jdk.nashorn.tools.Shell.main(Shell.java:143)
at jdk.nashorn.tools.Shell.main(Shell.java:122)
This seems to happen on tests containing finally clauses, but further investigation is required.
bin/js -Dnashorn.compiler.splitter.threshold=200 /home/hannes/work/nashorn/test/script/basic/NASHORN-58.js
Exception in thread "main" java.lang.VerifyError: Inconsistent stackmap frames at branch target 95
Exception Details:
Location:
jdk/nashorn/internal/scripts/Script$NASHORN_58$24.test5(Ljdk/nashorn/internal/runtime/ScriptFunction;Ljava/lang/Object;)Ljava/lang/Object; @90: ifne
Reason:
Current frame's stack size doesn't match stackmap.
Current Frame:
bci: @90
flags: { }
locals: { 'jdk/nashorn/internal/runtime/ScriptFunction', 'java/lang/Object', 'jdk/nashorn/internal/scripts/JO0P0', 'java/lang/Object' }
stack: { integer }
Stackmap Frame:
bci: @95
flags: { }
locals: { 'jdk/nashorn/internal/runtime/ScriptFunction', 'java/lang/Object', 'jdk/nashorn/internal/scripts/JO0P0' }
stack: { 'java/lang/Throwable' }
Bytecode:
0000000: 2ab6 0018 4dbb 001a 5908 b800 1e2c b700
0000010: 214d 2a2b 2cb8 0027 4e2a 2b2c b800 2c4e
0000020: 2cc0 002e b900 3201 009a 0005 2db0 2a2b
0000030: 2cb8 0035 4e2a 2b2c b800 3a4e 2cc0 002e
0000040: b900 3201 009a 0005 2db0 2a2b 2cb8 003f
0000050: 4e2c c000 2eb9 0032 0100 9a00 052d b03a
0000060: 0419 043a 052c 1006 ba00 4e00 002c ba00
0000070: 5200 00b0
Exception Handler Table:
bci [18, 95] => handler: 95
Stackmap Table:
append_frame(@46,Object[#26],Object[#95])
same_frame(@74)
full_frame(@95,{Object[#20],Object[#95],Object[#26]},{Object[#86]})
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2550)
at java.lang.Class.getDeclaredField(Class.java:2059)
at jdk.nashorn.internal.codegen.Compiler$2.run(Compiler.java:417)
at jdk.nashorn.internal.codegen.Compiler$2.run(Compiler.java:413)
at java.security.AccessController.doPrivileged(Native Method)
at jdk.nashorn.internal.codegen.Compiler.install(Compiler.java:413)
at jdk.nashorn.internal.codegen.Compiler.install(Compiler.java:461)
at jdk.nashorn.internal.runtime.Context.compile(Context.java:829)
at jdk.nashorn.internal.runtime.Context.compileScript(Context.java:785)
at jdk.nashorn.internal.runtime.Context.compileScript(Context.java:339)
at jdk.nashorn.tools.Shell.runScripts(Shell.java:309)
at jdk.nashorn.tools.Shell.run(Shell.java:179)
at jdk.nashorn.tools.Shell.main(Shell.java:143)
at jdk.nashorn.tools.Shell.main(Shell.java:122)
- blocks
-
JDK-8020719 Run tests with reduced splitter threshold
-
- Closed
-