Skip to main content
Skip table of contents

Workbench throwing java.net.BindException: Address already in use exception

Problem

Workbench is not able to start and java.net.BindException is found in mci.log

CODE
java.lang.RuntimeException: java.io.IOException: Failed to bind to 0.0.0.0/0.0.0.0:8080
	at org.eclipse.jetty.setuid.SetUIDListener.lifeCycleStarting(SetUIDListener.java:229)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.setStarting(AbstractLifeCycle.java:205)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
	at com.datamigrators.mettle.setup.SetupServerCommand$SetupImpl.run(SetupServerCommand.java:175)
	at com.datamigrators.mettle.setup.SetupServerCommand.run(SetupServerCommand.java:99)
	at com.datamigrators.mettle.setup.SetupServerCommand.run(SetupServerCommand.java:71)
	at com.datamigrators.mettle.setup.StartServerCommand.run(StartServerCommand.java:35)
	at io.dropwizard.cli.Cli.run(Cli.java:78)
	at io.dropwizard.Application.run(Application.java:94)
	at com.datamigrators.mettle.MettleApplication.main(MettleApplication.java:69)
Caused by: java.io.IOException: Failed to bind to 0.0.0.0/0.0.0.0:8080
	at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:349)
	at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:310)
	at org.eclipse.jetty.setuid.SetUIDListener.lifeCycleStarting(SetUIDListener.java:216)
	... 9 more
Caused by: java.net.BindException: Address already in use
	at sun.nio.ch.Net.bind0(Native Method)
	at sun.nio.ch.Net.bind(Net.java:461)
	at sun.nio.ch.Net.bind(Net.java:453)
	at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:222)
	at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:85)
	at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:344)
	... 11 more

Cause

The default port of workbench is 8080/8081. If another process is already using this port, this causes the java.net.BindException.

Resolution

Record the port mentioned in the error entry in mci.log then identify processes that are using the same port by running netstat (on *nix systems). Example:

CODE
sudo netstat -plten | grep 8080

( sudo may or may not be required depending on whether your account can run netstat)

This will return results like

CODE
tcp6       0      0 :::8080                 :::*                    LISTEN      0          31457      1396/java

Use the output of netstat to find more details about the process using the same port by searching the running processes via ps. Example:

CODE
ps -ef | grep 1396

You can either change the port of the conflicting process or change the ports of MettleCI Workbench to resolve the problem.

To change the port of Workbench, refer to Configuring MettleCI Workbench to use a Custom Port Number

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.