diff --git a/CHANGELOG.md b/CHANGELOG.md index afc91db38..a457856e4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,8 @@ BUG FIXES: - core: Asking for input works even in consoles that don't support hiding input. [GH-3119] - core: Adding a box by path in Cygwin on Windos works. [GH-3132] + - providers/virtualbox: Make more internal interactions with VBoxManage + retryable to avoid spurious VirtualBox errors. [GH-2831] - provisioners/ansible: Request SSH info within the provision method, when we know its available. [GH-3111] diff --git a/plugins/providers/virtualbox/driver/version_4_3.rb b/plugins/providers/virtualbox/driver/version_4_3.rb index 2654c9374..411dd9d0d 100644 --- a/plugins/providers/virtualbox/driver/version_4_3.rb +++ b/plugins/providers/virtualbox/driver/version_4_3.rb @@ -72,7 +72,7 @@ module VagrantPlugins networks << $1.to_s if line =~ /^Name:\s+(.+?)$/ end - execute("list", "vms").split("\n").each do |line| + execute("list", "vms", retryable: true).split("\n").each do |line| if line =~ /^".+?"\s+\{(.+?)\}$/ info = execute("showvminfo", $1.to_s, "--machinereadable", :retryable => true) info.split("\n").each do |inner_line| @@ -222,7 +222,7 @@ module VagrantPlugins end end - output = execute("list", "vms") + output = execute("list", "vms", retryable: true) match = /^"#{Regexp.escape(specified_name)}" \{(.+?)\}$/.match(output) return match[1].to_s if match nil