mkctr produces a different files layer on every build
Ninguém assumiu esta issue ainda.
- #37 de @RaphaelFakhri — fechado sem integrar
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 82/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Ativa
- Stack de tecnologia
- go
- Domínio
- build-system
Direção de pesquisa
Comece pela função layerFromFiles e inspecione como ela percorre o mapa files para as saídas --files e --gopaths. Reproduza o problema chamando layerFromFiles várias vezes com cinco arquivos e comparando layer.DiffID(); considera-se concluído quando entradas idênticas produzem digests de layer idênticos.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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.
- Linguagem predominante
- Go
- Estrelas
- 101
- Forks
- 10
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de tailscale/mkctr
-
mkctr panics when a path passed to --files does not existTalvez livre de novo Um pull request para esta issue foi fechado sem ser mesclado. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
Todas as issues de tailscale/mkctr
Issues semelhantes
-
area: interop area: sip-core v3
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
fonoster/routr#705 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
deadfin-org/deadfin#35 ·
-
enhancement
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 66/100
-
enhancement priority: low
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
labmonkeys-space/nl6#1037 ·
Mantenedores costumam responder em até 1 dia
-
Setup Guide Go tab: say it needs Go 1.26 (the unversioned go get pulls OpenTelemetry Go v1.47.0)Abertaenhancement follow-up
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 66/100
Mantenedores costumam responder em até 1 dia