Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Jenkins won't start: Failed to listen on port 8080

Tags:

jenkins

I am using Jenkins and since yesterday it has stopped working. I looked at the Windows Service and it had been stopped (somehow). I restarted it but it stopped immediately after.

I have looked in the directory where the service is running from (C:\Program Files\Jenkins) and opened the log file in there called jenkins.out.log. This is what it says

Running from: C:\Program Files\Jenkins\jenkins.war
webroot: EnvVars.masterEnvVars.get("JENKINS_HOME")
[Winstone 2012/05/17 10:14:42] - Beginning extraction from war file
Jenkins home directory: C:\Program Files\Jenkins found at: EnvVars.masterEnvVars.get("JENKINS_HOME")
[Winstone 2012/05/17 10:14:44] - Winstone shutdown successfully
[Winstone 2012/05/17 10:14:44] - Container startup failed
java.io.IOException: Failed to start a listener: winstone.HttpListener
    at winstone.Launcher.spawnListener(Launcher.java:250)
    at winstone.Launcher.<init>(Launcher.java:202)
    at winstone.Launcher.main(Launcher.java:398)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at Main._main(Main.java:268)
    at Main.main(Main.java:96)
Caused by: java.io.IOException: Failed to listen on port 8080
    at winstone.HttpListener.getServerSocket(HttpListener.java:117)
    at winstone.HttpListener.start(HttpListener.java:70)
    at winstone.Launcher.spawnListener(Launcher.java:241)
    ... 8 more
Caused by: java.net.BindException: Address already in use: JVM_Bind
    at java.net.PlainSocketImpl.socketBind(Native Method)
    at java.net.PlainSocketImpl.bind(Unknown Source)
    at java.net.ServerSocket.bind(Unknown Source)
    at java.net.ServerSocket.<init>(Unknown Source)
    at java.net.ServerSocket.<init>(Unknown Source)
    at winstone.HttpListener.getServerSocket(HttpListener.java:112)
    ... 10 more
like image 280
Sachin Kainth Avatar asked May 17 '12 09:05

Sachin Kainth


4 Answers

Fixed - for anyone else who might have this problem in future. I used this Techrepublic article, which boils down to

netstat -a -n -o | grep "8080"

to find out how to find out which process was using port 8080 and then killed it in Task Manager and then restarted Jenkins and all was well (so far!).

like image 198
Sachin Kainth Avatar answered Oct 20 '22 15:10

Sachin Kainth


To start Jenkins on WinStone container(default container bundled with Jenkins war) use the following command:

java -jar jenkins.war --ajp13Port=-1 --httpPort=9090

Also, to check if a certain port is being used by any application use in Windows:

netstat -ano | find "9090"

Its better to run Jenkins on Tomcat.

like image 26
AnirbanDebnath Avatar answered Oct 20 '22 16:10

AnirbanDebnath


As in Error Stack Trace it is mentioned that port 8080 is already in use, Check where port 8080 is used or as alternative change the Jenkins Port in Jenkins.xml to some other aviable port.

like image 4
Sanjay Singh Avatar answered Oct 20 '22 16:10

Sanjay Singh


putting this here in case it helps someone --I had the same initial problem - port 8080 blocked.

If you can believe this --windows store was running on port 8080 and blocking my Jenkins port. grrr!

Steps to remedy:

1) used @HenryHey's answer above to find the PID: netstat -a -n -o | grep "8080"

2) used sysinternals proc explorer to find what program was registered to the PID

3) used the following command (found article by @Joy-Qiao - thanks) to remove windows store app (use powershell): Get-AppxPackage windowsstore | Remove-AppxPackage

Note: this was a rather drastic approach to clearing port 8080 - a better option would be to just move Jenkins to another port but I was feeling a bit draconic.

like image 2
user735387 Avatar answered Oct 20 '22 14:10

user735387