testcontainers / testcontainers/testcontainers-java
[Bug]: MalformedChunkCodingException since Update to 1.21.4/2.0.3
Nessuno ha ancora preso questa issue.
- Lingua principale
- Java
- Stelle
- 8.7k
- Fork
- 1.9k
- Merge medio
- 2g 17h
- PR unite (30g)
- 9
Descrizione
Module
Core
Testcontainers version
1.21.4, 2.0.3
Using the latest Testcontainers version?
Yes
Host OS
Windows
Host Arch
X64
Docker version
Client:
Version: 29.0.2-rd
API version: 1.51 (downgraded from 1.52)
Go version: go1.25.4
Git commit: 5a2d7eb
Built: Tue Nov 18 23:34:16 2025
OS/Arch: windows/amd64
Context: default
Server:
Engine:
Version: 28.3.3
API version: 1.51 (minimum version 1.24)
Go version: go1.24.8
Git commit: bea959c7b793b32a893820b97c4eadc7c87fabb0
Built: Sun Oct 12 08:01:14 2025
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v2.1.5
GitCommit: fcd43222d6b07379a4be9786bda52438f0dd16a1
runc:
Version: 1.3.3
GitCommit: d842d7719497cc3b774fd71620278ac9e17710e0
docker-init:
Version: 0.19.0
GitCommit:
What happened?
Hi,
I described the problem in a comment in #11254 but given the nature of it, I think it warrants its own issue ticket.
Since updating to Testcontainers 1.21.4/2.0.3 we are occasionally encountering an exception:
NpipeSocketClientProviderStrategy: failed with exception RuntimeException (com.github.dockerjava.zerodep.shaded.org.apache.hc.core5.http.MalformedChunkCodingException: Bad chunk header: ). Root cause MalformedChunkCodingException (Bad chunk header: )
I can reproduce it with something simple as the following code. For some reason it becomes more probable when running in debug mode.
try ( final PostgreSQLContainer<?> container = new PostgreSQLContainer<>( "postgres:14" ) ) {
container.start( );
}
I use a custom policy to make sure that the image is always pulled.
public final class PullAlwaysPolicy implements ImagePullPolicy {
@Override
public boolean shouldPull( final DockerImageName imageName ) {
return true;
}
}
Thank you and best regards
Nils
Relevant log output
Feb. 02, 2026 10:17:54 AM org.testcontainers.images.PullPolicy defaultPolicy
INFORMATION: Found configured Image Pull Policy: class com.example.demo.PullAlwaysPolicy
Feb. 02, 2026 10:17:54 AM org.testcontainers.images.PullPolicy defaultPolicy
INFORMATION: Image pull policy will be performed by: com.example.demo.PullAlwaysPolicy@5d76b067
Feb. 02, 2026 10:17:54 AM org.testcontainers.utility.ImageNameSubstitutor instance
INFORMATION: Image name substitution will be performed by: DefaultImageNameSubstitutor (composite of 'ConfigurationFileImageNameSubstitutor' and 'PrefixingImageNameSubstitutor')
Feb. 02, 2026 10:17:54 AM org.testcontainers.DockerClientFactory getOrInitializeStrategy
INFORMATION: Testcontainers version: 2.0.3
Feb. 02, 2026 10:17:54 AM org.testcontainers.dockerclient.DockerClientProviderStrategy lambda$loadConfiguredStrategy$9
INFORMATION: Loaded org.testcontainers.dockerclient.NpipeSocketClientProviderStrategy from ~/.testcontainers.properties, will try it first
Feb. 02, 2026 10:17:55 AM org.testcontainers.dockerclient.DockerMachineClientProviderStrategy isApplicable
INFORMATION: docker-machine executable was not found on PATH ([REDACTED])
Feb. 02, 2026 10:17:55 AM org.testcontainers.dockerclient.DockerClientProviderStrategy lambda$getFirstValidStrategy$7
SCHWERWIEGEND: Could not find a valid Docker environment. Please check configuration. Attempted configurations were:
NpipeSocketClientProviderStrategy: failed with exception RuntimeException (com.github.dockerjava.zerodep.shaded.org.apache.hc.core5.http.MalformedChunkCodingException: Bad chunk header: ). Root cause MalformedChunkCodingException (Bad chunk header: )As no valid configuration was found, execution cannot continue.
See https://java.testcontainers.org/on_failure.html for more details.
Exception in thread "main" java.lang.IllegalStateException: Could not find a valid Docker environment. Please see logs and check configuration
at org.testcontainers.dockerclient.DockerClientProviderStrategy.lambda$getFirstValidStrategy$7(DockerClientProviderStrategy.java:274)
at java.base/java.util.Optional.orElseThrow(Optional.java:403)
at org.testcontainers.dockerclient.DockerClientProviderStrategy.getFirstValidStrategy(DockerClientProviderStrategy.java:265)
at org.testcontainers.DockerClientFactory.getOrInitializeStrategy(DockerClientFactory.java:154)
at org.testcontainers.DockerClientFactory.client(DockerClientFactory.java:196)
at org.testcontainers.DockerClientFactory$1.getDockerClient(DockerClientFactory.java:108)
at com.github.dockerjava.api.DockerClientDelegate.authConfig(DockerClientDelegate.java:109)
at org.testcontainers.containers.GenericContainer.start(GenericContainer.java:316)
at com.example.demo.Main.main(Main.java:9)
Additional Information
No response
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia riproducendo il malfunzionamento con PostgreSQLContainer, PullAlwaysPolicy e la configurazione Docker su Windows segnalata. Leggi DockerClientProviderStrategy e NpipeSocketClientProviderStrategy intorno al controllo dell’ambiente che fallisce e analizza il percorso di MalformedChunkCodingException. Il lavoro è completato quando la configurazione segnalata riesce ad avviare il container senza l’errore MalformedChunkCodingException.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- docker, java
- Ambito
- devops
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 45/100