This is an automated email from the ASF dual-hosted git repository. gilbert pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/mesos.git
commit 3e4e78009d94c15409735ecf4bc2941ec7523d6b Author: Jie Yu <[email protected]> AuthorDate: Fri Aug 31 22:29:48 2018 -0700 Made copy backend destroy more robust. Do not return hard failure if `rm -rf` failed. It's also possible that it fails if some other processes are accessing the files there. The cleanup will be re-attempted during provisioner destroy and agent recovery. Review: https://reviews.apache.org/r/68597/ --- src/slave/containerizer/mesos/provisioner/backends/copy.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/slave/containerizer/mesos/provisioner/backends/copy.cpp b/src/slave/containerizer/mesos/provisioner/backends/copy.cpp index d3eb6b4..a3237a3 100644 --- a/src/slave/containerizer/mesos/provisioner/backends/copy.cpp +++ b/src/slave/containerizer/mesos/provisioner/backends/copy.cpp @@ -326,9 +326,15 @@ Future<bool> CopyBackendProcess::destroy(const string& rootfs) .then([](const Option<int>& status) -> Future<bool> { if (status.isNone()) { return Failure("Failed to reap subprocess to destroy rootfs"); - } else if (status.get() != 0) { - return Failure("Failed to destroy rootfs, exit status: " + - WSTRINGIFY(status.get())); + } + + if (status.get() != 0) { + // It's possible that `rm -rf` will fail if some other + // programs are accessing the files. No need to return a hard + // failure here because the directory will be removed later + // and re-attempted on agent recovery. + LOG(ERROR) << "Failed to destroy rootfs, exit status: " + << WSTRINGIFY(status.get()); } return true;
