You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@mesos.apache.org by "Chun-Hung Hsiao (JIRA)" <ji...@apache.org> on 2017/06/02 23:35:04 UTC

[jira] [Created] (MESOS-7617) UCR cannot read docker images containing long file paths

Chun-Hung Hsiao created MESOS-7617:
--------------------------------------

             Summary: UCR cannot read docker images containing long file paths
                 Key: MESOS-7617
                 URL: https://issues.apache.org/jira/browse/MESOS-7617
             Project: Mesos
          Issue Type: Bug
          Components: containerization
            Reporter: Chun-Hung Hsiao


The latest Docker uses go 1.7.5 (https://github.com/moby/moby/blob/master/CHANGELOG.md#contrib-1), in which the {{archive/tar}} package has a bug that cannot handle file paths longer than 100 characters (https://github.com/golang/go/issues/17630). As a result, Docker will generate images containing ill-formed tar files (details below) when there are long paths. Docker itself understands the ill-formed image fine, but a standard tar program will interpret the image as if all files with long paths are placed under the root directory (https://github.com/moby/moby/issues/29360).

This bug has been fixed in go 1.8, but since Docker is still using the bugged version, we might need to handle these ill-formed images created by Dcoker utilities.

NOTE: It is confirmed that the {{archive/tar}} package in go 1.8 cannot correctly extract the ill-formed tar files, but the one in go 1.7.5 could.

Details: the {{archive/tar}} package uses {{USTAR}} format to handle files with 100+-character-long paths (by only putting file name in the {{name}} field and the path in the {{prefix}} field in the tar header), but uses {{OLDGNU}}'s magic string, which does not understand the {{prefix}} field, so a standard tar program will extract such files under the current directory.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)