This document attempts to explain what information we need to fix the build hang problem, if you experience one.
- Go to http://yourserver/threadDump and obtain the thread dump of the Hudson server. If the build is stuck somewhere, the thread call stacks displayed here would help. There's one to one correspondence between the executor and a thread, so say if your build is carried out by executor "foobar #5", look for a thread with this name (but really, if you send it to us, please just send all the thread dumps)
- If the build is running on a slave called 'xyz', go to http://yourserver/hudson/computer/xyz/systemInfo and obtain the thread dump of the slave agent. If the build is stuck due to some issue on the agent side, this would tell us where it is.
- I/O in Java is fundamentally synchronous and non-interruptible. So if a build is blocked inside Hudson while performing an I/O (for example, reading from the network), there's just no way to kill such a thread. Check the thread dump in the 1st step and see if that's the case. That said, even if you find this to be the case, please report it to us so that we know where this problem tends to happen (which might allow us to replace such non-interruptible I/O with an interruptible I/O.)
If you find the hang issues that you believe is a bug in Hudson, please open a bug in the bug tracker, and attach those thread dump information. If someone has already filed an issue, please just add your thread dumps as additional attachments, as more information helps us resolve the problem quicker.