You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ji...@apache.org on 2015/07/24 07:24:55 UTC
mesos git commit: Fixed the sanity check on OSX for persistent
volumes.
Repository: mesos
Updated Branches:
refs/heads/master 758bed323 -> b65d3f75e
Fixed the sanity check on OSX for persistent volumes.
Review: https://reviews.apache.org/r/36742
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/b65d3f75
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/b65d3f75
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/b65d3f75
Branch: refs/heads/master
Commit: b65d3f75edd9d3fdf368543fead0969ae4b2d3ca
Parents: 758bed3
Author: Jie Yu <yu...@gmail.com>
Authored: Thu Jul 23 12:37:00 2015 -0700
Committer: Jie Yu <yu...@gmail.com>
Committed: Thu Jul 23 22:24:39 2015 -0700
----------------------------------------------------------------------
.../containerizer/isolators/filesystem/posix.cpp | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/b65d3f75/src/slave/containerizer/isolators/filesystem/posix.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/isolators/filesystem/posix.cpp b/src/slave/containerizer/isolators/filesystem/posix.cpp
index 72d2738..2aa8406 100644
--- a/src/slave/containerizer/isolators/filesystem/posix.cpp
+++ b/src/slave/containerizer/isolators/filesystem/posix.cpp
@@ -230,11 +230,22 @@ Future<Nothing> PosixFilesystemIsolatorProcess::update(
(realpath.isError() ? realpath.error() : "No such directory"));
}
- // NOTE: A sanity check which we don't expect to happen.
- if (realpath.get() != original) {
+ // A sanity check to make sure the target of the symlink does
+ // not change. In fact, this is not supposed to happen.
+ // NOTE: Here, we compare the realpaths because 'original' might
+ // contain symbolic links.
+ Result<string> _original = os::realpath(original);
+ if (!_original.isSome()) {
return Failure(
- "The existing symlink '" + link + "' points to '" + original +
- "' and the new target is '" + realpath.get() + "'");
+ "Failed to get the realpath of volume '" + original + "': " +
+ (_original.isError() ? _original.error() : "No such directory"));
+ }
+
+ if (realpath.get() != _original.get()) {
+ return Failure(
+ "The existing symlink '" + link + "' points to '" +
+ _original.get() + "' and the new target is '" +
+ realpath.get() + "'");
}
} else {
LOG(INFO) << "Adding symlink from '" << original << "' to '"