JShell uses 100% of one core all the time (JDK 15 Build 27)
Christian Stein
sormuras at gmail.com
Mon Jul 13 03:05:01 UTC 2020
Seems like "read line" from "jline" is underlying reason:
Thread-2 [31] (RUNNABLE)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await
line: 1749
jdk.internal.org.jline.utils.NonBlockingPumpReader.read line: 77
jdk.internal.org.jline.utils.NonBlockingReader.read line: 57
jdk.internal.org.jline.utils.NonBlocking$NonBlockingReaderInputStream.read
line: 104
jdk.internal.org.jline.utils.NonBlockingInputStream.read line: 36
jdk.internal.jshell.tool.StopDetectingInputStream.lambda$setInputStream$0
line: 66
jdk.internal.jshell.tool.StopDetectingInputStream$$Lambda$347/0x0000000800cff330.run
line: not available
java.lang.Thread.run line: 832
It produces a constant high CPU usage and allocates a lot of RAM per second.
Thread Name Thread State Blocked Count Total CPU Usage Deadlocked Allocated
Memory
Thread-2 RUNNABLE 1 0.06252084028009336 Not Enabled 196198305136 B
On Mon, Jul 13, 2020 at 4:52 AM Christian Stein <sormuras at gmail.com> wrote:
> Hi Aaron,
>
> I observe the same behaviour of JShell 15 build 30.
>
> Here, the 100% CPU workload is split on to 3-4 logical processors.
> Grabbed an animated GIF of "jshell.exe -- /exit" session at [0].
> To me, it looks like a loop is running wild, w/o a Thread.yield()/.sleep()
> call.
>
> Microsoft Windows [Version 10.0.19041.329]
>
> openjdk 15-ea 2020-09-15
> OpenJDK Runtime Environment (build 15-ea+30-1476)
> OpenJDK 64-Bit Server VM (build 15-ea+30-1476, mixed mode, sharing)
>
> Cheers,
> Christian
>
> [0]:
> https://drive.google.com/file/d/1KOQO5B9WrM4C43K3AB7H9VVPuh9hdCOe/view?usp=sharing
>
>
> On Mon, Jul 13, 2020 at 4:24 AM Aaron Scott-Boddendijk <talden at gmail.com>
> wrote:
>
>> This still exists in JDK 15 build 31.
>>
>> Is any other Windows user able to reproduce this? I have two machines, one
>> laptop and one desktop that show a CPU thread constantly @ 100% just by
>> starting JShell. For the desktop machine that's not a major issue but for
>> the laptop this spins up the fans and eats the battery.
>>
>> JShell in JDK 14 is fine.
>>
>> I've yet to hear of any other user confirming this issue.
>>
>> --
>> Aaron Scott-Boddendijk
>>
>>
>> On Fri, Jun 26, 2020 at 2:00 PM Aaron Scott-Boddendijk <talden at gmail.com>
>> wrote:
>>
>> > 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