mkctr produces a different files layer on every build
Personne n'a encore pris cette issue.
- #37 par @RaphaelFakhri — fermée sans fusion
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 82/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- go
- Domaine
- build-system
Piste de recherche
Commencez par la fonction layerFromFiles et examinez comment elle parcourt la map files pour les sorties --files et --gopaths. Reproduisez le problème en appelant plusieurs fois layerFromFiles avec cinq fichiers et en comparant layer.DiffID() ; le travail est terminé lorsque des entrées identiques produisent des digests de couche identiques.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- Go
- Étoiles
- 101
- Forks
- 10
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de tailscale/mkctr
-
mkctr panics when a path passed to --files does not existPeut-être à nouveau libre Une pull request pour cette issue a été fermée sans être fusionnée. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
Toutes les issues de tailscale/mkctr
Issues similaires
-
area: interop area: sip-core v3
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
fonoster/routr#705 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
deadfin-org/deadfin#35 ·
-
enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
-
enhancement priority: low
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
labmonkeys-space/nl6#1037 ·
Les mainteneurs répondent en général sous 1 jour
-
Setup Guide Go tab: say it needs Go 1.26 (the unversioned go get pulls OpenTelemetry Go v1.47.0)Ouverteenhancement follow-up
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
Les mainteneurs répondent en général sous 1 jour