ContainerSolutions / minimesos

The experimentation and testing tool for Apache Mesos - NO LONGER MAINTANED!
https://www.minimesos.org
Apache License 2.0
428 stars 61 forks source link

Stacktrace when Docker socket is not passed to minimesos Docker image #379

Closed frankscholten closed 8 years ago

frankscholten commented 8 years ago

Add user-friendly error message

Exception in thread "main" javax.ws.rs.ProcessingException: org.newsclub.net.unix.AFUNIXSocketException: No such file or directory (socket: /var/run/docker.sock)
    at com.github.dockerjava.jaxrs.connector.ApacheConnector.apply(ApacheConnector.java:490)
    at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:246)
    at org.glassfish.jersey.client.JerseyInvocation$3.call(JerseyInvocation.java:705)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:228)
    at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:424)
    at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:701)
    at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:417)
    at org.glassfish.jersey.client.JerseyInvocation$Builder.get(JerseyInvocation.java:313)
    at com.github.dockerjava.jaxrs.ListImagesCmdExec.execute(ListImagesCmdExec.java:36)
    at com.github.dockerjava.jaxrs.ListImagesCmdExec.execute(ListImagesCmdExec.java:17)
    at com.github.dockerjava.jaxrs.AbstrSyncDockerCmdExec.exec(AbstrSyncDockerCmdExec.java:24)
    at com.github.dockerjava.core.command.AbstrDockerCmd.exec(AbstrDockerCmd.java:33)
    at com.containersol.minimesos.container.AbstractContainer.imageExists(AbstractContainer.java:169)
    at com.containersol.minimesos.container.AbstractContainer.pullImage(AbstractContainer.java:182)
    at com.containersol.minimesos.mesos.ZooKeeperContainer.pullImage(ZooKeeperContainer.java:39)
    at com.containersol.minimesos.container.AbstractContainer.start(AbstractContainer.java:75)
    at com.containersol.minimesos.cluster.MesosCluster.lambda$start$0(MesosCluster.java:120)
    at java.util.ArrayList.forEach(ArrayList.java:1249)
    at com.containersol.minimesos.cluster.MesosCluster.start(MesosCluster.java:120)
    at com.containersol.minimesos.cluster.MesosCluster.start(MesosCluster.java:106)
    at com.containersol.minimesos.main.CommandUp.execute(CommandUp.java:142)
    at com.containersol.minimesos.main.Main.run(Main.java:121)
    at com.containersol.minimesos.main.Main.main(Main.java:52)
Caused by: org.newsclub.net.unix.AFUNIXSocketException: No such file or directory (socket: /var/run/docker.sock)
    at org.newsclub.net.unix.NativeUnixSocket.connect(Native Method)
    at org.newsclub.net.unix.AFUNIXSocketImpl.connect(AFUNIXSocketImpl.java:134)
    at org.newsclub.net.unix.AFUNIXSocket.connect(AFUNIXSocket.java:97)
    at com.github.dockerjava.jaxrs.ApacheUnixSocket.connect(ApacheUnixSocket.java:64)
    at com.github.dockerjava.jaxrs.UnixConnectionSocketFactory.connectSocket(UnixConnectionSocketFactory.java:73)
    at org.apache.http.impl.conn.HttpClientConnectionOperator.connect(HttpClientConnectionOperator.java:125)
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:319)
    at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:363)
    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:219)
    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:195)
    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:86)
    at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:108)
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72)
    at com.github.dockerjava.jaxrs.connector.ApacheConnector.apply(ApacheConnector.java:443)
    ... 24 more
sadovnikov commented 8 years ago

What do you do to get this error? Example, please

frankscholten commented 8 years ago

Hmm I can't reproduce this one anymore. I do get this however:

frank@franktop:~$ docker run containersol/minimesos up
Exception in thread "main" java.lang.NullPointerException
    at com.containersol.minimesos.main.Main.main(Main.java:57)
sashkachan commented 8 years ago

I think the issue is running docker-machine and not having proper environment set, or running from IDE where you can't set env for gradle tasks. Partially resolved https://github.com/ContainerSolutions/minimesos/pull/388

sadovnikov commented 8 years ago

Having NPE is bad anyway. However I'm getting

vikmac:mini-mesos vik$ ./bin/minimesos up
Please make sure docker is set up correctly

@frankscholten, can you reproduce NPE (or another bug) on Linux?

sadovnikov commented 8 years ago

@frankscholten, funny enough I got NPE myself when variables are set ;-) Looking into this

sadovnikov commented 8 years ago

Repetitive messages in debug mode

vikmac:mini-mesos vik$ ./bin/minimesos --debug up
14:22:01.364 [main] DEBUG c.c.m.container.AbstractContainer - Creating container [minimesos-zookeeper-550018913-3838728346]
14:22:02.634 [main] DEBUG c.c.m.container.AbstractContainer - Container is up and running
14:22:02.764 [main] DEBUG c.c.m.container.AbstractContainer - Creating container [minimesos-master-550018913-402956520]
14:22:03.891 [main] DEBUG c.c.m.container.AbstractContainer - Container is up and running
14:22:04.032 [main] DEBUG c.c.m.container.AbstractContainer - Creating container [minimesos-agent-550018913-2394961609]
14:22:05.217 [main] DEBUG c.c.m.container.AbstractContainer - Container is up and running
14:22:05.282 [main] DEBUG c.c.m.container.AbstractContainer - Creating container [minimesos-marathon-550018913-1795083596]
14:22:06.481 [main] DEBUG c.c.m.container.AbstractContainer - Container is up and running
14:22:06.597 [main] DEBUG c.c.m.container.AbstractContainer - Creating container [minimesos-consul-550018913-298026724]
14:22:07.908 [main] DEBUG c.c.m.container.AbstractContainer - Container is up and running
14:22:08.093 [main] DEBUG c.c.m.container.AbstractContainer - Creating container [minimesos-registrator-550018913-1988270135]
14:22:09.288 [main] DEBUG c.c.m.container.AbstractContainer - Container is up and running
Minimesos cluster is running: 550018913
Mesos version: 0.25
export MINIMESOS_ZOOKEEPER=zk://172.17.0.3:2181
export MINIMESOS_MASTER=http://172.17.0.4:5050
export MINIMESOS_MARATHON=http://172.17.0.6:8080
export MINIMESOS_CONSUL=http://172.17.0.7:8500
export MINIMESOS_CONSUL_IP=172.17.0.7
frankscholten commented 8 years ago

