mkctr produces a different files layer on every build
Nessuno ha ancora preso questa issue.
- #37 di @RaphaelFakhri — chiusa senza merge
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 82/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- go
- Ambito
- build-system
Direzione di ricerca
Inizia dalla funzione layerFromFiles e analizza come itera sulla map files per gli output --files e --gopaths. Riproduci il problema chiamando più volte layerFromFiles con cinque file e confrontando layer.DiffID(); il lavoro è completato quando input identici producono digest di layer identici.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Two mkctr runs with identical inputs write layers with different digests. The tar entries for the --files and --gopaths outputs are written in random order, so the images are not reproducible.
layerFromFiles ranges over the files map. Go randomizes map iteration order, so the file entries and the parent directory headers land in the tar in a different order each time. The header code sets ModTime to the zero time with the comment "to make the images reproducible", so the ordering is the remaining source of variation.
To reproduce, call layerFromFiles several times with a map of five files and compare layer.DiffID(). The digests differ between calls.
The expected behavior is that identical inputs produce an identical layer. Visiting the sources in sorted order fixes it.
- Lingua principale
- Go
- Stelle
- 101
- Fork
- 10
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
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.
Altre issue di tailscale/mkctr
-
mkctr panics when a path passed to --files does not existForse di nuovo libera Una pull request per questa issue è stata chiusa senza essere unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
Tutte le issue di tailscale/mkctr
Issue simili
-
area: interop area: sip-core v3
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
fonoster/routr#705 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
-
kind/bug require/reproduce require/severity
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
oxc-project/tsgolint#1362 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
hashicorp/terraform-provider-google#30703 ·
I maintainer di solito rispondono entro 1 giorno