From 1eac4a464aefd3e52b0cf10d976aa3fada37b8cb Mon Sep 17 00:00:00 2001 From: uu59 Date: Wed, 4 Feb 2015 10:54:15 +0900 Subject: [PATCH] Workaround sometimes FluentGem.list fail --- app/models/fluent_gem.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/models/fluent_gem.rb b/app/models/fluent_gem.rb index 09e6cb6..8622962 100644 --- a/app/models/fluent_gem.rb +++ b/app/models/fluent_gem.rb @@ -17,8 +17,11 @@ module FluentGem # but long living caching causes mismatch with actual status e.g. user install plugin from console (without fluentd-ui) # So our decision is that cache `gem list` in 3 seconds Rails.cache.fetch(LIST_CACHE_KEY, expires_in: 3.seconds) do + last_status = $? output = `#{gem} list 2>&1` - if $? && $?.exitstatus != 0 # NOTE: $? will be nil on CircleCI, so check $? at first + # https://github.com/fluent/fluentd-ui/pull/149#issuecomment-71954588 + # Sometimes, $? wouldn't override with `#{gem} list` but I don't know why.. + if $? && last_status != $? && $?.exitstatus != 0 # NOTE: $? will be nil on CircleCI, so check $? at first raise GemError, "failed command: `#{gem} list` output: #{output}" end output.lines.to_a