Re: [JSch-users] Issue: One blocking channel blocks all Session communication
Status: Alpha
Brought to you by:
ymnk
From: B. S. S. <sc...@sm...> - 2012-02-07 20:27:26
|
Hi, please disregard my last email. I had un-commented the e.printStackTrace() after the Session loop for diagnostic reasons. So, those traces are benign, although it is still a mystery why my Session ended abruptly in the one case. So, I continued my testing of rc3-flowcontrol under very heavy load, and eventually crashed with OutOfMemory Exceptions: Exception in thread "PortWatcher Thread for 127.0.0.1" java.lang.OutOfMemoryError: unable to create new native thread at java.lang.Thread.start0(Native Method) at java.lang.Thread.start(Thread.java:640) at com.jcraft.jsch.ChannelDirectTCPIP.connect(ChannelDirectTCPIP.java:70) at com.jcraft.jsch.PortWatcher.run(PortWatcher.java:176) at java.lang.Thread.run(Thread.java:662) I did a "jstack" on the JVM to get a full thread dump. What I found was that there were 1,600+ threads all in the current state: "Thread-934145" prio=10 tid=0x00000000578a0000 nid=0x1a2b in Object.wait() [0x0000000069780000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:485) at com.jcraft.jsch.Channel$3.run(Channel.java:470) - locked <0x00000007b8e8fdb8> (a [B) at java.lang.Thread.run(Thread.java:662) So I assume these threads are not being cleaned up properly? - Scott On 2/6/2012 6:09 PM, B. Scott Smith wrote: > This ran much better. However, under heavy load, I was able to cause > the following error, which ended my whole Session. On Windows, I get: > > java.net.SocketException: Connection reset > at java.net.SocketInputStream.read(Unknown Source) > at com.jcraft.jsch.IO.getByte(IO.java:82) > at com.jcraft.jsch.Session.read(Session.java:853) > at com.jcraft.jsch.Session.run(Session.java:1289) > at java.lang.Thread.run(Unknown Source) > |