JShell uses 100% of one core all the time (JDK 15 Build 27)

Aaron Scott-Boddendijk talden at gmail.com
Fri Jun 26 02:00:04 UTC 2020


Just confirming that:

* This still exists in JDK 15 build 29
* Occurs on multiple unrelated Windows 10 machines with differing major
versions of the OS.
* Does not occur in JDK 14.01 on these machines (OpenJDK 64-Bit Server VM
Zulu14.28+21-CA)
* Does not appear to occur on Linux

--
Aaron Scott-Boddendijk


On Tue, Jun 16, 2020 at 11:16 AM Aaron Scott-Boddendijk <talden at gmail.com>
wrote:

> This is the thread-dump from the JVM that VisualVM sees as using a core...
>
> 2020-06-16 11:07:35
> Full thread dump OpenJDK 64-Bit Server VM (15-ea+27-1372 mixed mode,
> sharing):
>
> Threads class SMR info:
> _java_thread_list=0x000001e34a6040f0, length=23, elements={
> 0x000001e31c1a1dc0, 0x000001e349035ee0, 0x000001e349037250,
> 0x000001e349058ae0,
> 0x000001e34905c5b0, 0x000001e34905f710, 0x000001e3490603f0,
> 0x000001e349065140,
> 0x000001e34906d620, 0x000001e349b36a20, 0x000001e349b8c690,
> 0x000001e349da3400,
> 0x000001e349daa7c0, 0x000001e349dbb640, 0x000001e34a141140,
> 0x000001e349d555c0,
> 0x000001e34b07f030, 0x000001e34a461c90, 0x000001e34a45fae0,
> 0x000001e34a45ffb0,
> 0x000001e34a4617c0, 0x000001e34a462160, 0x000001e34a45f610
> }
>
> "main" #1 prio=5 os_prio=0 cpu=1078.13ms elapsed=341.81s
> tid=0x000001e31c1a1dc0 nid=0x16b0 in Object.wait()  [0x000000340d9fe000]
>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
>         at java.lang.Object.wait(java.base at 15-ea/Native Method)
>         - waiting on <no object reference available>
>         at
> jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.read(jdk.internal.le at 15-ea
> /NonBlockingInputStreamImpl.java:139)
>         - locked <0x000000060fe87338> (a
> jdk.internal.jshell.tool.ConsoleIOContext$1)
>         at
> jdk.internal.org.jline.utils.NonBlockingInputStream.read(jdk.internal.le at 15-ea
> /NonBlockingInputStream.java:62)
>         at
> jdk.internal.org.jline.utils.NonBlocking$NonBlockingInputStreamReader.read(jdk.internal.le at 15-ea
> /NonBlocking.java:168)
>         at
> jdk.internal.org.jline.utils.NonBlockingReader.read(jdk.internal.le at 15-ea
> /NonBlockingReader.java:57)
>         at
> jdk.internal.org.jline.keymap.BindingReader.readCharacter(jdk.internal.le at 15-ea
> /BindingReader.java:160)
>         at
> jdk.internal.org.jline.keymap.BindingReader.readBinding(jdk.internal.le at 15-ea
> /BindingReader.java:110)
>         at
> jdk.internal.org.jline.keymap.BindingReader.readBinding(jdk.internal.le at 15-ea
> /BindingReader.java:61)
>         at
> jdk.internal.org.jline.reader.impl.LineReaderImpl.doReadBinding(jdk.internal.le at 15-ea
> /LineReaderImpl.java:913)
>         at
> jdk.internal.org.jline.reader.impl.LineReaderImpl.readBinding(jdk.internal.le at 15-ea
> /LineReaderImpl.java:946)
>         at
> jdk.internal.jshell.tool.ConsoleIOContext$2.readBinding(jdk.jshell at 15-ea
> /ConsoleIOContext.java:154)
>         at
> jdk.internal.org.jline.reader.impl.LineReaderImpl.readLine(jdk.internal.le at 15-ea
> /LineReaderImpl.java:637)
>         at
> jdk.internal.org.jline.reader.impl.LineReaderImpl.readLine(jdk.internal.le at 15-ea
> /LineReaderImpl.java:454)
>         at
> jdk.internal.jshell.tool.ConsoleIOContext.readLine(jdk.jshell at 15-ea
> /ConsoleIOContext.java:229)
>         at jdk.internal.jshell.tool.JShellTool.getInput(jdk.jshell at 15-ea
> /JShellTool.java:1254)
>         at jdk.internal.jshell.tool.JShellTool.run(jdk.jshell at 15-ea
> /JShellTool.java:1190)
>         at jdk.internal.jshell.tool.JShellTool.start(jdk.jshell at 15-ea
> /JShellTool.java:991)
>         at
> jdk.internal.jshell.tool.JShellToolBuilder.start(jdk.jshell at 15-ea
> /JShellToolBuilder.java:254)
>         at
> jdk.internal.jshell.tool.JShellToolProvider.main(jdk.jshell at 15-ea
> /JShellToolProvider.java:120)
>
>    Locked ownable synchronizers:
>         - None
>
> "Reference Handler" #2 daemon prio=10 os_prio=2 cpu=0.00ms elapsed=341.79s
> tid=0x000001e349035ee0 nid=0x13fc waiting on condition  [0x000000340e0fe000]
>    java.lang.Thread.State: RUNNABLE
>         at
> java.lang.ref.Reference.waitForReferencePendingList(java.base at 15-ea/Native
> Method)
>         at java.lang.ref.Reference.processPendingReferences(java.base at 15-ea
> /Reference.java:241)
>         at java.lang.ref.Reference$ReferenceHandler.run(java.base at 15-ea
> /Reference.java:213)
>
>    Locked ownable synchronizers:
>         - None
>
> "Finalizer" #3 daemon prio=8 os_prio=1 cpu=0.00ms elapsed=341.79s
> tid=0x000001e349037250 nid=0x2a60 in Object.wait()  [0x000000340e1fe000]
>    java.lang.Thread.State: WAITING (on object monitor)
>         at java.lang.Object.wait(java.base at 15-ea/Native Method)
>         - waiting on <0x0000000601400bc0> (a
> java.lang.ref.ReferenceQueue$Lock)
>         at java.lang.ref.ReferenceQueue.remove(java.base at 15-ea
> /ReferenceQueue.java:155)
>         - locked <0x0000000601400bc0> (a java.lang.ref.ReferenceQueue$Lock)
>         at java.lang.ref.ReferenceQueue.remove(java.base at 15-ea
> /ReferenceQueue.java:176)
>         at java.lang.ref.Finalizer$FinalizerThread.run(java.base at 15-ea
> /Finalizer.java:170)
>
>    Locked ownable synchronizers:
>         - None
>
> "Signal Dispatcher" #4 daemon prio=9 os_prio=2 cpu=0.00ms elapsed=341.78s
> tid=0x000001e349058ae0 nid=0x35c8 runnable  [0x0000000000000000]
>    java.lang.Thread.State: RUNNABLE
>
>    Locked ownable synchronizers:
>         - None
>
> "Attach Listener" #5 daemon prio=5 os_prio=2 cpu=125.00ms elapsed=341.78s
> tid=0x000001e34905c5b0 nid=0x3e0c waiting on condition  [0x0000000000000000]
>    java.lang.Thread.State: RUNNABLE
>
>    Locked ownable synchronizers:
>         - None
>
> "Service Thread" #6 daemon prio=9 os_prio=0 cpu=0.00ms elapsed=341.78s
> tid=0x000001e34905f710 nid=0x398c runnable  [0x0000000000000000]
>    java.lang.Thread.State: RUNNABLE
>
>    Locked ownable synchronizers:
>         - None
>
> "C2 CompilerThread0" #7 daemon prio=9 os_prio=2 cpu=1781.25ms
> elapsed=341.78s tid=0x000001e3490603f0 nid=0xcf0 waiting on condition
>  [0x0000000000000000]
>    java.lang.Thread.State: RUNNABLE
>    No compile task
>
>    Locked ownable synchronizers:
>         - None
>
> "C1 CompilerThread0" #10 daemon prio=9 os_prio=2 cpu=765.63ms
> elapsed=341.78s tid=0x000001e349065140 nid=0x3e54 waiting on condition
>  [0x0000000000000000]
>    java.lang.Thread.State: RUNNABLE
>    No compile task
>
>    Locked ownable synchronizers:
>         - None
>
> "Sweeper thread" #11 daemon prio=9 os_prio=2 cpu=0.00ms elapsed=341.78s
> tid=0x000001e34906d620 nid=0x38bc runnable  [0x0000000000000000]
>    java.lang.Thread.State: RUNNABLE
>
>    Locked ownable synchronizers:
>         - None
>
> "Notification Thread" #12 daemon prio=9 os_prio=0 cpu=0.00ms
> elapsed=341.76s tid=0x000001e349b36a20 nid=0x49b8 runnable
>  [0x0000000000000000]
>    java.lang.Thread.State: RUNNABLE
>
>    Locked ownable synchronizers:
>         - None
>
> "Common-Cleaner" #13 daemon prio=8 os_prio=1 cpu=0.00ms elapsed=341.75s
> tid=0x000001e349b8c690 nid=0x26e4 in Object.wait()  [0x000000340eaff000]
>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
>         at java.lang.Object.wait(java.base at 15-ea/Native Method)
>         - waiting on <no object reference available>
>         at java.lang.ref.ReferenceQueue.remove(java.base at 15-ea
> /ReferenceQueue.java:155)
>         - locked <0x0000000601401a78> (a java.lang.ref.ReferenceQueue$Lock)
>         at jdk.internal.ref.CleanerImpl.run(java.base at 15-ea
> /CleanerImpl.java:148)
>         at java.lang.Thread.run(java.base at 15-ea/Thread.java:832)
>         at jdk.internal.misc.InnocuousThread.run(java.base at 15-ea
> /InnocuousThread.java:134)
>
>    Locked ownable synchronizers:
>         - None
>
> "JDI Internal Event Handler" #17 daemon prio=5 os_prio=0 cpu=15.63ms
> elapsed=341.39s tid=0x000001e349da3400 nid=0x68 in Object.wait()
>  [0x000000340effe000]
>    java.lang.Thread.State: WAITING (on object monitor)
>         at java.lang.Object.wait(java.base at 15-ea/Native Method)
>         - waiting on <no object reference available>
>         at java.lang.Object.wait(java.base at 15-ea/Object.java:321)
>         at com.sun.tools.jdi.EventQueueImpl.removeUnfiltered(jdk.jdi at 15-ea
> /EventQueueImpl.java:190)
>         - locked <0x000000060154b630> (a com.sun.tools.jdi.EventQueueImpl)
>         at com.sun.tools.jdi.EventQueueImpl.removeInternal(jdk.jdi at 15-ea
> /EventQueueImpl.java:125)
>         at com.sun.tools.jdi.InternalEventHandler.run(jdk.jdi at 15-ea
> /InternalEventHandler.java:61)
>         at java.lang.Thread.run(java.base at 15-ea/Thread.java:832)
>
>    Locked ownable synchronizers:
>         - None
>
> "JDI Target VM Interface" #16 daemon prio=5 os_prio=0 cpu=46.88ms
> elapsed=341.39s tid=0x000001e349daa7c0 nid=0x3d04 runnable
>  [0x000000340f0fe000]
>    java.lang.Thread.State: RUNNABLE
>         at sun.nio.ch.SocketDispatcher.read0(java.base at 15-ea/Native
> Method)
>         at sun.nio.ch.SocketDispatcher.read(java.base at 15-ea
> /SocketDispatcher.java:46)
>         at sun.nio.ch.NioSocketImpl.tryRead(java.base at 15-ea
> /NioSocketImpl.java:261)
>         at sun.nio.ch.NioSocketImpl.implRead(java.base at 15-ea
> /NioSocketImpl.java:312)
>         at sun.nio.ch.NioSocketImpl.read(java.base at 15-ea
> /NioSocketImpl.java:350)
>         at sun.nio.ch.NioSocketImpl$1.read(java.base at 15-ea
> /NioSocketImpl.java:803)
>         at java.net.Socket$SocketInputStream.read(java.base at 15-ea
> /Socket.java:981)
>         at java.net.Socket$SocketInputStream.read(java.base at 15-ea
> /Socket.java:976)
>         at com.sun.tools.jdi.SocketConnection.readPacket(jdk.jdi at 15-ea
> /SocketConnection.java:82)
>         - locked <0x000000060154b998> (a java.lang.Object)
>         at com.sun.tools.jdi.TargetVM.run(jdk.jdi at 15-ea/TargetVM.java:124)
>         at java.lang.Thread.run(java.base at 15-ea/Thread.java:832)
>
>    Locked ownable synchronizers:
>         - <0x0000000601577110> (a
> java.util.concurrent.locks.ReentrantLock$NonfairSync)
>
> "event-handler" #18 daemon prio=5 os_prio=0 cpu=0.00ms elapsed=341.38s
> tid=0x000001e349dbb640 nid=0x203c in Object.wait()  [0x000000340edfe000]
>    java.lang.Thread.State: WAITING (on object monitor)
>         at java.lang.Object.wait(java.base at 15-ea/Native Method)
>         - waiting on <no object reference available>
>         at java.lang.Object.wait(java.base at 15-ea/Object.java:321)
>         at com.sun.tools.jdi.EventQueueImpl.removeUnfiltered(jdk.jdi at 15-ea
> /EventQueueImpl.java:190)
>         - locked <0x000000060154bc28> (a com.sun.tools.jdi.EventQueueImpl)
>         at com.sun.tools.jdi.EventQueueImpl.remove(jdk.jdi at 15-ea
> /EventQueueImpl.java:97)
>         at com.sun.tools.jdi.EventQueueImpl.remove(jdk.jdi at 15-ea
> /EventQueueImpl.java:83)
>         at jdk.jshell.execution.JdiEventHandler.run(jdk.jshell at 15-ea
> /JdiEventHandler.java:79)
>         at java.lang.Thread.run(java.base at 15-ea/Thread.java:832)
>
>    Locked ownable synchronizers:
>         - None
>
> "output reader" #19 daemon prio=5 os_prio=0 cpu=0.00ms elapsed=341.31s
> tid=0x000001e34a141140 nid=0x49c0 runnable  [0x000000340eeff000]
>    java.lang.Thread.State: RUNNABLE
>         at sun.nio.ch.SocketDispatcher.read0(java.base at 15-ea/Native
> Method)
>         at sun.nio.ch.SocketDispatcher.read(java.base at 15-ea
> /SocketDispatcher.java:46)
>         at sun.nio.ch.NioSocketImpl.tryRead(java.base at 15-ea
> /NioSocketImpl.java:261)
>         at sun.nio.ch.NioSocketImpl.implRead(java.base at 15-ea
> /NioSocketImpl.java:312)
>         at sun.nio.ch.NioSocketImpl.read(java.base at 15-ea
> /NioSocketImpl.java:350)
>         at sun.nio.ch.NioSocketImpl$1.read(java.base at 15-ea
> /NioSocketImpl.java:803)
>         at java.net.Socket$SocketInputStream.read(java.base at 15-ea
> /Socket.java:981)
>         at java.net.Socket$SocketInputStream.read(java.base at 15-ea
> /Socket.java:976)
>         at java.io.FilterInputStream.read(java.base at 15-ea
> /FilterInputStream.java:82)
>         at jdk.jshell.execution.DemultiplexInput.run(jdk.jshell at 15-ea
> /DemultiplexInput.java:58)
>
>    Locked ownable synchronizers:
>         - <0x0000000601553510> (a
> java.util.concurrent.locks.ReentrantLock$NonfairSync)
>
> "Thread-0" #21 daemon prio=5 os_prio=0 cpu=312.50ms elapsed=341.22s
> tid=0x000001e349d555c0 nid=0x4d88 waiting on condition  [0x000000340f1fe000]
>    java.lang.Thread.State: WAITING (parking)
>         at jdk.internal.misc.Unsafe.park(java.base at 15-ea/Native Method)
>         - parking to wait for  <0x0000000601550fc0> (a
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>         at java.util.concurrent.locks.LockSupport.park(java.base at 15-ea
> /LockSupport.java:341)
>         at
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base at 15-ea
> /AbstractQueuedSynchronizer.java:505)
>         at java.util.concurrent.ForkJoinPool.managedBlock(java.base at 15-ea
> /ForkJoinPool.java:3137)
>         at
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base at 15-ea
> /AbstractQueuedSynchronizer.java:1614)
>         at java.util.concurrent.LinkedBlockingQueue.take(java.base at 15-ea
> /LinkedBlockingQueue.java:435)
>         at java.util.concurrent.ThreadPoolExecutor.getTask(java.base at 15-ea
> /ThreadPoolExecutor.java:1056)
>         at
> java.util.concurrent.ThreadPoolExecutor.runWorker(java.base at 15-ea
> /ThreadPoolExecutor.java:1116)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base at 15-ea
> /ThreadPoolExecutor.java:630)
>         at java.lang.Thread.run(java.base at 15-ea/Thread.java:832)
>
>    Locked ownable synchronizers:
>         - None
>
> "Thread-2" #23 daemon prio=5 os_prio=0 cpu=338859.38ms elapsed=340.58s
> tid=0x000001e34b07f030 nid=0xac0 runnable  [0x000000340f3fe000]
>    java.lang.Thread.State: RUNNABLE
>         at
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base at 15-ea
> /AbstractQueuedSynchronizer.java:1749)
>         at
> jdk.internal.org.jline.utils.NonBlockingPumpReader.read(jdk.internal.le at 15-ea
> /NonBlockingPumpReader.java:77)
>         at
> jdk.internal.org.jline.utils.NonBlockingReader.read(jdk.internal.le at 15-ea
> /NonBlockingReader.java:57)
>         at
> jdk.internal.org.jline.utils.NonBlocking$NonBlockingReaderInputStream.read(jdk.internal.le at 15-ea
> /NonBlocking.java:104)
>         at
> jdk.internal.org.jline.utils.NonBlockingInputStream.read(jdk.internal.le at 15-ea
> /NonBlockingInputStream.java:36)
>         at
> jdk.internal.jshell.tool.StopDetectingInputStream.lambda$setInputStream$0(jdk.jshell at 15-ea
> /StopDetectingInputStream.java:66)
>         at
> jdk.internal.jshell.tool.StopDetectingInputStream$$Lambda$410/0x0000000800d2eb28.run(jdk.jshell at 15-ea/Unknown
> Source)
>         at java.lang.Thread.run(java.base at 15-ea/Thread.java:832)
>
>    Locked ownable synchronizers:
>         - <0x00000006028b4318> (a
> java.util.concurrent.locks.ReentrantLock$NonfairSync)
>
> "WindowsStreamPump" #25 daemon prio=5 os_prio=0 cpu=0.00ms elapsed=340.53s
> tid=0x000001e34a461c90 nid=0x3688 runnable  [0x000000340f4fe000]
>    java.lang.Thread.State: RUNNABLE
>         at
> jdk.internal.org.jline.terminal.impl.jna.win.Kernel32Impl.WaitForSingleObject(jdk.internal.le at 15-ea/Native
> Method)
>         at
> jdk.internal.org.jline.terminal.impl.jna.win.JnaWinSysTerminal.readConsoleInput(jdk.internal.le at 15-ea
> /JnaWinSysTerminal.java:185)
>         at
> jdk.internal.org.jline.terminal.impl.jna.win.JnaWinSysTerminal.processConsoleInput(jdk.internal.le at 15-ea
> /JnaWinSysTerminal.java:108)
>         at
> jdk.internal.org.jline.terminal.impl.AbstractWindowsTerminal.pump(jdk.internal.le at 15-ea
> /AbstractWindowsTerminal.java:465)
>         at
> jdk.internal.org.jline.terminal.impl.AbstractWindowsTerminal$$Lambda$417/0x0000000800d310f8.run(jdk.internal.le at 15-ea/Unknown
> Source)
>         at java.lang.Thread.run(java.base at 15-ea/Thread.java:832)
>
>    Locked ownable synchronizers:
>         - None
>
> "null non blocking reader thread" #26 daemon prio=5 os_prio=0 cpu=0.00ms
> elapsed=340.26s tid=0x000001e34a45fae0 nid=0x488 in Object.wait()
>  [0x000000340f6ff000]
>    java.lang.Thread.State: WAITING (on object monitor)
>         at java.lang.Object.wait(java.base at 15-ea/Native Method)
>         - waiting on <no object reference available>
>         at java.lang.Object.wait(java.base at 15-ea/Object.java:321)
>         at
> jdk.internal.jshell.tool.StopDetectingInputStream.read(jdk.jshell at 15-ea
> /StopDetectingInputStream.java:98)
>         - locked <0x0000000601e2b650> (a
> jdk.internal.jshell.tool.StopDetectingInputStream)
>         at
> jdk.internal.org.jline.utils.NonBlockingInputStreamImpl.run(jdk.internal.le at 15-ea
> /NonBlockingInputStreamImpl.java:216)
>         at
> jdk.internal.org.jline.utils.NonBlockingInputStreamImpl$$Lambda$584/0x0000000800d4f088.run(jdk.internal.le at 15-ea/Unknown
> Source)
>         at java.lang.Thread.run(java.base at 15-ea/Thread.java:832)
>
>    Locked ownable synchronizers:
>         - None
>
> "RMI TCP Accept-0" #27 daemon prio=5 os_prio=0 cpu=0.00ms elapsed=180.89s
> tid=0x000001e34a45ffb0 nid=0x45f0 runnable  [0x000000340d8fe000]
>    java.lang.Thread.State: RUNNABLE
>         at sun.nio.ch.Net.accept(java.base at 15-ea/Native Method)
>         at sun.nio.ch.NioSocketImpl.accept(java.base at 15-ea
> /NioSocketImpl.java:755)
>         at java.net.ServerSocket.implAccept(java.base at 15-ea
> /ServerSocket.java:684)
>         at java.net.ServerSocket.platformImplAccept(java.base at 15-ea
> /ServerSocket.java:650)
>         at java.net.ServerSocket.implAccept(java.base at 15-ea
> /ServerSocket.java:626)
>         at java.net.ServerSocket.implAccept(java.base at 15-ea
> /ServerSocket.java:583)
>         at java.net.ServerSocket.accept(java.base at 15-ea
> /ServerSocket.java:540)
>         at
> sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(jdk.management.agent at 15-ea
> /LocalRMIServerSocketFactory.java:52)
>         at
> sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(java.rmi at 15-ea
> /TCPTransport.java:413)
>         at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(java.rmi at 15-ea
> /TCPTransport.java:377)
>         at java.lang.Thread.run(java.base at 15-ea/Thread.java:832)
>
>    Locked ownable synchronizers:
>         - <0x0000000602e53118> (a
> java.util.concurrent.locks.ReentrantLock$NonfairSync)
>
> "RMI TCP Connection(1)-10.0.201.131" #28 daemon prio=5 os_prio=0
> cpu=437.50ms elapsed=180.87s tid=0x000001e34a4617c0 nid=0x4790 runnable
>  [0x000000340fbfe000]
>    java.lang.Thread.State: RUNNABLE
>         at sun.nio.ch.Net.poll(java.base at 15-ea/Native Method)
>         at sun.nio.ch.NioSocketImpl.park(java.base at 15-ea
> /NioSocketImpl.java:181)
>         at sun.nio.ch.NioSocketImpl.timedRead(java.base at 15-ea
> /NioSocketImpl.java:285)
>         at sun.nio.ch.NioSocketImpl.implRead(java.base at 15-ea
> /NioSocketImpl.java:309)
>         at sun.nio.ch.NioSocketImpl.read(java.base at 15-ea
> /NioSocketImpl.java:350)
>         at sun.nio.ch.NioSocketImpl$1.read(java.base at 15-ea
> /NioSocketImpl.java:803)
>         at java.net.Socket$SocketInputStream.read(java.base at 15-ea
> /Socket.java:981)
>         at java.io.BufferedInputStream.fill(java.base at 15-ea
> /BufferedInputStream.java:244)
>         at java.io.BufferedInputStream.read(java.base at 15-ea
> /BufferedInputStream.java:263)
>         - locked <0x0000000602e19470> (a java.io.BufferedInputStream)
>         at java.io.FilterInputStream.read(java.base at 15-ea
> /FilterInputStream.java:82)
>         at sun.rmi.transport.tcp.TCPTransport.handleMessages(java.rmi at 15-ea
> /TCPTransport.java:569)
>         at
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(java.rmi at 15-ea
> /TCPTransport.java:828)
>         at
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(java.rmi at 15-ea
> /TCPTransport.java:705)
>         at
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda$686/0x0000000800da3998.run(java.rmi at 15-ea/Unknown
> Source)
>         at java.security.AccessController.executePrivileged(java.base at 15-ea
> /AccessController.java:753)
>         at java.security.AccessController.doPrivileged(java.base at 15-ea
> /AccessController.java:391)
>         at
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(java.rmi at 15-ea
> /TCPTransport.java:704)
>         at
> java.util.concurrent.ThreadPoolExecutor.runWorker(java.base at 15-ea
> /ThreadPoolExecutor.java:1130)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base at 15-ea
> /ThreadPoolExecutor.java:630)
>         at java.lang.Thread.run(java.base at 15-ea/Thread.java:832)
>
>    Locked ownable synchronizers:
>         - <0x0000000602e19708> (a
> java.util.concurrent.ThreadPoolExecutor$Worker)
>         - <0x0000000602e59038> (a
> java.util.concurrent.locks.ReentrantLock$NonfairSync)
>
> "RMI Scheduler(0)" #29 daemon prio=5 os_prio=0 cpu=0.00ms elapsed=180.86s
> tid=0x000001e34a462160 nid=0x1df0 waiting on condition  [0x000000340fcfe000]
>    java.lang.Thread.State: TIMED_WAITING (parking)
>         at jdk.internal.misc.Unsafe.park(java.base at 15-ea/Native Method)
>         - parking to wait for  <0x0000000602e1af00> (a
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>         at java.util.concurrent.locks.LockSupport.parkNanos(java.base at 15-ea
> /LockSupport.java:252)
>         at
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(java.base at 15-ea
> /AbstractQueuedSynchronizer.java:1661)
>         at
> java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base at 15-ea
> /ScheduledThreadPoolExecutor.java:1182)
>         at
> java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base at 15-ea
> /ScheduledThreadPoolExecutor.java:899)
>         at java.util.concurrent.ThreadPoolExecutor.getTask(java.base at 15-ea
> /ThreadPoolExecutor.java:1056)
>         at
> java.util.concurrent.ThreadPoolExecutor.runWorker(java.base at 15-ea
> /ThreadPoolExecutor.java:1116)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base at 15-ea
> /ThreadPoolExecutor.java:630)
>         at java.lang.Thread.run(java.base at 15-ea/Thread.java:832)
>
>    Locked ownable synchronizers:
>         - None
>
> "JMX server connection timeout 30" #30 daemon prio=5 os_prio=0 cpu=0.00ms
> elapsed=180.86s tid=0x000001e34a45f610 nid=0x2fe8 in Object.wait()
>  [0x000000340fdff000]
>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
>         at java.lang.Object.wait(java.base at 15-ea/Native Method)
>         - waiting on <no object reference available>
>         at
> com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(java.management at 15-ea
> /ServerCommunicatorAdmin.java:171)
>         - locked <0x0000000602e1ca08> (a [I)
>         at java.lang.Thread.run(java.base at 15-ea/Thread.java:832)
>
>    Locked ownable synchronizers:
>         - None
>
> "VM Thread" os_prio=2 cpu=515.63ms elapsed=341.79s tid=0x000001e349031eb0
> nid=0x540 runnable
>
> "GC Thread#0" os_prio=2 cpu=328.13ms elapsed=341.80s
> tid=0x000001e31c218710 nid=0x19e8 runnable
>
> "GC Thread#1" os_prio=2 cpu=265.63ms elapsed=341.53s
> tid=0x000001e349b353d0 nid=0x1cc4 runnable
>
> "GC Thread#2" os_prio=2 cpu=218.75ms elapsed=340.37s
> tid=0x000001e349b350a0 nid=0x1ddc runnable
>
> "GC Thread#3" os_prio=2 cpu=187.50ms elapsed=338.82s
> tid=0x000001e349b35700 nid=0x4a48 runnable
>
> "GC Thread#4" os_prio=2 cpu=140.63ms elapsed=338.82s
> tid=0x000001e349b340b0 nid=0x32e8 runnable
>
> "GC Thread#5" os_prio=2 cpu=156.25ms elapsed=338.82s
> tid=0x000001e349b35a30 nid=0x38cc runnable
>
> "GC Thread#6" os_prio=2 cpu=171.88ms elapsed=338.82s
> tid=0x000001e349b35d60 nid=0x3ed0 runnable
>
> "G1 Main Marker" os_prio=2 cpu=0.00ms elapsed=341.80s
> tid=0x000001e31c229930 nid=0x21c runnable
>
> "G1 Conc#0" os_prio=2 cpu=0.00ms elapsed=341.80s tid=0x000001e31c22a5a0
> nid=0x3920 runnable
>
> "G1 Refine#0" os_prio=2 cpu=0.00ms elapsed=341.80s tid=0x000001e31c253f10
> nid=0x1f84 runnable
>
> "G1 Young RemSet Sampling" os_prio=2 cpu=0.00ms elapsed=341.80s
> tid=0x000001e31c254b90 nid=0x27ac runnable
>
> "VM Periodic Task Thread" os_prio=2 cpu=15.63ms elapsed=341.76s
> tid=0x000001e349b39710 nid=0x838 waiting on condition
>
> JNI global refs: 33, weak refs: 0
>
> --
> Aaron Scott-Boddendijk
>
> On Tue, Jun 16, 2020 at 10:15 AM Robert Field <robert.field at oracle.com>
> wrote:
>
>> Make that jps/jstack
>>
>> -R
>>
>> On 2020-06-15 15:12, Robert Field wrote:
>> > Thanks for the report.
>> >
>> > What, if anything, is the Java stack for this thread (jps)?
>> >
>> > -Robert
>> >
>> >
>> > On 2020-06-15 14:41, Aaron Scott-Boddendijk wrote:
>> >>   System:
>> >> * Windows 10
>> >> * Powershell
>> >>
>> >> When I start JShell, without executing anything, a CPU core is always
>> at
>> >> 100% (a single thread though I haven't identified what it's doing).
>> >>
>> >> The thread stack is as follows (with only the last two items sometimes
>> >> change - but I don't know the internals of the JVM to know if this
>> >> useful
>> >> or significant):
>> >>
>> >> ntoskrnl.exe!KeSynchronizeExecution+0x5b46
>> >> ntoskrnl.exe!KeWaitForSingleObject+0x1c2d
>> >> ntoskrnl.exe!KeWaitForSingleObject+0xab4
>> >> ntoskrnl.exe!KeWaitForSingleObject+0x255
>> >> ntoskrnl.exe!RtlClearBitsEx+0x15a7
>> >> ntoskrnl.exe!KeWaitForSingleObject+0x3828
>> >> ntoskrnl.exe!KeSynchronizeExecution+0x3120
>> >> jvm.dll!c2v_notifyCompilerInliningEvent+0x201797
>> >>
>> >> The JDK 14 version of JShell does not have this issue but several of
>> the
>> >> recent JDK 15 builds have done this.
>> >>
>> >> --
>> >> Aaron Scott-Boddendijk
>>
>


More information about the kulla-dev mailing list