Gilbert Song created MESOS-6653:
-----------------------------------
Summary: Overlayfs backend may fail to mount the rootfs if both
container image and image volume are specified.
Key: MESOS-6653
URL: https://issues.apache.org/jira/browse/MESOS-6653
Project: Mesos
Issue Type: Bug
Components: containerization
Reporter: Gilbert Song
Assignee: Gilbert Song
Depending on MESOS-6000, we use symlink to shorten the overlayfs mounting
arguments. However, if more than one image need to be provisioned (e.g., a
container image is specified while image volumes are specified for the same
container), the symlink .../backends/overlay/links would fail to be created
since it exists already.
Here is a simple log when we hard code overlayfs as our default backend:
{noformat}
[07:02:45] : [Step 10/10] [ RUN ]
Nesting/VolumeImageIsolatorTest.ROOT_ImageInVolumeWithRootFilesystem/0
[07:02:46] : [Step 10/10] I1127 07:02:46.416021 2919
containerizer.cpp:207] Using isolation:
filesystem/linux,volume/image,docker/runtime,network/cni
[07:02:46] : [Step 10/10] I1127 07:02:46.419312 2919
linux_launcher.cpp:150] Using /sys/fs/cgroup/freezer as the freezer hierarchy
for the Linux launcher
[07:02:46] : [Step 10/10] E1127 07:02:46.425336 2919 shell.hpp:107]
Command 'hadoop version 2>&1' failed; this is the output:
[07:02:46] : [Step 10/10] sh: 1: hadoop: not found
[07:02:46] : [Step 10/10] I1127 07:02:46.425379 2919 fetcher.cpp:69]
Skipping URI fetcher plugin 'hadoop' as it could not be created: Failed to
create HDFS client: Failed to execute 'hadoop version 2>&1'; the command was
either not found or exited with a non-zero exit status: 127
[07:02:46] : [Step 10/10] I1127 07:02:46.425452 2919 local_puller.cpp:94]
Creating local puller with docker registry '/tmp/R6OUei/registry'
[07:02:46] : [Step 10/10] I1127 07:02:46.427258 2934
containerizer.cpp:956] Starting container 9af6c98a-d9f7-4c89-a5ed-fc7ae2fa1330
for executor 'test_executor' of framework
[07:02:46] : [Step 10/10] I1127 07:02:46.427592 2938
metadata_manager.cpp:167] Looking for image 'test_image_rootfs'
[07:02:46] : [Step 10/10] I1127 07:02:46.427774 2936 local_puller.cpp:147]
Untarring image 'test_image_rootfs' from
'/tmp/R6OUei/registry/test_image_rootfs.tar' to
'/tmp/R6OUei/store/staging/9krDz2'
[07:02:46] : [Step 10/10] I1127 07:02:46.512070 2933 local_puller.cpp:167]
The repositories JSON file for image 'test_image_rootfs' is
'{"test_image_rootfs":{"latest":"815b809d588c80fd6ddf4d6ac244ad1c01ae4cbe0f91cc7480e306671ee9c346"}}'
[07:02:46] : [Step 10/10] I1127 07:02:46.512279 2933 local_puller.cpp:295]
Extracting layer tar ball
'/tmp/R6OUei/store/staging/9krDz2/815b809d588c80fd6ddf4d6ac244ad1c01ae4cbe0f91cc7480e306671ee9c346/layer.tar
to rootfs
'/tmp/R6OUei/store/staging/9krDz2/815b809d588c80fd6ddf4d6ac244ad1c01ae4cbe0f91cc7480e306671ee9c346/rootfs'
[07:02:46] : [Step 10/10] I1127 07:02:46.617442 2937
metadata_manager.cpp:155] Successfully cached image 'test_image_rootfs'
[07:02:46] : [Step 10/10] I1127 07:02:46.617908 2938 provisioner.cpp:286]
Image layers: 1
[07:02:46] : [Step 10/10] I1127 07:02:46.617925 2938 provisioner.cpp:296]
Should hit here
[07:02:46] : [Step 10/10] I1127 07:02:46.617949 2938 provisioner.cpp:315]
!!!!: bind
[07:02:46] : [Step 10/10] I1127 07:02:46.617959 2938 provisioner.cpp:315]
!!!!: overlay
[07:02:46] : [Step 10/10] I1127 07:02:46.617967 2938 provisioner.cpp:315]
!!!!: copy
[07:02:46] : [Step 10/10] I1127 07:02:46.617974 2938 provisioner.cpp:318]
Provisioning image rootfs
'/mnt/teamcity/temp/buildTmp/Nesting_VolumeImageIsolatorTest_ROOT_ImageInVolumeWithRootFilesystem_0_1fMo0c/provisioner/containers/9af6c98a-d9f7-4c89-a5ed-fc7ae2fa1330/backends/overlay/rootfses/c71e83d2-5dbe-4eb7-a2fc-b8cc826771f7'
for container 9af6c98a-d9f7-4c89-a5ed-fc7ae2fa1330 using overlay backend
[07:02:46] : [Step 10/10] I1127 07:02:46.618408 2936 overlay.cpp:175]
Created symlink
'/mnt/teamcity/temp/buildTmp/Nesting_VolumeImageIsolatorTest_ROOT_ImageInVolumeWithRootFilesystem_0_1fMo0c/provisioner/containers/9af6c98a-d9f7-4c89-a5ed-fc7ae2fa1330/backends/overlay/links'
-> '/tmp/DQ3blT'
[07:02:46] : [Step 10/10] I1127 07:02:46.618472 2936 overlay.cpp:203]
Provisioning image rootfs with overlayfs:
'lowerdir=/tmp/DQ3blT/0,upperdir=/mnt/teamcity/temp/buildTmp/Nesting_VolumeImageIsolatorTest_ROOT_ImageInVolumeWithRootFilesystem_0_1fMo0c/provisioner/containers/9af6c98a-d9f7-4c89-a5ed-fc7ae2fa1330/backends/overlay/scratch/c71e83d2-5dbe-4eb7-a2fc-b8cc826771f7/upperdir,workdir=/mnt/teamcity/temp/buildTmp/Nesting_VolumeImageIsolatorTest_ROOT_ImageInVolumeWithRootFilesystem_0_1fMo0c/provisioner/containers/9af6c98a-d9f7-4c89-a5ed-fc7ae2fa1330/backends/overlay/scratch/c71e83d2-5dbe-4eb7-a2fc-b8cc826771f7/workdir'
[07:02:46] : [Step 10/10] I1127 07:02:46.619098 2933 linux.cpp:451]
Ignored an image volume for container 9af6c98a-d9f7-4c89-a5ed-fc7ae2fa1330
[07:02:46] : [Step 10/10] I1127 07:02:46.619745 2938
metadata_manager.cpp:167] Looking for image 'test_image_volume'
[07:02:46] : [Step 10/10] I1127 07:02:46.619925 2937 local_puller.cpp:147]
Untarring image 'test_image_volume' from
'/tmp/R6OUei/registry/test_image_volume.tar' to
'/tmp/R6OUei/store/staging/2GNlJO'
[07:02:46] : [Step 10/10] I1127 07:02:46.713526 2935 local_puller.cpp:167]
The repositories JSON file for image 'test_image_volume' is
'{"test_image_volume":{"latest":"815b809d588c80fd6ddf4d6ac244ad1c01ae4cbe0f91cc7480e306671ee9c346"}}'
[07:02:46] : [Step 10/10] I1127 07:02:46.713726 2935 local_puller.cpp:295]
Extracting layer tar ball
'/tmp/R6OUei/store/staging/2GNlJO/815b809d588c80fd6ddf4d6ac244ad1c01ae4cbe0f91cc7480e306671ee9c346/layer.tar
to rootfs
'/tmp/R6OUei/store/staging/2GNlJO/815b809d588c80fd6ddf4d6ac244ad1c01ae4cbe0f91cc7480e306671ee9c346/rootfs'
[07:02:46] : [Step 10/10] I1127 07:02:46.818696 2937
metadata_manager.cpp:155] Successfully cached image 'test_image_volume'
[07:02:46] : [Step 10/10] I1127 07:02:46.819169 2934 provisioner.cpp:286]
Image layers: 1
[07:02:46] : [Step 10/10] I1127 07:02:46.819188 2934 provisioner.cpp:296]
Should hit here
[07:02:46] : [Step 10/10] I1127 07:02:46.819221 2934 provisioner.cpp:315]
!!!!: bind
[07:02:46] : [Step 10/10] I1127 07:02:46.819232 2934 provisioner.cpp:315]
!!!!: overlay
[07:02:46] : [Step 10/10] I1127 07:02:46.819236 2934 provisioner.cpp:315]
!!!!: copy
[07:02:46] : [Step 10/10] I1127 07:02:46.819241 2934 provisioner.cpp:318]
Provisioning image rootfs
'/mnt/teamcity/temp/buildTmp/Nesting_VolumeImageIsolatorTest_ROOT_ImageInVolumeWithRootFilesystem_0_1fMo0c/provisioner/containers/9af6c98a-d9f7-4c89-a5ed-fc7ae2fa1330/backends/overlay/rootfses/baf632b3-29c5-45e4-9d2e-6f3a2bdd9759'
for container 9af6c98a-d9f7-4c89-a5ed-fc7ae2fa1330 using overlay backend
[07:02:46] : [Step 10/10]
../../src/tests/containerizer/volume_image_isolator_tests.cpp:214: Failure
[07:02:46] : [Step 10/10] (launch).failure(): Failed to create symlink
'/mnt/teamcity/temp/buildTmp/Nesting_VolumeImageIsolatorTest_ROOT_ImageInVolumeWithRootFilesystem_0_1fMo0c/provisioner/containers/9af6c98a-d9f7-4c89-a5ed-fc7ae2fa1330/backends/overlay/links'
-> '/tmp/6dj9IG'
[07:02:46] : [Step 10/10] [ FAILED ]
Nesting/VolumeImageIsolatorTest.ROOT_ImageInVolumeWithRootFilesystem/0, where
GetParam() = false (919 ms)
{noformat}
We should differenciate the links for different provisioned images.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)