mesos-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gilbert Song (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (MESOS-5028) Copy provisioner cannot replace directory with symlink
Date Sat, 06 Aug 2016 01:00:32 GMT

    [ https://issues.apache.org/jira/browse/MESOS-5028?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15410349#comment-15410349
] 

Gilbert Song commented on MESOS-5028:
-------------------------------------

[~zhitao], I have been trying manually for a while. Seems like this issue may not be straightforwards.
Since the extra layer contains two things:
1. the whiteout file.
2. the symlink file.

Currently we get an error when copying, because we cannot use a non-directory to overwrite
a directory. However, even if we can overwrite it finally, the symlink will be deleted by
the labeled whiteout file.

Ok, I have one solution for this, by introducing extra whiteout filtering logic into each
layers in copy backend. Seems like we may have to do that.

> Copy provisioner cannot replace directory with symlink
> ------------------------------------------------------
>
>                 Key: MESOS-5028
>                 URL: https://issues.apache.org/jira/browse/MESOS-5028
>             Project: Mesos
>          Issue Type: Bug
>          Components: containerization
>            Reporter: Zhitao Li
>            Assignee: Gilbert Song
>
> I'm trying to play with the new image provisioner on our custom docker images, but one
of layer failed to get copied, possibly due to a dangling symlink.
> Error log with Glog_v=1:
> {quote}
> I0324 05:42:48.926678 15067 copy.cpp:127] Copying layer path '/tmp/mesos/store/docker/layers/5df0888641196b88dcc1b97d04c74839f02a73b8a194a79e134426d6a8fcb0f1/rootfs'
to rootfs '/var/lib/mesos/provisioner/containers/5f05be6c-c970-4539-aa64-fd0eef2ec7ae/backends/copy/rootfses/507173f3-e316-48a3-a96e-5fdea9ffe9f6'
> E0324 05:42:49.028506 15062 slave.cpp:3773] Container '5f05be6c-c970-4539-aa64-fd0eef2ec7ae'
for executor 'test' of framework 75932a89-1514-4011-bafe-beb6a208bb2d-0004 failed to start:
Collect failed: Collect failed: Failed to copy layer: cp: cannot overwrite directory ‘/var/lib/mesos/provisioner/containers/5f05be6c-c970-4539-aa64-fd0eef2ec7ae/backends/copy/rootfses/507173f3-e316-48a3-a96e-5fdea9ffe9f6/etc/apt’
with non-directory
> {quote}
> Content of _/tmp/mesos/store/docker/layers/5df0888641196b88dcc1b97d04c74839f02a73b8a194a79e134426d6a8fcb0f1/rootfs/etc/apt_
points to a non-existing absolute path (cannot provide exact path but it's a result of us
trying to mount apt keys into docker container at build time).
> I believe what happened is that we executed a script at build time, which contains equivalent
of:
> {quote}
> rm -rf /etc/apt/* && ln -sf /build-mount-point/ /etc/apt
> {quote}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message