testcontainers / testcontainers/testcontainers-java

DockerComposeContainer fails on startup with TooLongFrameException

Đang mở
#771 2 bình luận 3 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

area/docker-compose resolution/acknowledged type/bug
Ngôn ngữ chính
Java
Star
8.7k
Fork
1.9k
Merge trung bình
2 ngày 17 giờ
Pull request đã merge (30 ngày)
9

Mô tả

I am getting this error when starting up TestContainers with DockerComposeContainer. This error occurs with even the simplest docker-compose.yml file containing only a single container. I am using this to start:

    @ClassRule
    public static DockerComposeContainer vsenvironment = new DockerComposeContainer(new File("src/test/resources/compose-smoke.yml"))
            .withExposedService("smokehr_1",8080,Wait.forListeningPort().withStartupTimeout(Duration.ofSeconds(600)))
            .withLocalCompose(false)
            .withPull(true)
            .withTailChildContainers(false);

The error looks like this:

    14:34:49.095 [Test worker] INFO  org.testcontainers.dockerclient.EnvironmentAndSystemPropertyClientProviderStrategy - Found docker client settings from environment
    14:34:49.123 [Test worker] INFO  org.testcontainers.dockerclient.DockerClientProviderStrategy - Found Docker environment with Environment variables, system properties and defaults. Resolved: 
        dockerHost=unix:///var/run/docker.sock
        apiVersion='{UNKNOWN_VERSION}'
        registryUrl='https://index.docker.io/v1/'
        registryUsername='gradle'
        registryPassword='null'
        registryEmail='null'
        dockerConfig='DefaultDockerClientConfig[dockerHost=unix:///var/run/docker.sock,registryUsername=gradle,registryPassword=<null>,registryEmail=<null>,registryUrl=https://index.docker.io/v1/,dockerConfig=/home/gradle/.docker,sslConfig=<null>,apiVersion={UNKNOWN_VERSION}]'

    14:36:07.841 [Test worker] INFO  org.testcontainers.DockerClientFactory - Docker host IP address is 172.17.0.1
    14:36:10.944 [Test worker] INFO  org.testcontainers.DockerClientFactory - Connected to docker: 
      Server Version: 18.03.1-ce
      API Version: 1.37
      Operating System: Container Linux by CoreOS 1745.7.0 (Rhyolite)
      Total Memory: 5963 MB
    14:36:18.332 [Test worker] INFO  org.testcontainers.DockerClientFactory - Ryuk started - will monitor and terminate Testcontainers containers on JVM exit
            ℹ︎ Checking the system...
            ✔ Docker version should be at least 1.6.0
            ✔ Docker environment should have more than 2GB free disk space
            ✔ File should be mountable
    14:36:22.504 [Test worker] INFO  🐳 [docker/compose:1.8.0] - Creating container for image: docker/compose:1.8.0
    14:36:22.690 [Test worker] INFO  🐳 [docker/compose:1.8.0] - Starting container with ID: 7d84c971e786dff45d1f8a0dc87114c14cfcc05ed7a1eb1c412290ef7c13b410
    14:36:23.516 [Test worker] INFO  🐳 [docker/compose:1.8.0] - Container docker/compose:1.8.0 is starting: 7d84c971e786dff45d1f8a0dc87114c14cfcc05ed7a1eb1c412290ef7c13b410
    14:36:24.541 [Test worker] INFO  🐳 [docker/compose:1.8.0] - Container docker/compose:1.8.0 started
    14:36:24.551 [Test worker] INFO  🐳 [docker/compose:1.8.0] - Docker Compose container is running for command: pull
    14:36:24.570 [dockerjava-netty-1-5] INFO  🐳 [docker/compose:1.8.0] - STDERR: Pulling smokehr (registry:5000/memuser:latest)...
    14:36:24.570 [dockerjava-netty-1-5] INFO  🐳 [docker/compose:1.8.0] - STDOUT: latest: Pulling from memuser
    14:36:24.571 [dockerjava-netty-1-5] INFO  🐳 [docker/compose:1.8.0] - STDOUT: Digest: sha256:de75673d3a8adfea8cfd65d4a2b8dfba528a0d53047d62e502c62837e442a7bb
    14:36:24.575 [dockerjava-netty-1-5] INFO  🐳 [docker/compose:1.8.0] - STDOUT: Status: Image is up to date for registry:5000/memuser:latest
    14:36:24.580 [Test worker] INFO  🐳 [docker/compose:1.8.0] - Docker Compose has finished running
    14:36:24.598 [Test worker] INFO  🐳 [docker/compose:1.8.0] - Creating container for image: docker/compose:1.8.0
    14:36:24.783 [Test worker] INFO  🐳 [docker/compose:1.8.0] - Starting container with ID: 886d4381f3166d8667ea21ee554c6b69e438117733d7d5090b3409e7d1bf8ea8
    14:36:25.356 [Test worker] INFO  🐳 [docker/compose:1.8.0] - Container docker/compose:1.8.0 is starting: 886d4381f3166d8667ea21ee554c6b69e438117733d7d5090b3409e7d1bf8ea8
    14:36:31.373 [Test worker] INFO  🐳 [docker/compose:1.8.0] - Container docker/compose:1.8.0 started
    14:36:31.375 [Test worker] INFO  🐳 [docker/compose:1.8.0] - Docker Compose container is running for command: up -d
    14:36:31.378 [dockerjava-netty-1-6] INFO  🐳 [docker/compose:1.8.0] - STDERR: Creating network "kesfztmnswhu_default" with the default driver
    14:36:31.378 [dockerjava-netty-1-6] INFO  🐳 [docker/compose:1.8.0] - STDERR: Creating kesfztmnswhu_smokehr_1
    14:36:31.382 [Test worker] INFO  🐳 [docker/compose:1.8.0] - Docker Compose has finished running
    14:36:31.391 [Test worker] INFO  🐳 [alpine/socat:latest] - Creating container for image: alpine/socat:latest
    14:36:31.670 [Test worker] INFO  🐳 [alpine/socat:latest] - Starting container with ID: 9869b1425868e3f47c75873178f441e2bf408f99393413bbe8b8e77dab4ab917
    14:36:42.974 [Test worker] INFO  🐳 [alpine/socat:latest] - Container alpine/socat:latest is starting: 9869b1425868e3f47c75873178f441e2bf408f99393413bbe8b8e77dab4ab917
    14:36:43.452 [Test worker] INFO  🐳 [alpine/socat:latest] - Container alpine/socat:latest started
    14:36:44.493 [dockerjava-netty-1-7] ERROR com.github.dockerjava.core.async.ResultCallbackTemplate - Error during callback
    org.testcontainers.shaded.io.netty.handler.codec.TooLongFrameException: object length exceeds 1048576: 1056099 bytes discarded
    	at org.testcontainers.shaded.io.netty.handler.codec.json.JsonObjectDecoder.decode(JsonObjectDecoder.java:106)
    	at org.testcontainers.shaded.io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:489)
    	at org.testcontainers.shaded.io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:428)
    	at org.testcontainers.shaded.io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265)
    	at org.testcontainers.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
    	at org.testcontainers.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
    	at org.testcontainers.shaded.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
    	at com.github.dockerjava.netty.handler.HttpResponseHandler.channelRead0(HttpResponseHandler.java:72)
    	at com.github.dockerjava.netty.handler.HttpResponseHandler.channelRead0(HttpResponseHandler.java:33)
    	at org.testcontainers.shaded.io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
    	at org.testcontainers.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
    	at org.testcontainers.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
    	at org.testcontainers.shaded.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
    	at org.testcontainers.shaded.io.netty.handler.logging.LoggingHandler.channelRead(LoggingHandler.java:241)
    	at org.testcontainers.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
    	at org.testcontainers.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
    	at org.testcontainers.shaded.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
    	at org.testcontainers.shaded.io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:438)
    	at org.testcontainers.shaded.io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310)
    	at org.testcontainers.shaded.io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284)
    	at org.testcontainers.shaded.io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:253)
    	at org.testcontainers.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
    	at org.testcontainers.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
    	at org.testcontainers.shaded.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
    	at org.testcontainers.shaded.io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)
    	at org.testcontainers.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
    	at org.testcontainers.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
    	at org.testcontainers.shaded.io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)
    	at org.testcontainers.shaded.io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:997)
    	at org.testcontainers.shaded.io.netty.channel.epoll.EpollDomainSocketChannel$EpollDomainUnsafe.epollInReady(EpollDomainSocketChannel.java:138)
    	at org.testcontainers.shaded.io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:401)
    	at org.testcontainers.shaded.io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:306)
    	at org.testcontainers.shaded.io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
    	at org.testcontainers.shaded.io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138)
    	at java.lang.Thread.run(Thread.java:748)

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Hướng nghiên cứu

Bắt đầu với DockerComposeContainer và tái hiện lỗi bằng cấu hình compose-smoke.yml cùng các tùy chọn khởi động được hiển thị. Theo dõi đường dẫn khởi động xung quanh TooLongFrameException và xác minh rằng trường hợp Docker Compose đơn giản hoàn tất mà không gặp lỗi này.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
docker, docker-compose, java
Lĩnh vực
devops, testing
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Cần làm rõ
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.