Configuring Hudson CI server behind firewall

leena

September 2, 2010

When firewall was introduced within our local network, the Hudson server stopped working with the error:

javax.jmdns.impl.tasks.Prober run WARNING: run() exception java.io.IOException: Operation not permitted at java.net.PlainDatagramSocketImpl.send(Native Method) at java.net.DatagramSocket.send(DatagramSocket.java:625) at javax.jmdns.impl.JmDNSImpl.send(JmDNSImpl.java:1200) at javax.jmdns.impl.tasks.Prober.run(Prober.java:163) at java.util.TimerThread.mainLoop(Timer.java:512) at java.util.TimerThread.run(Timer.java:462)

And when you access hudson in browser, it stays with the message “Please wait while Hudson is getting ready to work….” forever.

Initially I thought the problem might be because the ports which are required by the Hudson server i.e. 8080 and 5353, were not opened in the Firewall. I opened those, but the error remained.

After googling for sometime, I could find similar issues being reported here: http://issues.hudson-ci.org/browse/HUDSON-7129?page=com.atlassian.streams.streams-jira-plugin:activity-stream-issue-tab

And the issue got fixed by adding

-Dhudson.DNSMultiCast.disabled=true

to the java command as follows:

java -Dhudson.DNSMultiCast.disabled=true -jar hudson.war --httpPort=8080