You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by bm...@apache.org on 2015/09/25 03:16:25 UTC

mesos git commit: Fixed file descriptor leakage in files.cpp.

Repository: mesos
Updated Branches:
  refs/heads/master cad6db903 -> b7c5a4ece


Fixed file descriptor leakage in files.cpp.

Review: https://reviews.apache.org/r/38743


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/b7c5a4ec
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/b7c5a4ec
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/b7c5a4ec

Branch: refs/heads/master
Commit: b7c5a4ece874a658d7b92fbdb3c6ff292bb5b5bc
Parents: cad6db9
Author: Chi Zhang <ch...@gmail.com>
Authored: Thu Sep 24 18:15:53 2015 -0700
Committer: Benjamin Mahler <be...@gmail.com>
Committed: Thu Sep 24 18:15:53 2015 -0700

----------------------------------------------------------------------
 src/files/files.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/b7c5a4ec/src/files/files.cpp
----------------------------------------------------------------------
diff --git a/src/files/files.cpp b/src/files/files.cpp
index 1d4b1e6..5afe332 100644
--- a/src/files/files.cpp
+++ b/src/files/files.cpp
@@ -266,8 +266,6 @@ Future<Response> _read(int fd,
   object.values["offset"] = offset;
   object.values["data"] = string(data.get(), size);
 
-  os::close(fd);
-
   return OK(object, jsonp);
 }
 
@@ -383,6 +381,7 @@ Future<Response> FilesProcess::read(const Request& request)
     string error =
         "Failed to set file descriptor nonblocking: " + nonblock.error();
     LOG(WARNING) << error;
+    os::close(fd.get());
     return InternalServerError(error);
   }
 
@@ -396,7 +395,8 @@ Future<Response> FilesProcess::read(const Request& request)
         lambda::_1,
         offset,
         data,
-        request.query.get("jsonp")));
+        request.query.get("jsonp")))
+    .onAny(lambda::bind(&os::close, fd.get()));
 }