Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 368259

Summary: Windows slaves do not disconnect and reconnect properly
Product: [Technology] Hudson Reporter: Geoff Waymark <mygwaymark>
Component: CoreAssignee: Bob Foster <bobfoster>
Status: ASSIGNED --- QA Contact:
Severity: normal    
Priority: P3 CC: desjardinsd, duncan.r.mills, winston.prakash
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Windows 7   
Whiteboard: candidate-3.1.1

Description Geoff Waymark CLA 2012-01-10 10:05:50 EST
Build Identifier: #40 Eclipse build

I created a windows slave controlled via JNLP.
Then disconnected the node but the slave reconnected and was available after the following error was reported.


java.net.SocketException: socket closed
	at java.net.SocketInputStream.socketRead0(Native Method)
	at java.net.SocketInputStream.read(Unknown Source)
	at java.net.SocketInputStream.read(Unknown Source)
	at java.io.BufferedInputStream.fill(Unknown Source)
	at java.io.BufferedInputStream.read(Unknown Source)
	at java.io.ObjectInputStream$PeekInputStream.peek(Unknown Source)
	at java.io.ObjectInputStream$BlockDataInputStream.peek(Unknown Source)
	at java.io.ObjectInputStream$BlockDataInputStream.peekByte(Unknown Source)
	at java.io.ObjectInputStream.readObject0(Unknown Source)
	at java.io.ObjectInputStream.readObject(Unknown Source)
	at hudson.remoting.Channel$ReaderThread.run(Channel.java:1017)


Reproducible: Always
Comment 1 Bob Foster CLA 2013-03-08 19:00:03 EST
"disconnected the node" how?

When I take the node offline (Mark this node as temporarily offline) I don't see anything in the Hudson log. Nor when I mark it online.

Sorry to be dense, but what are the steps to reproduce?

FYI: When I kill the JNLP process on Windows, I see an entirely different exception  in Hudson:

WARNING: Connection #9 for + Windows terminated
java.io.IOException: Unexpected termination of the channel
	at hudson.remoting.Channel$ReaderThread.run(Channel.java:1023)
Caused by: java.io.EOFException
	at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2553)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1296)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
	at hudson.remoting.Channel$ReaderThread.run(Channel.java:1017)

Not sure that's a bug.
Comment 2 Geoff Waymark CLA 2013-04-08 12:33:06 EDT
With the schedule tight to the release of Kepler we are concentrating on new features in Hudson. 

The bugs assigned for fixing in 3.0.2 will now be fixed as part of the 3.1.0 release due June 26th.

Please raise anything you think to be too important to wait by adding a comment to the bug.
Comment 3 Duncan Mills CLA 2013-08-23 07:33:43 EDT
Bulk deferral to 3.1.1
Comment 4 Geoff Waymark CLA 2013-11-06 11:00:35 EST
This is about disconnect rather than mark offline.

On the slave page there is a disconnect option in the action list on the left had side of the page, if you press this the slave is disconnected temporarily then reconnected again.

Mark Offline should allow current jobs to complete then take the slave down.
Disconnect should trash the slave immediately and not restart it.

See http://comments.gmane.org/gmane.comp.java.hudson.user/41641 for more details.