Issue #1947 has been updated by nwp.
OK, I was wondering why there'd be quite so many connections open to be passed on to the child processes in the first place. It seems to me that each connection used during a catalog run is kept open until the http_pool.clear_http_instances is called at the end of the run. With keep_alive, they might get re-used, but without, a new one is created every time http_pool.http_instance is called, and they stack up in huge numbers. This is, quite clearly, nuts. I don't have a clear enough grasp of the structure of this thing to know where they should be being dumped yet, but it should be relatively simple for someone with a better grasp of the intended function of it to find somewhere to close the connections. It wouldn't obviate the need for close-on-exec, but it would make the consequences of not having it (it does look like the HTTP and XMLRPC classes might make it awkward to get it set) far less painful. I'd be very happy (understatement, see ;-) ) to try out patches for this issue if there were any... otherwise I'll just keep on fumbling around until I can get it to work. ---------------------------------------- Bug #1947: Puppet still leaks FDs on exec http://projects.reductivelabs.com:80/issues/1947 Author: nwp Status: Accepted Priority: Normal Assigned to: Category: exec Target version: Complexity: Unknown Affected version: 0.24.7 Keywords: Puppet still leaks FDs on exec. This can be when restarting a "service" resource or running an "exec" resource; anything that uses util.rb's functions to actually do the exec. The line "3.upto(256){|fd| IO::new(fd).close rescue nil}" (introduced in 0.24.6 I believe) is not adequate; FDs numbered above 256 remain open. I now have hosts failing in the middle of puppet catalog runs due to running out of FDs. Looking at one of the services that gets regular puppet-controlled restarts, it has FDs 1-13, and 257->985 open. Restarting it manually makes the problem go away. Actually knowing which FDs are in use (for communication with the puppetmaster in particular, but also anything else that I haven't yet noticed) and closing them would probably fix the problem completely; iterating over FDs in the hope that the system you are on doesn't happen to allow higher-numbered ones and hasn't been using them if it does, is not a good solution. ---------------------------------------- You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: http://reductivelabs.com/redmine/my/account --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Bugs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/puppet-bugs?hl=en -~----------~----~----~----~------~----~------~--~---
