diff options
Diffstat (limited to 'lib/mixlib')
-rw-r--r-- | lib/mixlib/shellout/unix.rb | 29 |
1 files changed, 1 insertions, 28 deletions
diff --git a/lib/mixlib/shellout/unix.rb b/lib/mixlib/shellout/unix.rb index be2e66a..f93d2e5 100644 --- a/lib/mixlib/shellout/unix.rb +++ b/lib/mixlib/shellout/unix.rb @@ -211,31 +211,6 @@ module Mixlib STDIN.sync = true if input end - # When a new process is started with chef, it shares the file - # descriptors of the parent. We clean the file descriptors - # coming from the parent to prevent unintended locking if parent - # is killed. - # NOTE: After some discussions we've decided to iterate on file - # descriptors upto 256. We believe this is a reasonable upper - # limit in a chef environment. If we have issues in the future this - # number could be made to be configurable or updated based on - # the ulimit based on platform. - def clean_parent_file_descriptors - # Don't clean $stdin, $stdout, $stderr, process_status_pipe. - 3.upto(256) do |n| - # We are checking the fd for error pipe before attempting to - # create a file because error pipe will auto close when we - # try to create a file since it's set to CLOEXEC. - if n != @process_status_pipe.last.to_i - begin - fd = File.for_fd(n) - fd.close if fd - rescue - end - end - end - end - def configure_parent_process_file_descriptors # Close the sides of the pipes we don't care about stdin_pipe.first.close @@ -309,8 +284,6 @@ module Mixlib configure_subprocess_file_descriptors - clean_parent_file_descriptors - set_group set_user set_environment @@ -318,7 +291,7 @@ module Mixlib set_cwd begin - command.kind_of?(Array) ? exec(*command) : exec(command) + command.kind_of?(Array) ? exec(*command, :close_others=>true) : exec(command, :close_others=>true) raise 'forty-two' # Should never get here rescue Exception => e |