Skip to content

Wrong gateway is detected starting with Testcontainers 1.12.4 #2239

Closed
@ghostbuster91

Description

@ghostbuster91

Hi,

I have a jenkins CI with a master node and two slaves. All tests are running smoothly on slaves but they fail once run on master. Master and slaves differs in terms of ubuntu version and docker version.
The master is:

API Version: 1.40
Operating System: Ubuntu 18.04.3 LTS

While the slaves are:

Server Version: 19.03.0
API Version: 1.40
Operating System: Ubuntu 16.04.6 LTS

I use testcontainers 1.12.4

Exceptions I am getting on master node:

13:11:08  [info]   org.testcontainers.containers.ContainerLaunchException: Container startup failed
13:11:08  [info]   at org.testcontainers.containers.GenericContainer.doStart(GenericContainer.java:322)
13:11:08  [info]   at org.testcontainers.containers.GenericContainer.start(GenericContainer.java:302)
13:11:08  [info]   at com.dimafeng.testcontainers.SingleContainer.start(Container.scala:42)
13:11:08  [info]   ...
13:11:08  [info]   Cause: org.testcontainers.containers.ContainerFetchException: Can't get Docker image: RemoteDockerImage(imageNameFuture=java.util.concurrent.CompletableFuture@687cf499[Completed normally], imagePullPolicy=DefaultPullPolicy(), dockerClient=LazyDockerClient.INSTANCE)
13:11:08  [info]   at org.testcontainers.containers.GenericContainer.getDockerImageName(GenericContainer.java:1265)
13:11:08  [info]   at org.testcontainers.containers.GenericContainer.logger(GenericContainer.java:600)
13:11:08  [info]   at org.testcontainers.containers.GenericContainer.doStart(GenericContainer.java:311)
13:11:08  [info]   at org.testcontainers.containers.GenericContainer.start(GenericContainer.java:302)
13:11:08  [info]   at com.dimafeng.testcontainers.SingleContainer.start(Container.scala:42)
13:11:08  [info]   ...
13:11:08  [info]   Cause: java.lang.IllegalStateException: Can not connect to Ryuk
13:11:08  [info]   at org.testcontainers.utility.ResourceReaper.start(ResourceReaper.java:150)
13:11:08  [info]   at org.testcontainers.DockerClientFactory.client(DockerClientFactory.java:135)
13:11:08  [info]   at org.testcontainers.LazyDockerClient.getDockerClient(LazyDockerClient.java:14)
13:11:08  [info]   at org.testcontainers.LazyDockerClient.listImagesCmd(LazyDockerClient.java:12)
13:11:08  [info]   at org.testcontainers.images.LocalImagesCache.maybeInitCache(LocalImagesCache.java:68)
13:11:08  [info]   at org.testcontainers.images.LocalImagesCache.get(LocalImagesCache.java:32)
13:11:08  [info]   at org.testcontainers.images.AbstractImagePullPolicy.shouldPull(AbstractImagePullPolicy.java:18)
13:11:08  [info]   at org.testcontainers.images.RemoteDockerImage.resolve(RemoteDockerImage.java:62)
13:11:08  [info]   at org.testcontainers.images.RemoteDockerImage.resolve(RemoteDockerImage.java:25)
13:11:08  [info]   at org.testcontainers.utility.LazyFuture.getResolvedValue(LazyFuture.java:20)

and

12:11:37.140 [testcontainers-ryuk] WARN  o.t.u.ResourceReaper - Can not connect to Ryuk at localhost:32965
13:11:37  java.net.SocketException: Connection reset
13:11:37  	at java.net.SocketInputStream.read(SocketInputStream.java:210)
13:11:37  	at java.net.SocketInputStream.read(SocketInputStream.java:141)
13:11:37  	at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)
13:11:37  	at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)
13:11:37  	at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
13:11:37  	at java.io.InputStreamReader.read(InputStreamReader.java:184)
13:11:37  	at java.io.BufferedReader.fill(BufferedReader.java:161)
13:11:37  	at java.io.BufferedReader.readLine(BufferedReader.java:324)
13:11:37  	at java.io.BufferedReader.readLine(BufferedReader.java:389)
13:11:37  	at org.testcontainers.utility.ResourceReaper$FilterRegistry.waitForAcknowledgment(ResourceReaper.java:406)
13:11:37  	at org.testcontainers.utility.ResourceReaper$FilterRegistry.register(ResourceReaper.java:402)
13:11:37  	at org.testcontainers.utility.ResourceReaper.lambda$start$1(ResourceReaper.java:128)
13:11:37  	at java.lang.Thread.run(Thread.java:748)

Although when I call docker logs on master node

+ docker ps
CONTAINER ID        IMAGE                               COMMAND             CREATED             STATUS              PORTS                     NAMES
7b115c90863a        quay.io/testcontainers/ryuk:0.2.3   "/app"              32 seconds ago      Up 31 seconds       0.0.0.0:32965->8080/tcp   testcontainers-ryuk-75c3e431-6dd5-4faf-9b54-df86d395ff4e
++ docker ps -q
+ docker logs 7b115c90863a
2020/01/12 10:08:16 Starting on port 8080...

I can see that ryuk has started.

I assume that this is not a fault of ubuntu neither of docker version (mainly because I use similar versions on my local machine and it all works), but rather some specific configuration of master node. Unfortunately I have no idea how to debug it further, so any help would be appreciated.

Cheers!

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions