[
https://issues.apache.org/jira/browse/KARAF-5318?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16178591#comment-16178591
]
Cetra Free commented on KARAF-5318:
-----------------------------------
I've done a jstack dump of before and after, and it looks like some of the
threads relating to the jline library go away. It could be an exception being
thrown somewhere.
Steps to replicate for me are (although intermittent):
* Open karaf terminal
* Run {{log:tail}}
* Resize the terminal (I'm on OSX)
* Press enter a few times
* Wait a minute
* Press enter again
* Rinse and repeat pressing enter and waiting
For reference, the following threads disappear after its locked, but the
console session stays open and unresponsive:
{code}
"Karaf SSH terminal non blocking reader thread" #276 daemon prio=5 os_prio=0
tid=0x00007fbdb000b800 nid=0x1c77 in Object.wait() [0x00007fbfead77000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.jline.utils.NonBlockingReader.run(NonBlockingReader.java:257)
- locked <0x00000000fe890178> (a org.jline.utils.NonBlockingReader)
at java.lang.Thread.run(Thread.java:748)
Locked ownable synchronizers:
- None
"pool-29-thread-6" #275 prio=5 os_prio=0 tid=0x00007fbd90008800 nid=0x1c76
waiting on condition [0x00007fbfeb17b000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000fe898198> (a
java.util.concurrent.SynchronousQueue$TransferStack)
at
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
at
java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
at
java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:941)
at
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1073)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Locked ownable synchronizers:
- None
"pool-29-thread-5" #274 prio=5 os_prio=0 tid=0x00007fbd88002000 nid=0x1c75
waiting on condition [0x00007fbfeab75000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000fe898198> (a
java.util.concurrent.SynchronousQueue$TransferStack)
at
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
at
java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
at
java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:941)
at
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1073)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Locked ownable synchronizers:
- None
"pool-29-thread-4" #273 prio=5 os_prio=0 tid=0x00007fbd8c002800 nid=0x1c74
waiting on condition [0x00007fbfeb7fe000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000fe898198> (a
java.util.concurrent.SynchronousQueue$TransferStack)
at
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
at
java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
at
java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:941)
at
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1073)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Locked ownable synchronizers:
- None
"pool-29-thread-3" #272 prio=5 os_prio=0 tid=0x00007fbd9c002800 nid=0x1c73
waiting on condition [0x00007fbfeac76000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000fe898198> (a
java.util.concurrent.SynchronousQueue$TransferStack)
at
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
at
java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
at
java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:941)
at
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1073)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Locked ownable synchronizers:
- None
- locked <0x00000000fe8983a0> (a org.apache.karaf.log.command.LogTail)
- <0x00000000fe8984d8> (a
java.util.concurrent.ThreadPoolExecutor$Worker)
- parking to wait for <0x00000000fe8906d0> (a
java.util.concurrent.FutureTask)
- <0x00000000fe890740> (a
java.util.concurrent.ThreadPoolExecutor$Worker)
- locked <0x00000000fe8a0340> (a
org.apache.felix.gogo.runtime.CommandSessionImpl$JobImpl)
"org.apache.karaf.shell.ssh.SshTerminal@115e5abb input pump thread" #268 daemon
prio=5 os_prio=0 tid=0x00007fbe3800b800 nid=0x1c6d waiting on condition
[0x00007fbfea670000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000fe8b0198> (a
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
at
org.apache.sshd.common.channel.ChannelPipedInputStream.read(ChannelPipedInputStream.java:135)
at
org.apache.sshd.common.channel.ChannelPipedInputStream.read(ChannelPipedInputStream.java:100)
- locked <0x00000000fe8b01e8> (a [B)
at
org.jline.terminal.impl.ExternalTerminal.pump(ExternalTerminal.java:64)
at
org.jline.terminal.impl.ExternalTerminal$$Lambda$175/28939766.run(Unknown
Source)
at java.lang.Thread.run(Thread.java:748)
Locked ownable synchronizers:
- None
"sshd-SshServer[6b05841]-timer-thread-1" #114 daemon prio=5 os_prio=0
tid=0x00007fbe74092800 nid=0x12d0 runnable [0x00007fbff29ec000]
"C2 CompilerThread5" #10 daemon prio=9 os_prio=0 tid=0x00007fc0540ff800
nid=0x125c runnable [0x0000000000000000]
JNI global references: 4861
{code}
> log:tail sometimes hangs and freezes terminal
> ---------------------------------------------
>
> Key: KARAF-5318
> URL: https://issues.apache.org/jira/browse/KARAF-5318
> Project: Karaf
> Issue Type: Bug
> Affects Versions: 4.1.2
> Reporter: Cetra Free
>
> Sometimes when using log:tail the terminal freezes completely, and you can't
> ctrl + c out of it.
> I'm not sure what the cause is, I normally have a lot of debug messages going.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)