Since I suspect hwloc may run on *more* platforms than ompi, I'd recommend the guards. The X11 sources actually go as far as the following (Stevens notes that older systems used '1' before FD_CLOEXEC was specified).
#ifdef F_SETFD #ifdef FD_CLOEXEC ret = fcntl (fd, F_SETFD, FD_CLOEXEC); #else ret = fcntl (fd, F_SETFD, 1); #endif /* FD_CLOEXEC */ #endif /* F_SETFD */ -Paul On Wed, Apr 23, 2014 at 3:07 PM, Jeff Squyres (jsquyres) <jsquy...@cisco.com > wrote: > Actually, I just checked around: we have some unprotected FD_CLOEXEC code > in OMPI was that committed 2010-08-24 that has never caused a problem. > > So I'm not thinking it should be necessary here, either. > > > On Apr 23, 2014, at 5:55 PM, Jeff Squyres (jsquyres) <jsquy...@cisco.com> > wrote: > > > Will do. > > > > On Apr 23, 2014, at 5:52 PM, Samuel Thibault <samuel.thiba...@inria.fr> > wrote: > > > >> Jeff Squyres (jsquyres), le Wed 23 Apr 2014 21:05:55 +0000, a écrit : > >>> Any objections to this patch? In OMPI, we're seeing this fd leak into > child processes. > >>> > >>> diff --git a/src/topology-linux.c b/src/topology-linux.c > >>> index e934d4c..8c5fba1 100644 > >>> --- a/src/topology-linux.c > >>> +++ b/src/topology-linux.c > >>> @@ -4601,6 +4601,13 @@ hwloc_linux_component_instantiate(struct > hwloc_disc_compo > >>> data->is_real_fsroot = 0; > >>> } > >>> > >> > >> We probably want an #ifdef FD_CLOEXEC here, not all systems have it. > >> > >>> + /* Since this fd stays open after hwloc returns, mark it as > >>> + close-on-exec so that children don't inherit it */ > >>> + if (fcntl(root, F_SETFD, FD_CLOEXEC) == -1) { > >>> + close(root); > >>> + root = -1; > >>> + goto out_with_data; > >>> + } > >>> #else > >>> if (strcmp(fsroot_path, "/")) { > >>> errno = ENOSYS; > >>> > >>> -- > >>> Jeff Squyres > >>> jsquy...@cisco.com > >>> For corporate legal information go to: > http://www.cisco.com/web/about/doing_business/legal/cri/ > >>> > >>> _______________________________________________ > >>> hwloc-devel mailing list > >>> hwloc-de...@open-mpi.org > >>> http://www.open-mpi.org/mailman/listinfo.cgi/hwloc-devel > >>> > >> > >> -- > >> Samuel > >> Je suis maintenant possesseur d'un ordinateur portable Compaq Armada > >> 1592DT avec port infra-rouge. Auriez-vous connaissance de programmes > >> suceptibles d'utiliser ce port afin de servir de télécommande ? > >> -+- JN in NPC : ben quoi, c'est pas à ça que ça sert ? > >> _______________________________________________ > >> hwloc-devel mailing list > >> hwloc-de...@open-mpi.org > >> http://www.open-mpi.org/mailman/listinfo.cgi/hwloc-devel > > > > > > -- > > Jeff Squyres > > jsquy...@cisco.com > > For corporate legal information go to: > http://www.cisco.com/web/about/doing_business/legal/cri/ > > > > _______________________________________________ > > hwloc-devel mailing list > > hwloc-de...@open-mpi.org > > http://www.open-mpi.org/mailman/listinfo.cgi/hwloc-devel > > > -- > Jeff Squyres > jsquy...@cisco.com > For corporate legal information go to: > http://www.cisco.com/web/about/doing_business/legal/cri/ > > _______________________________________________ > hwloc-devel mailing list > hwloc-de...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/hwloc-devel > -- Paul H. Hargrove phhargr...@lbl.gov Future Technologies Group Computer and Data Sciences Department Tel: +1-510-495-2352 Lawrence Berkeley National Laboratory Fax: +1-510-486-6900