JDK-8237743 : test/langtools/jdk/jshell/FailOverExecutionControlTest.java fails No ExecutionControlProvider with name 'nonExistent' and parameter keys: []
  • Type: Bug
  • Component: tools
  • Sub-Component: jshell
  • Affected Version: 15
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2020-01-22
  • Updated: 2024-11-13
  • Resolved: 2020-06-27
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 11 JDK 15 JDK 16
11.0.12-oracleFixed 15 b30Fixed 16Fixed
Related Reports
Relates :  
Description
----------System.out:(71/4425)----------
[TestNG] Running:
  jdk/jshell/FailOverExecutionControlTest.java

config FailOverExecutionControlTest.setUp(): success
test ExecutionControlTestBase.classesDeclaration(): success
config KullaTesting.tearDown(): success
config FailOverExecutionControlTest.setUp(): success
test ExecutionControlTestBase.interfaceTest(): success
config KullaTesting.tearDown(): success
config FailOverExecutionControlTest.setUp(): success
test ExecutionControlTestBase.methodOverload(): success
config KullaTesting.tearDown(): success
config FailOverExecutionControlTest.setUp(): success
test ExecutionControlTestBase.testExprSanity(): success
config KullaTesting.tearDown(): success
config FailOverExecutionControlTest.setUp(): failure
java.lang.IllegalStateException: Launching JShell execution engine threw: No ExecutionControlProvider with name 'nonExistent' and parameter keys: []
	at jdk.jshell/jdk.jshell.JShell.<init>(JShell.java:139)
	at jdk.jshell/jdk.jshell.JShell$Builder.build(JShell.java:405)
	at KullaTesting.setUp(KullaTesting.java:197)
	at FailOverExecutionControlTest.setUp(FailOverExecutionControlTest.java:43)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:564)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:85)
	at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:510)
	at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:211)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:585)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:821)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1131)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:124)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:108)
	at org.testng.TestRunner.privateRun(TestRunner.java:773)
	at org.testng.TestRunner.run(TestRunner.java:623)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:357)
	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:352)
	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:310)
	at org.testng.SuiteRunner.run(SuiteRunner.java:259)
	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1185)
	at org.testng.TestNG.runSuitesLocally(TestNG.java:1110)
	at org.testng.TestNG.run(TestNG.java:1018)
	at com.sun.javatest.regtest.agent.TestNGRunner.main(TestNGRunner.java:94)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:564)
	at com.sun.javatest.regtest.agent.MainActionHelper$AgentVMRunnable.run(MainActionHelper.java:298)
	at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: java.lang.IllegalArgumentException: No ExecutionControlProvider with name 'nonExistent' and parameter keys: []
	at jdk.jshell/jdk.jshell.spi.ExecutionControl.generate(ExecutionControl.java:183)
	at jdk.jshell/jdk.jshell.spi.ExecutionControl.generate(ExecutionControl.java:296)
	at jdk.jshell/jdk.jshell.execution.FailOverExecutionControlProvider.generate(FailOverExecutionControlProvider.java:103)
	at jdk.jshell/jdk.jshell.spi.ExecutionControl.generate(ExecutionControl.java:179)
	at jdk.jshell/jdk.jshell.spi.ExecutionControl.generate(ExecutionControl.java:296)
	at jdk.jshell/jdk.jshell.JShell.<init>(JShell.java:136)

Other failures list other names e.g "failover" and other keys.
Comments
Changeset: a2db08ae Author: Robert Field <rfield@openjdk.org> Date: 2020-06-26 18:20:22 +0000 URL: https://git.openjdk.java.net/mobile/commit/a2db08ae
02-07-2020

Changeset: f6c537f8 Author: Robert Field <rfield@openjdk.org> Date: 2020-06-26 11:56:21 +0000 URL: https://git.openjdk.java.net/mobile/commit/f6c537f8
02-07-2020

URL: https://hg.openjdk.java.net/jdk/jdk15/rev/d90ab2b4e119 User: rfield Date: 2020-06-27 01:22:18 +0000
27-06-2020

This is a test of failover. The test uses an failover execution spec with three level failover, with the first two being bogus "nonExistent" which throw exceptions, the third and last is a standard "jdi:launch(true)". If this fails, failover displays the first failure (the bogus one). So, despite the different error, this would be another example of failure to launch which we see all too often in high-concurrency testing.
11-06-2020

