Actually now that I think about it more afterDisconnect is synchronized that means they are all likely blocking because a single one is blocking somewhere else in that method. I find this thread to be the only one in afterDisconnect not BLOCKING on line 1187:

"Channel reader thread: bare-trusty-rax-iad-1330909" prio=5 WAITING
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:503)
com.trilead.ssh2.channel.FifoBuffer.read(FifoBuffer.java:212)
com.trilead.ssh2.channel.Channel$Output.read(Channel.java:127)
com.trilead.ssh2.channel.ChannelManager.getChannelData(ChannelManager.java:946)
com.trilead.ssh2.channel.ChannelInputStream.read(ChannelInputStream.java:58)
com.trilead.ssh2.SFTPv3Client.readBytes(SFTPv3Client.java:215)
com.trilead.ssh2.SFTPv3Client.receiveMessage(SFTPv3Client.java:240)
com.trilead.ssh2.SFTPv3Client.init(SFTPv3Client.java:864)
com.trilead.ssh2.SFTPv3Client.<init>(SFTPv3Client.java:108)
com.trilead.ssh2.SFTPv3Client.<init>(SFTPv3Client.java:119)
hudson.plugins.sshslaves.SSHLauncher.afterDisconnect(SSHLauncher.java:1213)
hudson.slaves.SlaveComputer$2.onClosed(SlaveComputer.java:443)
hudson.remoting.Channel.terminate(Channel.java:822)
hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:69)

Which leads me to two questions. 1. Why would the above hang indefinitely? and 2 does this method really need to be synchronized? could we synchronize around access to data that actually needs to be synchronized instead?

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira

--
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to