Review request for JDK-8149451: Fix bytecode generation issue after 8149186

Attila Szegedi szegedia at gmail.com
Thu Feb 11 14:38:24 UTC 2016


This is frankly maddening :-)

Sorry for wasting more of your time, but may I ask you for two additional, separate experiments?

1. instead of referencing Type.INT.add() just copy-paste the code from it
2. revert changes to LongType.

Thanks,
  Attila.

> On Feb 11, 2016, at 3:23 PM, Michael Haupt <michael.haupt at oracle.com> wrote:
> 
> Hi Attila,
> 
> I'm very sorry, but testing this I keep getting - occasionally! - crashes of the observed kind (see below).
> 
> Best,
> 
> Michael
> 
>     [java] Test(compile, run): test/script/external/test262/test/suite/ch15/15.5/15.5.4/15.5.4.19/S15.5.4.19_A7.js
>     [java] java.lang.AssertionError: Failed generating bytecode for test/script/external/test262/test/harness/sta.js:-1
>     [java] 	at jdk.nashorn.internal.codegen.CompilationPhase$BytecodeGenerationPhase.transform(CompilationPhase.java:436)
>     [java] 	at jdk.nashorn.internal.codegen.CompilationPhase.apply(CompilationPhase.java:630)
>     [java] 	at jdk.nashorn.internal.codegen.Compiler.compile(Compiler.java:656)
>     [java] 	at jdk.nashorn.internal.runtime.RecompilableScriptFunctionData.compileTypeSpecialization(RecompilableScriptFunctionData.java:717)
>     [java] 	at jdk.nashorn.internal.runtime.RecompilableScriptFunctionData.getBest(RecompilableScriptFunctionData.java:897)
>     [java] 	at jdk.nashorn.internal.runtime.ScriptFunctionData.getBest(ScriptFunctionData.java:392)
>     [java] 	at jdk.nashorn.internal.runtime.ScriptFunctionData.getBestInvoker(ScriptFunctionData.java:254)
>     [java] 	at jdk.nashorn.internal.runtime.ScriptFunction.findCallMethod(ScriptFunction.java:915)
>     [java] 	at jdk.nashorn.internal.runtime.ScriptObject.lookup(ScriptObject.java:1862)
>     [java] 	at jdk.nashorn.internal.runtime.linker.NashornLinker.getGuardedInvocation(NashornLinker.java:102)
>     [java] 	at jdk.nashorn.internal.runtime.linker.NashornLinker.getGuardedInvocation(NashornLinker.java:94)
>     [java] 	at jdk.dynalink.linker.support.CompositeTypeBasedGuardingDynamicLinker.getGuardedInvocation(CompositeTypeBasedGuardingDynamicLinker.java:184)
>     [java] 	at jdk.dynalink.linker.support.CompositeGuardingDynamicLinker.getGuardedInvocation(CompositeGuardingDynamicLinker.java:132)
>     [java] 	at jdk.dynalink.LinkerServicesImpl.getGuardedInvocation(LinkerServicesImpl.java:146)
>     [java] 	at jdk.dynalink.DynamicLinker.relink(DynamicLinker.java:262)
>     [java] 	at jdk.nashorn.internal.scripts.Script$Recompilation$528212$18490D$sta.DaylightSavingTA(test/script/external/test262/test/harness/sta.js:651)
>     [java] 	at jdk.nashorn.internal.scripts.Script$Recompilation$528211$sta.:program(test/script/external/test262/test/harness/sta.js:566)
>     [java] 	at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:654)
>     [java] 	at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:511)
>     [java] 	at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:393)
>     [java] 	at jdk.nashorn.internal.test.framework.SharedContextEvaluator.run(SharedContextEvaluator.java:135)
>     [java] 	at jdk.nashorn.internal.test.framework.AbstractScriptRunnable.evaluateScript(AbstractScriptRunnable.java:200)
>     [java] 	at jdk.nashorn.internal.test.framework.ParallelTestRunner$ScriptRunnable.execute(ParallelTestRunner.java:202)
>     [java] 	at jdk.nashorn.internal.test.framework.AbstractScriptRunnable.runTest(AbstractScriptRunnable.java:132)
>     [java] 	at jdk.nashorn.internal.test.framework.ParallelTestRunner$ScriptRunnable.call(ParallelTestRunner.java:281)
>     [java] 	at jdk.nashorn.internal.test.framework.ParallelTestRunner$ScriptRunnable.call(ParallelTestRunner.java:124)
>     [java] 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>     [java] 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1158)
>     [java] 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:632)
>     [java] 	at java.lang.Thread.run(Thread.java:804)
>     [java] Caused by: java.lang.NullPointerException
> 
>> Am 11.02.2016 um 13:28 schrieb Attila Szegedi <szegedia at gmail.com>:
>> 
>> Please review JDK-8149451 "Fix bytecode generation issue after 8149186" at <http://cr.openjdk.java.net/~attila/8149451/webrev.jdk9> for <https://bugs.openjdk.java.net/browse/JDK-8149451>
>> 
>> This changeset is basically identical to JDK-8149186 but it will allow optimistic addition on booleans. I have implemented it by delegating to Type.INT.add instead of copy-pasting the code, but that should not cause issues (famous last words, right?). If you have the opportunity to re-test on Linux, that'd be appreciated (I have no Linux machines around).
>> 
>> Thanks,
>> Attila.
> 
> -- 
> 
> <http://www.oracle.com/>
> Dr. Michael Haupt | Principal Member of Technical Staff
> Phone: +49 331 200 7277 | Fax: +49 331 200 7561
> Oracle Java Platform Group | LangTools Team | Nashorn
> Oracle Deutschland B.V. & Co. KG | Schiffbauergasse 14 | 14467 Potsdam, Germany
> 
> ORACLE Deutschland B.V. & Co. KG | Hauptverwaltung: Riesstraße 25, D-80992 München
> Registergericht: Amtsgericht München, HRA 95603
> 
> Komplementärin: ORACLE Deutschland Verwaltung B.V. | Hertogswetering 163/167, 3543 AS Utrecht, Niederlande
> Handelsregister der Handelskammer Midden-Nederland, Nr. 30143697
> Geschäftsführer: Alexander van der Ven, Jan Schultheiss, Val Maher
> <http://www.oracle.com/commitment>	Oracle is committed to developing practices and products that help protect the environment
> 



More information about the nashorn-dev mailing list