testcontainers / testcontainers/testcontainers-java
NullPointerException in execInContainer for long running commands
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Java
- Sterne
- 8.7k
- Forks
- 1.9k
- Ø Merge
- 2 T. 17 Std.
- Gemergte PRs (30 T.)
- 9
Beschreibung
Test case:
@Test
public void testExecInContainer() throws InterruptedException, IOException {
try (GenericContainer<?> c = new GenericContainer<>(DockerImageName.parse("redis:3.0.2"))) {
c.start();
Container.ExecResult r = c.execInContainer("/bin/bash", "-c", "sleep 600");
}
}
After 3 minutes, I've got this exception (tested with testcontainers 1.16.0):
java.lang.NullPointerException
at org.testcontainers.containers.ExecInContainerPattern.execInContainer(ExecInContainerPattern.java:85)
at org.testcontainers.containers.ContainerState.execInContainer(ContainerState.java:235)
at org.testcontainers.containers.ContainerState.execInContainer(ContainerState.java:226)
Note: I'm using DOCKER_HOST to execute on a Linux machine.
My real problem is: how do I execute a command which runs a long time? there seems to be an underlying socket timeout in docker-java, is it possible to increase this timeout?
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit dem fehlschlagenden Testfall im Issue und untersuche ExecInContainerPattern.java:85. Folge dann den Aufrufen durch ContainerState.java:226 und :235. Reproduziere den lang laufenden /bin/bash sleep-Befehl mit dem DOCKER_HOST-Setup und ermittle, warum er nach drei Minuten zu einer NullPointerException wird. Erledigt ist die Aufgabe, wenn lang laufende Exec-Befehle das Timeout ohne diese Exception behandeln.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- docker, java
- Bereich
- devops, testing-qa
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100