summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomas Mozes <hydrapolic@gmail.com>2017-04-24 08:33:48 +0200
committerAmy Liffey <amynka@gentoo.org>2017-04-24 16:50:50 +0200
commit798fcf4b562821ec149b7b549dc0b72d9909974f (patch)
tree0359c9289b20dc4b15f1bfe795ba1578f094af3a /app-emulation/vagrant/files
parentvirtual/gnustep-back: 0.25.1 bump (diff)
downloadgentoo-798fcf4b562821ec149b7b549dc0b72d9909974f.tar.gz
gentoo-798fcf4b562821ec149b7b549dc0b72d9909974f.tar.bz2
gentoo-798fcf4b562821ec149b7b549dc0b72d9909974f.zip
app-emulation/vagrant: bump to 1.9.3, drop old
Closes:#4460 Package-Manager: Portage-2.3.5, Repoman-2.3.2
Diffstat (limited to 'app-emulation/vagrant/files')
-rw-r--r--app-emulation/vagrant/files/vagrant-1.9.3 (renamed from app-emulation/vagrant/files/vagrant-1.9.1)2
-rw-r--r--app-emulation/vagrant/files/vagrant-1.9.3-thread-deadlock.patch98
2 files changed, 99 insertions, 1 deletions
diff --git a/app-emulation/vagrant/files/vagrant-1.9.1 b/app-emulation/vagrant/files/vagrant-1.9.3
index 40a91d63e962..a8018a644468 100644
--- a/app-emulation/vagrant/files/vagrant-1.9.1
+++ b/app-emulation/vagrant/files/vagrant-1.9.3
@@ -4,7 +4,7 @@
# Vagrant installation directory. This sets up proper environmental variables
# so that everything loads and compiles to proper directories.
-VAGRANT_DIR="$( ruby -e 'print Gem::default_path[-1] + "/gems/vagrant-1.9.1"' )"
+VAGRANT_DIR="$( ruby -e 'print Gem::default_path[-1] + "/gems/vagrant-1.9.3"' )"
# Export GEM_HOME based on VAGRANT_HOME
#
diff --git a/app-emulation/vagrant/files/vagrant-1.9.3-thread-deadlock.patch b/app-emulation/vagrant/files/vagrant-1.9.3-thread-deadlock.patch
new file mode 100644
index 000000000000..75cb63a2fb11
--- /dev/null
+++ b/app-emulation/vagrant/files/vagrant-1.9.3-thread-deadlock.patch
@@ -0,0 +1,98 @@
+From bfc2af4cf9c5e9280f0e7d74de226b7af7c18a2a Mon Sep 17 00:00:00 2001
+From: Chris Roberts <code@chrisroberts.org>
+Date: Mon, 27 Mar 2017 12:55:15 -0700
+Subject: [PATCH] Always provide timeout on thread join to prevent deadlock
+ errors
+
+---
+ lib/vagrant/batch_action.rb | 6 ++++--
+ lib/vagrant/environment.rb | 2 +-
+ lib/vagrant/shared_helpers.rb | 6 ++++++
+ lib/vagrant/ui.rb | 6 +++---
+ 4 files changed, 14 insertions(+), 6 deletions(-)
+
+diff --git a/lib/vagrant/batch_action.rb b/lib/vagrant/batch_action.rb
+index 9b6900f..d27e87d 100644
+--- a/lib/vagrant/batch_action.rb
++++ b/lib/vagrant/batch_action.rb
+@@ -123,7 +123,9 @@ def run
+ # Set some attributes on the thread for later
+ thread[:machine] = machine
+
+- thread.join if !par
++ if !par
++ thread.join(THREAD_MAX_JOIN_TIMEOUT) while thread.alive?
++ end
+ threads << thread
+ end
+
+@@ -131,7 +133,7 @@ def run
+
+ threads.each do |thread|
+ # Wait for the thread to complete
+- thread.join
++ thread.join(THREAD_MAX_JOIN_TIMEOUT) while thread.alive?
+
+ # If the thread had an error, then store the error to show later
+ if thread[:error]
+diff --git a/lib/vagrant/environment.rb b/lib/vagrant/environment.rb
+index 8fad272..125070f 100644
+--- a/lib/vagrant/environment.rb
++++ b/lib/vagrant/environment.rb
+@@ -295,7 +295,7 @@ def batch(parallel=true)
+ #
+ # @return [Hash]
+ def checkpoint
+- @checkpoint_thr.join
++ @checkpoint_thr.join(THREAD_MAX_JOIN_TIMEOUT)
+ return @checkpoint_thr[:result]
+ end
+
+diff --git a/lib/vagrant/shared_helpers.rb b/lib/vagrant/shared_helpers.rb
+index c5d6ea6..5522272 100644
+--- a/lib/vagrant/shared_helpers.rb
++++ b/lib/vagrant/shared_helpers.rb
+@@ -12,6 +12,12 @@ module Vagrant
+ # @return [String]
+ DEFAULT_SERVER_URL = "https://atlas.hashicorp.com"
+
++ # Max number of seconds to wait for joining an active thread.
++ #
++ # @return [Integer]
++ # @note This is not the maxium time for a thread to complete.
++ THREAD_MAX_JOIN_TIMEOUT = 60
++
+ # This holds a global lock for the duration of the block. This should
+ # be invoked around anything that is modifying process state (such as
+ # environmental variables).
+diff --git a/lib/vagrant/ui.rb b/lib/vagrant/ui.rb
+index 8092493..2a52c90 100644
+--- a/lib/vagrant/ui.rb
++++ b/lib/vagrant/ui.rb
+@@ -53,7 +53,7 @@ def initialize_copy(original)
+ # We're being called in a trap-context. Wrap in a thread.
+ Thread.new do
+ @logger.info { "#{method}: #{message}" }
+- end.join
++ end.join(THREAD_MAX_JOIN_TIMEOUT)
+ end
+ end
+ end
+@@ -128,7 +128,7 @@ def machine(type, *data)
+ @lock.synchronize do
+ safe_puts("#{Time.now.utc.to_i},#{target},#{type},#{data.join(",")}")
+ end
+- end.join
++ end.join(THREAD_MAX_JOIN_TIMEOUT)
+ end
+ end
+
+@@ -244,7 +244,7 @@ def say(type, message, **opts)
+ safe_puts(format_message(type, message, **opts),
+ io: channel, printer: printer)
+ end
+- end.join
++ end.join(THREAD_MAX_JOIN_TIMEOUT)
+ end
+
+ def format_message(type, message, **opts)