Skip to content

[Bug]: Testcontainers unable to connect to Ruyk #9467

@patrickuhlmann

Description

@patrickuhlmann

Module

MySQL

Testcontainers version

1.20.3

Using the latest Testcontainers version?

Yes

Host OS

Debian GNU/Linux 12 (bookworm)

Host Arch

AMD64

Docker version

Client: Docker Engine - Community
Version: 27.3.1
API version: 1.47
Go version: go1.22.7
Git commit: ce12230
Built: Fri Sep 20 11:41:11 2024
OS/Arch: linux/amd64
Context: default

Server: Docker Engine - Community
Engine:
Version: 27.3.1
API version: 1.47 (minimum version 1.24)
Go version: go1.22.7
Git commit: 41ca978
Built: Fri Sep 20 11:41:11 2024
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.7.22
GitCommit: 7f7fdf5fed64eb6a7caf99b3e12efcf9d60e311c
runc:
Version: 1.1.14
GitCommit: v1.1.14-0-g2c9f560
docker-init:
Version: 0.19.0
GitCommit: de40ad0

What happened?

Using the following (public) minimal reproduction repository: https://codeberg.org/patrickuhlmann/tc_sample

When I run:

git clone https://codeberg.org/patrickuhlmann/tc_sample.git
cd tc_sample/
docker run -it -v "$(pwd)":/src -v /var/run/docker.sock:/var/run/docker.sock -w /src --rm maven:3.9.9-eclipse-temurin-21 mvn verify

The test fails because Test containers cannot startup Ryuk. I am unsure what the problem is because I only encounter it on one of my machines. That machine is running an 12th Gen Intel(R) Core(TM) i3-1220P CPU and Debian GNU/Linux 12 (bookworm).

On another of my machines running ArchLinux with the same docker version and the same steps the issue does not appear.

As far as I know, I did not do any special configuration on the machine that does not work and it used to work (about two months) ago but I cannot say exactly what has changed (system updates, docker version, testcontainers version).

Do you have any idea what causes this different behavior between different machines and/or how to better analyze it?

Relevant log output

15:37:46.620 [main] INFO org.testcontainers.images.PullPolicy -- Image pull policy will be performed by: DefaultPullPolicy()
15:37:46.622 [main] INFO org.testcontainers.utility.ImageNameSubstitutor -- Image name substitution will be performed by: DefaultImageNameSubstitutor (composite of 'ConfigurationFileImageNameSubstitutor' and 'PrefixingImageNameSubstitutor')
15:37:46.640 [main] INFO org.testcontainers.DockerClientFactory -- Testcontainers version: 1.20.3
15:37:46.893 [main] INFO org.testcontainers.dockerclient.DockerClientProviderStrategy -- Found Docker environment with local Unix socket (unix:///var/run/docker.sock)
15:37:46.907 [main] INFO org.testcontainers.DockerClientFactory -- Docker host IP address is 172.17.0.1
15:37:46.917 [main] INFO org.testcontainers.DockerClientFactory -- Connected to docker:
Server Version: 27.3.1
API Version: 1.47
Operating System: Debian GNU/Linux 12 (bookworm)
Total Memory: 63880 MB
15:37:46.983 [main] INFO tc.testcontainers/ryuk:0.9.0 -- Creating container for image: testcontainers/ryuk:0.9.0
15:37:46.988 [main] INFO org.testcontainers.utility.RegistryAuthLocator -- Failure when attempting to lookup auth config. Please ignore if you don't have images in an authenticated registry. Details: (dockerImageName: testcontainers/ryuk:0.9.0, configFile: /root/.docker/config.json, configEnv: DOCKER_AUTH_CONFIG). Falling back to docker-java default behaviour. Exception message: Status 404: No config supplied. Checked in order: /root/.docker/config.json (file not found), DOCKER_AUTH_CONFIG (not set)
15:37:49.173 [main] INFO tc.testcontainers/ryuk:0.9.0 -- Container testcontainers/ryuk:0.9.0 is starting: a188ce9daa665d13756ba90d810d5560304fde003e45164bdfcda42edb7f9286
15:37:50.442 [main] INFO tc.testcontainers/ryuk:0.9.0 -- Container testcontainers/ryuk:0.9.0 started in PT3.458906264S
15:37:55.449 [testcontainers-ryuk] WARN org.testcontainers.utility.RyukResourceReaper -- Can not connect to Ryuk at 172.17.0.1:32809
java.net.SocketTimeoutException: Connect timed out
at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:546)
at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:592)
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
at java.base/java.net.Socket.connect(Socket.java:751)
at org.testcontainers.utility.RyukResourceReaper.lambda$null$1(RyukResourceReaper.java:105)
at org.rnorth.ducttape.ratelimits.RateLimiter.doWhenReady(RateLimiter.java:27)
at org.testcontainers.utility.RyukResourceReaper.lambda$maybeStart$2(RyukResourceReaper.java:101)
at java.base/java.lang.Thread.run(Thread.java:1583)

Additional Information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions