On Wed, Dec 02, 2009 at 10:36:02AM +0000, Daniel Pocock wrote: > Carlo Marcelo Arenas Belon wrote: >> >> but that of course requires a patched version of apr (including >> bootstrapping) and is probably not an option, unless we go back >> to the dark ages of including all dependencies statically. >> > Maybe we can fix apr too
Changing APR to use poll instead of kqueue is a way to fix it, but then to be able to use that fix, we will need to go back to have our own apr tree. > I found a description of the same issue in a Google search on the subject: > > http://www.google.com/search?q=kqueue+fork+process+"bad+file+descriptor" > http://www.mail-archive.com/freebsd-hack...@freebsd.org/msg69516.html > > Can you try re-enabling kqueue and patching apr to use rfork()? Doesn't work, and fails now on sending of the metrics, because of course this time the parent process close that socket and the child can use it after that. The only viable solution I see is to delay the creation of all the sockets until daemonized as it was being done originally. If you really need to avoid having the parent report back on issues on that then you are going to keep the parent around and send the status back from the child until getting into the main loop through a unix socket or similar instead as you suggested originally was another option. Carlo ------------------------------------------------------------------------------ Join us December 9, 2009 for the Red Hat Virtual Experience, a free event focused on virtualization and cloud computing. Attend in-depth sessions from your desk. Your couch. Anywhere. http://p.sf.net/sfu/redhat-sfdev2dev _______________________________________________ Ganglia-developers mailing list Ganglia-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ganglia-developers