On Wednesday, May 7, 2014 1:47:59 AM UTC-7, nigelm wrote: > > > >> >>> >>> From your reply, I am even more concerned with disproportionally high >>> number of the blocked threads (120) compare to offline slaves (2 at the >>> time), as it sounds like it should be closer to 1:1? >>> >> >> Yes, it sounds like there is a race condition between the post disconnect >> tasks and the reconnect tasks: >> https://github.com/jenkinsci/ssh-slaves-plugin/blob/ssh-slaves-1.6/src/main/java/hudson/plugins/sshslaves/SSHLauncher.java#L1152is >> blocking until the slave is connected... but the slave cannot connect >> until the disconnect tasks are complete... >> >> >>> >>> > Do you have 'dead' slaves, and what's your logging configuration like? > > Some slaves appear offline in Jenkins periodically. (The instances are accessible, but Jenkins cannot to connect to it.)
Our logging configuration: winstone - INFO org.apache.sshd - WARNING (default) - INFO I'm tracking down a similar problem, in that our Jenkins instance (which > isn't that large) slows to the state of the UI timing out. > > Not sure if it is the same problem. In our case, the Jenkins server is still responsive, only the SSH slaves are offline. (We did experience a problem with Jenkins 1.562 due to https://issues.jenkins-ci.org/browse/JENKINS-22734. Causing the server to run out of memory and UI to become non-responsive and eventual server hang. Downgrade back to 1.559 seems to solve it. The monitoring plugin helps debug some of these issues.) We also also see occasionally "Proxy Error" when viewing the live build log and viewing the summary, but this is not an SSH issue. java.nio.channels.ClosedChannelException at sun.nio.ch.SocketChannelImpl.ensureWriteOpen(SocketChannelImpl.java:265) at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:474) at hudson.remoting.SocketChannelStream$2.write(SocketChannelStream.java:62) at java.nio.channels.Channels.writeFullyImpl(Channels.java:78) at java.nio.channels.Channels.writeFully(Channels.java:101) at java.nio.channels.Channels.access$000(Channels.java:61) at java.nio.channels.Channels$1.write(Channels.java:174) at java.io.ObjectOutputStream$BlockDataOutputStream.drain(ObjectOutputStream.java:1876) at java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode(ObjectOutputStream.java:1785) at java.io.ObjectOutputStream.writeNonProxyDesc(ObjectOutputStream.java:1285) at java.io.ObjectOutputStream.writeClassDesc(ObjectOutputStream.java:1230) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1426) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177) at java.io.ObjectOutputStream.writeFatalException(ObjectOutputStream.java:1576) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:350) at hudson.remoting.Command.writeTo(Command.java:83) at hudson.remoting.ClassicCommandTransport.write(ClassicCommandTransport.java:51) at hudson.remoting.Channel.send(Channel.java:545) at hudson.remoting.Request.callAsync(Request.java:208) at hudson.remoting.Channel.callAsync(Channel.java:766) at hudson.node_monitors.AbstractAsyncNodeMonitorDescriptor.monitor(AbstractAsyncNodeMonitorDescriptor.java:76) at hudson.node_monitors.AbstractNodeMonitorDescriptor$Record.run(AbstractNodeMonitorDescriptor.java:280) java.nio.channels.ClosedChannelException at sun.nio.ch.SocketChannelImpl.ensureWriteOpen(SocketChannelImpl.java:265) at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:474) at hudson.remoting.SocketChannelStream$2.write(SocketChannelStream.java:62) at java.nio.channels.Channels.writeFullyImpl(Channels.java:78) at java.nio.channels.Channels.writeFully(Channels.java:101) at java.nio.channels.Channels.access$000(Channels.java:61) at java.nio.channels.Channels$1.write(Channels.java:174) at java.io.ObjectOutputStream$BlockDataOutputStream.drain(ObjectOutputStream.java:1876) at java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode(ObjectOutputStream.java:1785) at java.io.ObjectOutputStream.writeNonProxyDesc(ObjectOutputStream.java:1285) at java.io.ObjectOutputStream.writeClassDesc(ObjectOutputStream.java:1230) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1426) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177) at java.io.ObjectOutputStream.writeFatalException(ObjectOutputStream.java:1576) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:350) at hudson.remoting.Command.writeTo(Command.java:83) at hudson.remoting.ClassicCommandTransport.write(ClassicCommandTransport.java:51) at hudson.remoting.Channel.send(Channel.java:545) at hudson.remoting.Request.callAsync(Request.java:208) at hudson.remoting.Channel.callAsync(Channel.java:766) at hudson.node_monitors.AbstractAsyncNodeMonitorDescriptor.monitor(AbstractAsyncNodeMonitorDescriptor.java:76) at hudson.node_monitors.AbstractNodeMonitorDescriptor$Record.run(AbstractNodeMonitorDescriptor.java:280) -- You received this message because you are subscribed to the Google Groups "Jenkins Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.