[ 
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)

Reply via email to