----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/36429/#review93143 ----------------------------------------------------------- Please do a rebase first since quite a lot of the stuff have been changed. Also, there's no test yet. Do you have tests in a subsequent patch? I think we might need a TestProvisioner that's based on copying the host file systems so that we can test the file system isolators. We can unify this with the `BasicLinuxChroot` in launch_tests.cpp. What do you think? src/slave/containerizer/isolators/filesystem/linux.cpp (lines 130 - 148) Can you elaborate in the comment about why this is needed? I don't follow this part. Also, I am wondering what if 'directory' itself contains symbolic links? For example, 'directory=/var/lib/mesos/...' and '/var' is a symbolic link to '/xxx/var'. Is that a real issue observerd? Or we can drop a TODO instead for now? src/slave/containerizer/isolators/filesystem/linux.cpp (line 165) s/!rootfs.isSome()/rootfs.isNone() src/slave/containerizer/isolators/filesystem/linux.cpp (lines 176 - 195) Again, this part is not quite obvious to me. Can you explain why this is needed? src/slave/containerizer/isolators/filesystem/linux.cpp (line 185) Failed to create 'container_path'? src/slave/containerizer/isolators/filesystem/linux.cpp (line 188) What if 'rootfs' itself has symbolic links? Do we have code to guarantee that it won't be the case? src/slave/containerizer/isolators/filesystem/linux.cpp (line 214) Can you print the container type if this check fails: ``` CHECK(...) << "Unexpected container type " << ... ``` src/slave/containerizer/isolators/filesystem/linux.cpp (lines 320 - 323) You may want to check if some volumes already exist before mounting them because of the same reason you mentioned here. src/slave/containerizer/isolators/filesystem/linux.cpp (lines 373 - 374) The logic here needs to be adjusted. Please refer to https://issues.apache.org/jira/browse/MESOS-3124 https://reviews.apache.org/r/36684 src/slave/containerizer/isolators/filesystem/linux.cpp (line 428) I still don't get this part. Correct me if I'm wrong. Say the sandbox in the host file system (i.e., `info->directory`) is `DIRECTORY`. Persistent volumes are mounted at `$DIRECTORY/volume1`, `$DIRECTORY/volume2`, right? Those volumes's target does not meet `strings::startsWith(entry->target, info->rootfs.get()`, right? Also, if `info->rootfs.isNone()`, do you also need to cleanup persistent volume mounts? - Jie Yu On July 12, 2015, 4:46 a.m., Ian Downes wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/36429/ > ----------------------------------------------------------- > > (Updated July 12, 2015, 4:46 a.m.) > > > Review request for mesos, Jie Yu, Timothy Chen, and Vinod Kone. > > > Repository: mesos > > > Description > ------- > > Moved filesystem/linux from review https://reviews.apache.org/r/34135/ > > > Diffs > ----- > > src/Makefile.am e5b5d36f0ac160e5a3a9fdc50b31c060a413ce2c > src/slave/containerizer/isolators/filesystem/linux.hpp PRE-CREATION > src/slave/containerizer/isolators/filesystem/linux.cpp PRE-CREATION > src/slave/containerizer/mesos/containerizer.cpp 47d146125dfd4ea909e7ec9d94f41cfa11d035e5 > > Diff: https://reviews.apache.org/r/36429/diff/ > > > Testing > ------- > > > Thanks, > > Ian Downes > >