diff --git a/lib/vagrant/util/ssh.rb b/lib/vagrant/util/ssh.rb index 487b972b0..9809b0d91 100644 --- a/lib/vagrant/util/ssh.rb +++ b/lib/vagrant/util/ssh.rb @@ -174,7 +174,13 @@ module Vagrant process = ChildProcess.build("ssh", *command_options) process.io.inherit! process.start - process.wait + + # Poll for exited rather than call #wait because #wait will hold + # the GIL, locking up the entire Ruby VM. See ChildProcess #68 + while !process.exited? + sleep 0.2 + end + return process.exit_code end end