testcontainers / testcontainers/testcontainers-java

[Bug]: NullPointerException from ResourceReaper in GenericContainer.stop

Offen
#11,492 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

type/bug
Vorherrschende Sprache
Java
Sterne
8.7k
Forks
1.9k
Ø Merge
2 T. 17 Std.
Gemergte PRs (30 T.)
9

Beschreibung

Module

Core

Testcontainers version

2.0.3

Using the latest Testcontainers version?

Yes

Host OS

Linux

Host Arch

x86

Docker version
GitHub hosted runners
What happened?
java.lang.NullPointerException: Cannot invoke "Object.hashCode()" because "key" is null
	at java.base/java.util.concurrent.ConcurrentHashMap.replaceNode(ConcurrentHashMap.java:1125)
	at java.base/java.util.concurrent.ConcurrentHashMap.remove(ConcurrentHashMap.java:1116)
	at org.testcontainers.utility.ResourceReaper.stopAndRemoveContainer(ResourceReaper.java:175)
	at org.testcontainers.containers.GenericContainer.stop(GenericContainer.java:652)
	at io.trino.tests.product.launcher.env.DockerContainer.reset(DockerContainer.java:411)
	at io.trino.tests.product.launcher.env.Environment.tryStart(Environment.java:157)

Exact repro steps are unclear.
Based on exceptions logged earlier in the CI run (https://github.com/trinodb/trino/actions/runs/22016571723/job/63619535768?pr=28120) this may be after a failed startup attempt.

Relevant log output

Additional Information

https://github.com/trinodb/trino/actions/runs/22016571723/job/63619535768?pr=28120

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne bei ResourceReaper.java in Zeile 175 und GenericContainer.java in Zeile 652 und vergleiche anschließend die Ausnahmen beim fehlgeschlagenen Start im verknüpften Trino-CI-Lauf. Reproduziere den Bereinigungspfad nach einem fehlgeschlagenen Start und füge eine Abdeckung hinzu, die zeigt, dass GenericContainer.stop ohne diese NullPointerException abgeschlossen wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
docker, java
Bereich
testing
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Ruhig
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
42/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.