-
Notifications
You must be signed in to change notification settings - Fork 18.4k
Closed
Closed
Copy link
Labels
FrozenDueToAgeNeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
Milestone
Description
Go version
go version go1.10.1 linux/amd64
(current latest stable release)
GOARCH="amd64"
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
Any older toolchain (e.g. go1.9) is not affected by this bug.
Bug output/reproducer
Reproducer:
go get github.com/appc/docker2aci
docker2aci -debug docker://docker.elastic.co/kibana/kibana:6.1.3
Error:
Error: conversion error: error generating ACI: archive/tar: cannot encode header:
Format specifies USTAR; and USTAR cannot encode Linkname="rootfs/var/lib/yum/yumdb/a/6f8ba1fc41ecc5f60aac5b4b7aa28d2566c55481-audit-libs-2.7.6-3.el7-x86_64/from_repo"
Additional info
It looks like the archive/tar
rework in go-1.10 introduced a regression in header format when an overlong filename/linkname is present.
This affects docker2aci, as rebuilding the same sourcecode with a newer toolchain results in a runtime error. Please note that the consuming code doesn't try to enforce USTAR, and just relies on archive/tar
heuristics.
This can be in theory easily workarounded on our side (see https://github.com/appc/docker2aci/pull/260/files), but this behavioral change likely affects other projects as well and addressing it will introduce toolchain-specific codepaths.
I think it should be investigated and possibly addressed in archive/tar
itself.
Metadata
Metadata
Assignees
Labels
FrozenDueToAgeNeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.