mkctr panics when a path passed to --files does not exist
Dieses Issue hat noch niemand übernommen.
- #36 von @RaphaelFakhri — ohne Merge geschlossen
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 76/100
Rechercherichtung
Beginne am Einstiegspunkt layerFromFiles und untersuche dessen filepath.WalkDir-Callback, einschließlich der Behandlung von Fehlern aus writeDir. Reproduziere das Problem mit dem bereitgestellten Beispiel mkctr --files=./missing:/app/missing. Als erledigt gilt die Aufgabe, wenn der Befehl einen Fehler meldet, der den fehlenden Pfad nennt, mit einem Status ungleich null beendet wird und keinen Panic auslöst.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Running mkctr with a --files source that does not exist crashes with a nil pointer dereference instead of reporting an error.
For example, mkctr --files=./missing:/app/missing ... reaches layerFromFiles, which calls filepath.WalkDir on the source. When the source cannot be read, WalkDir calls the callback once with a nil fs.DirEntry and a non-nil error. The callback ignores the error and calls d.IsDir(), which panics:
panic: runtime error: invalid memory address or nil pointer dereference
The expected behavior is an error that names the missing path, and a non-zero exit status.
The callback also drops the error returned by writeDir for the parent directory, so a failing tar write is not reported at that point.
- Vorherrschende Sprache
- Go
- Sterne
- 101
- Forks
- 10
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus tailscale/mkctr
-
mkctr produces a different files layer on every buildEvtl. wieder frei Ein Pull Request dazu wurde ohne Merge geschlossen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
Alle Issues in tailscale/mkctr
Ähnliche Issues
-
area: interop area: sip-core v3
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
fonoster/routr#705 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
deadfin-org/deadfin#35 ·
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 66/100
-
enhancement priority: low
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
labmonkeys-space/nl6#1037 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Setup Guide Go tab: say it needs Go 1.26 (the unversioned go get pulls OpenTelemetry Go v1.47.0)Offenenhancement follow-up
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 66/100
Maintainer antworten meist innerhalb von 1 Tag