diff options
author | Tomas Mozes <hydrapolic@gmail.com> | 2017-04-24 08:33:48 +0200 |
---|---|---|
committer | Amy Liffey <amynka@gentoo.org> | 2017-04-24 16:50:50 +0200 |
commit | 798fcf4b562821ec149b7b549dc0b72d9909974f (patch) | |
tree | 0359c9289b20dc4b15f1bfe795ba1578f094af3a /app-emulation/vagrant/files | |
parent | virtual/gnustep-back: 0.25.1 bump (diff) | |
download | gentoo-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.patch | 98 |
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) |