They are not repetitive. These are debug logs for each separate container.

nemosupremo commented 8 years ago

Was the original issue resolved, seeing the same issue as OP - my history is as follows:

nimi@dev1:~$ curl -sSL https://minimesos.org/install | sh
nimi@dev1:~$ export PATH=$PATH:/home/nimi/.minimesos/bin
nimi@dev1:~$ minimesos init
nimi@dev1:~$ minimesos up
Exception in thread "main" javax.ws.rs.ProcessingException: org.newsclub.net.unix.AFUNIXSocketException: Connection refused (socket: /var/run/docker.sock)
    at com.github.dockerjava.jaxrs.connector.ApacheConnector.apply(ApacheConnector.java:488)
    at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:246)
    at org.glassfish.jersey.client.JerseyInvocation$3.call(JerseyInvocation.java:705)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:228)
    at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:424)
    at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:701)
    at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:417)
    at org.glassfish.jersey.client.JerseyInvocation$Builder.get(JerseyInvocation.java:313)
    at com.github.dockerjava.jaxrs.ListContainersCmdExec.execute(ListContainersCmdExec.java:42)
    at com.github.dockerjava.jaxrs.ListContainersCmdExec.execute(ListContainersCmdExec.java:16)
    at com.github.dockerjava.jaxrs.AbstrSyncDockerCmdExec.exec(AbstrSyncDockerCmdExec.java:23)
    at com.github.dockerjava.core.command.AbstrDockerCmd.exec(AbstrDockerCmd.java:33)
    at com.containersol.minimesos.docker.DockerContainersUtil.getContainers(DockerContainersUtil.java:48)
    at com.containersol.minimesos.mesos.MesosClusterContainersFactory.loadRunningCluster(MesosClusterContainersFactory.java:60)
    at com.containersol.minimesos.cluster.MesosCluster.<init>(MesosCluster.java:83)
    at com.containersol.minimesos.cluster.MesosCluster.loadCluster(MesosCluster.java:71)
    at com.containersol.minimesos.cluster.ClusterRepository.loadCluster(ClusterRepository.java:31)
    at com.containersol.minimesos.main.CommandUp.getCluster(CommandUp.java:159)
    at com.containersol.minimesos.main.CommandUp.execute(CommandUp.java:92)
    at com.containersol.minimesos.main.Main.run(Main.java:125)
    at com.containersol.minimesos.main.Main.main(Main.java:56)
Caused by: org.newsclub.net.unix.AFUNIXSocketException: Connection refused (socket: /var/run/docker.sock)
    at org.newsclub.net.unix.NativeUnixSocket.connect(Native Method)
    at org.newsclub.net.unix.AFUNIXSocketImpl.connect(AFUNIXSocketImpl.java:134)
    at org.newsclub.net.unix.AFUNIXSocket.connect(AFUNIXSocket.java:97)
    at com.github.dockerjava.jaxrs.ApacheUnixSocket.connect(ApacheUnixSocket.java:64)
    at com.github.dockerjava.jaxrs.UnixConnectionSocketFactory.connectSocket(UnixConnectionSocketFactory.java:73)
    at org.apache.http.impl.conn.HttpClientConnectionOperator.connect(HttpClientConnectionOperator.java:125)
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:319)
    at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:363)
    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:219)
    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:195)
    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:86)
    at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:108)
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72)
    at com.github.dockerjava.jaxrs.connector.ApacheConnector.apply(ApacheConnector.java:441)
    ... 22 more
nimi@dev1:~$ docker info
Containers: 94
 Running: 0
 Paused: 0
 Stopped: 94
Images: 203
Server Version: 1.11.2
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 422
 Dirperm1 Supported: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins: 
 Volume: local
 Network: host bridge null
Kernel Version: 3.13.0-44-generic
Operating System: Ubuntu precise (12.04.2 LTS)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 993.7 MiB
Name: dev1
ID: I22O:4YTL:ORBZ:5A7C:6BCG:H4EF:KVIA:NCYZ:KEXU:7JME:DT7Y:O4ZG
Docker Root Dir: /var/lib/docker
Debug mode (client): false
Debug mode (server): true
 File Descriptors: 13
 Goroutines: 29
 System Time: 2016-07-14T00:19:07.653326815Z
 EventsListeners: 0
Username: nemothekid
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
nimi@dev1:~$ 
nemosupremo commented 8 years ago

Looks like I had to add -H unix:///var/run/docker.sock" to my DOCKER_OPTS

doo-gl commented 7 years ago

Thanks, @nemosupremo for the advice, it worked for me. Just adding a little more detail around what worked for me. I had to open my /etc/default/docker file Add -H unix:///var/run/docker.sock to the DOCKER_OPTS variable. I also had to uncomment the DOCKER_OPTS variable. Then restarting the terminal and it worked.