Here's a snippet from the log file: ----------System.out:(71/4390)---------- [TestNG] Running: jdk/jshell/FailOverExecutionControlTest.java config FailOverExecutionControlTest.setUp(): failure java.lang.IllegalStateException: Launching JShell execution engine threw: No ExecutionControlProvider with name 'nonExistent' and parameter keys: [] at jdk.jshell/jdk.jshell.JShell.<init>(JShell.java:139) at jdk.jshell/jdk.jshell.JShell$Builder.build(JShell.java:405) at KullaTesting.setUp(KullaTesting.java:197) at FailOverExecutionControlTest.setUp(FailOverExecutionControlTest.java:43) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:85) at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:510) at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:211) at org.testng.internal.Invoker.invokeMethod(Invoker.java:585) at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:821) at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1131) at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:124) at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:108) at org.testng.TestRunner.privateRun(TestRunner.java:773) at org.testng.TestRunner.run(TestRunner.java:623) at org.testng.SuiteRunner.runTest(SuiteRunner.java:357) at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:352) at org.testng.SuiteRunner.privateRun(SuiteRunner.java:310) at org.testng.SuiteRunner.run(SuiteRunner.java:259) at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) at org.testng.TestNG.runSuitesSequentially(TestNG.java:1185) at org.testng.TestNG.runSuitesLocally(TestNG.java:1110) at org.testng.TestNG.run(TestNG.java:1018) at com.sun.javatest.regtest.agent.TestNGRunner.main(TestNGRunner.java:94) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) at com.sun.javatest.regtest.agent.MainActionHelper$AgentVMRunnable.run(MainActionHelper.java:298) at java.base/java.lang.Thread.run(Thread.java:832) Caused by: java.lang.IllegalArgumentException: No ExecutionControlProvider with name 'nonExistent' and parameter keys: [] at jdk.jshell/jdk.jshell.spi.ExecutionControl.generate(ExecutionControl.java:183) at jdk.jshell/jdk.jshell.spi.ExecutionControl.generate(ExecutionControl.java:296) at jdk.jshell/jdk.jshell.execution.FailOverExecutionControlProvider.generate(FailOverExecutionControlProvider.java:103) at jdk.jshell/jdk.jshell.spi.ExecutionControl.generate(ExecutionControl.java:179) at jdk.jshell/jdk.jshell.spi.ExecutionControl.generate(ExecutionControl.java:296) at jdk.jshell/jdk.jshell.JShell.<init>(JShell.java:136) ... 33 more test ExecutionControlTestBase.classesDeclaration(): skip config KullaTesting.tearDown(): skip config FailOverExecutionControlTest.setUp(): skip test ExecutionControlTestBase.interfaceTest(): skip config KullaTesting.tearDown(): skip config FailOverExecutionControlTest.setUp(): skip test ExecutionControlTestBase.methodOverload(): skip config KullaTesting.tearDown(): skip config FailOverExecutionControlTest.setUp(): skip test ExecutionControlTestBase.testExprSanity(): skip config KullaTesting.tearDown(): skip config FailOverExecutionControlTest.setUp(): skip test ExecutionControlTestBase.testImportOnDemand(): skip config KullaTesting.tearDown(): skip config FailOverExecutionControlTest.setUp(): skip test ExecutionControlTestBase.variables(): skip config KullaTesting.tearDown(): skip =============================================== jdk/jshell/FailOverExecutionControlTest.java Total tests run: 6, Failures: 0, Skips: 6 Configuration Failures: 1, Skips: 11 =============================================== ----------System.err:(12/726)---------- java.lang.Exception: failures: 0 at com.sun.javatest.regtest.agent.TestNGRunner.main(TestNGRunner.java:96) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) at com.sun.javatest.regtest.agent.MainActionHelper$AgentVMRunnable.run(MainActionHelper.java:298) at java.base/java.lang.Thread.run(Thread.java:832) JavaTest Message: Test threw exception: java.lang.Exception JavaTest Message: shutting down test result: Failed. Execution failed: `main' threw exception: java.lang.Exception: failures: 0 test result: Failed. Execution failed: `main' threw exception: java.lang.Exception: failures: 0 Update: The failure spotted here happened in jdk-15+23-1089-tier1. There have been three successful Tier1 job sets since then without this failure reproducing.
13-05-2020

Reopened this bug since this exact failure mode happened again.
12-05-2020

Sorry just realized I filed this for the CI run in which some hotspot changes were introduced that were subsequently backed out because we saw these kinds of failures in later runs. Closing this issue.
07-02-2020