JDK-8215243 : JShell tests failing intermitently with "Problem cleaning up the following threads:"
  • Type: Bug
  • Component: tools
  • Sub-Component: jshell
  • Affected Version: 12
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2018-12-12
  • Updated: 2020-05-29
  • Resolved: 2018-12-13
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 12 JDK 13
11.0.9-oracleFixed 12 b24Fixed 13Fixed
Description
jdk/jshell/ToolLocaleMessageTest.java failed with java.io.EOFException



----------System.err:(62/4302)----------
java.io.EOFException
	at java.base/java.io.DataInputStream.readInt(DataInputStream.java:397)
	at java.base/java.io.ObjectInputStream$BlockDataInputStream.readInt(ObjectInputStream.java:3284)
	at java.base/java.io.ObjectInputStream.readInt(ObjectInputStream.java:1047)
	at jdk.jshell/jdk.jshell.execution.StreamingExecutionControl.readAndReportExecutionResult(StreamingExecutionControl.java:277)
	at jdk.jshell/jdk.jshell.execution.StreamingExecutionControl.invoke(StreamingExecutionControl.java:99)
	at jdk.jshell/jdk.jshell.execution.JdiDefaultExecutionControl.invoke(JdiDefaultExecutionControl.java:160)
	at jdk.jshell/jdk.jshell.Eval.declare(Eval.java:875)
	at jdk.jshell/jdk.jshell.Eval.eval(Eval.java:140)
	at jdk.jshell/jdk.jshell.JShell.eval(JShell.java:493)
	at jdk.jshell/jdk.internal.jshell.tool.JShellTool.processSource(JShellTool.java:3554)
	at jdk.jshell/jdk.internal.jshell.tool.JShellTool.processSourceCatchingReset(JShellTool.java:1305)
	at jdk.jshell/jdk.internal.jshell.tool.JShellTool.processInput(JShellTool.java:1203)
	at jdk.jshell/jdk.internal.jshell.tool.JShellTool.run(JShellTool.java:1176)
	at jdk.jshell/jdk.internal.jshell.tool.JShellTool.start(JShellTool.java:975)
	at jdk.jshell/jdk.internal.jshell.tool.JShellToolBuilder.run(JShellToolBuilder.java:240)
	at ReplToolTesting.testRawRun(ReplToolTesting.java:303)
	at ReplToolTesting.testRaw(ReplToolTesting.java:286)
	at ReplToolTesting.test(ReplToolTesting.java:240)
	at ToolLocaleMessageTest.testLocale(ToolLocaleMessageTest.java:47)
	at ToolLocaleMessageTest.testTerminate(ToolLocaleMessageTest.java:71)
	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:567)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:85)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:639)
	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:567)
	at com.sun.javatest.regtest.agent.MainActionHelper$AgentVMRunnable.run(MainActionHelper.java:246)
	at java.base/java.lang.Thread.run(Thread.java:835)

JavaTest Message: Test complete.


JavaTest Message: Problem cleaning up the following threads:
Thread-74
  at java.base@12-internal/java.lang.Object.wait(Native Method)
  at java.base@12-internal/java.lang.Object.wait(Object.java:328)
  at app/jdk.jshell@12-internal/jdk.internal.jshell.tool.StopDetectingInputStream.read(StopDetectingInputStream.java:98)
  at app/jdk.jshell@12-internal/jdk.internal.jshell.tool.ConsoleIOContext$TestTerminal.lambda$new$0(ConsoleIOContext.java:1212)
  at app/jdk.jshell@12-internal/jdk.internal.jshell.tool.ConsoleIOContext$TestTerminal$$Lambda$245/0x0000000100236040.run(Unknown Source)
  at java.base@12-internal/java.lang.Thread.run(Thread.java:835)

----------System.out:(19/691)----------
[TestNG] Running:
  jdk/jshell/ToolLocaleMessageTest.java

config ReplToolTesting.setUp(): success
test ToolLocaleMessageTest.testCommand(): success
config ReplToolTesting.setUp(): success
test ToolLocaleMessageTest.testFeedbackError(): success
config ReplToolTesting.setUp(): success
test ToolLocaleMessageTest.testHelp(): success
config ReplToolTesting.setUp(): success
test ToolLocaleMessageTest.testSample(): success
config ReplToolTesting.setUp(): success
test ToolLocaleMessageTest.testTerminate(): success

===============================================
jdk/jshell/ToolLocaleMessageTest.java
Total tests run: 5, Failures: 0, Skips: 0
===============================================
Comments
Fix request (11u) I would like to downport this for parity with 11.0.9-oracle. Applies clean.
29-05-2020

[~goetz] please add a fix request comment.
29-05-2020

I think the java.io.EOFException at java.base/java.io.DataInputStream.readInt(DataInputStream.java:397) Is OK; the problem is with the lingering thread the framework cannot clean up.
12-12-2018

Review thread of a potential fix: http://mail.openjdk.java.net/pipermail/kulla-dev/2018-December/002349.html
12-12-2018