[lxc-devel] [PATCH] only warn for inherited file descriptors

Greg Kurz gkurz at fr.ibm.com
Mon Sep 5 14:55:07 UTC 2011


As discussed in thread:

http://sourceforge.net/mailarchive/forum.php?thread_name=4E5618C3.5060507%40free.fr&forum_name=lxc-devel

We think it's better for now to only warn the user about a fd leaking into
the container. Also remove the call to readlink() as it isn't really useful
now: since the container will start anyway, the user can look into /proc/../fd
or use lsof or whatever.

Signed-off-by: Greg Kurz <gkurz at fr.ibm.com>
---

 src/lxc/start.c |   20 +++-----------------
 1 files changed, 3 insertions(+), 17 deletions(-)

diff --git a/src/lxc/start.c b/src/lxc/start.c
index 6737a44..9481a8a 100644
--- a/src/lxc/start.c
+++ b/src/lxc/start.c
@@ -141,7 +141,6 @@ int lxc_check_inherited(int fd_to_ignore)
 	struct dirent dirent, *direntp;
 	int fd, fddir;
 	DIR *dir;
-	int ret = 0;
 
 	dir = opendir("/proc/self/fd");
 	if (!dir) {
@@ -152,9 +151,6 @@ int lxc_check_inherited(int fd_to_ignore)
 	fddir = dirfd(dir);
 
 	while (!readdir_r(dir, &dirent, &direntp)) {
-		char procpath[64];
-		char path[PATH_MAX];
-
 		if (!direntp)
 			break;
 
@@ -171,22 +167,12 @@ int lxc_check_inherited(int fd_to_ignore)
 
 		if (match_fd(fd))
 			continue;
-		/*
-		 * found inherited fd
-		 */
-		ret = -1;
 
-		snprintf(procpath, sizeof(procpath), "/proc/self/fd/%d", fd);
-
-		if (readlink(procpath, path, sizeof(path)) == -1)
-			ERROR("readlink(%s) failed : %m", procpath);
-		else
-			ERROR("inherited fd %d on %s", fd, path);
+		WARN("inherited fd %d", fd);
 	}
 
-	if (closedir(dir))
-		ERROR("failed to close directory");
-	return ret;
+	closedir(dir); /* cannot fail */
+	return 0;
 }
 
 static int setup_signal_fd(sigset_t *oldmask)





More information about the lxc-devel mailing list