From 28a0cb494ad901d648763372bc198aa9a3b6e393 Mon Sep 17 00:00:00 2001 From: Sam Date: Thu, 10 Oct 2013 14:16:09 +1100 Subject: [PATCH] rails 4 upgrade rack lock is trouble, nuke it out of orbit more aggressive suicide for forked sidekiq --- Gemfile_rails4.lock | 178 +++++++++++++++++++++--------------------- config/application.rb | 5 ++ lib/demon/sidekiq.rb | 4 +- 3 files changed, 97 insertions(+), 90 deletions(-) diff --git a/Gemfile_rails4.lock b/Gemfile_rails4.lock index 2a459f1a0d2..a0d4531c615 100644 --- a/Gemfile_rails4.lock +++ b/Gemfile_rails4.lock @@ -2,16 +2,6 @@ GIT remote: git://github.com/SamSaffron/redis-store.git revision: 1eafaa3d8bfbcb61ad89d1a2831adbba4ea8e1e1 specs: - redis-actionpack (3.2.3) - actionpack (>= 3.2.3) - redis-rack (~> 1.4.0) - redis-store (~> 1.1.0) - redis-activesupport (3.2.3) - activesupport (>= 3.2.3) - redis-store (~> 1.1.0) - redis-rack (1.4.2) - rack (> 1.4.1) - redis-store (~> 1.1.0) redis-rails (3.2.3) redis-actionpack (>= 3.2.3) redis-activesupport (>= 3.2.3) @@ -27,13 +17,13 @@ GIT GIT remote: git://github.com/paulelliott/fabrication.git - revision: 385f2ddf0a97a007593c3df9a5586401500a74a4 + revision: e5738689767e97876b8cb9818ebda2b6a4fcdd58 specs: - fabrication (2.7.2) + fabrication (2.8.1) GIT remote: git://github.com/rails/rails.git - revision: 08376d3796482fefcd03ad1d7e0bcce0df4c9913 + revision: cfd9186e34a25a29f7cd2018e91548f5d1be22af branch: 4-0-stable specs: actionmailer (4.0.0) @@ -75,9 +65,9 @@ GIT GIT remote: git://github.com/sporkrb/spork-rails.git - revision: 3224f84d8c31fcb0894e9a43f6c3ac67e3aa0d71 + revision: 0dd45e59d3237b4c8f9efc215b46d9c07072a95e specs: - spork-rails (3.2.1) + spork-rails (4.0.0) rails (>= 3.0.0, < 5) spork (>= 1.0rc0) @@ -91,7 +81,7 @@ GIT GIT remote: https://github.com/MiniProfiler/rack-mini-profiler.git - revision: e08b751091a41f0066a1b28bd4e2b9b3480a1c1b + revision: c61f78062b924e9ac150b76bd0d2a50d0300afcd specs: rack-mini-profiler (0.1.31) rack (>= 1.1.3) @@ -113,7 +103,7 @@ GIT GIT remote: https://github.com/SamSaffron/message_bus - revision: 09392967940daf77943d1489ed3f1f71d6f8450a + revision: 00f12ec544d7d72965f58d6af167cafa46aac582 specs: message_bus (0.0.2) eventmachine @@ -192,14 +182,14 @@ GEM ember-source execjs handlebars-source - better_errors (0.9.0) + better_errors (1.0.1) coderay (>= 1.0.0) erubis (>= 2.6.6) binding_of_caller (0.7.2) debug_inspector (>= 0.0.1) builder (3.1.4) - celluloid (0.14.1) - timers (>= 1.0.0) + celluloid (0.15.2) + timers (~> 1.1.0) certified (0.1.1) coderay (1.0.9) connection_pool (1.1.0) @@ -207,7 +197,7 @@ GEM debug_inspector (0.0.2) diff-lcs (1.2.4) diffy (3.0.1) - ember-data-source (0.13) + ember-data-source (0.14) ember-source ember-rails (0.13.0) active_model_serializers @@ -222,11 +212,11 @@ GEM erubis (2.7.0) eventmachine (1.0.3) excon (0.25.3) - execjs (1.4.0) - multi_json (~> 1.0) + execjs (2.0.2) + exifr (1.1.3) fakeweb (1.3.0) - faraday (0.8.7) - multipart-post (~> 1.1) + faraday (0.8.8) + multipart-post (~> 1.2.0) fast_blank (0.0.1) rake rake-compiler @@ -234,9 +224,9 @@ GEM rake rake-compiler fast_xs (0.8.0) - fastimage (1.5.0) + fastimage (1.5.2) ffi (1.9.0) - fog (1.14.0) + fog (1.15.0) builder excon (~> 0.25.0) formatador (~> 0.2.0) @@ -247,8 +237,8 @@ GEM nokogiri (~> 1.5) ruby-hmac formatador (0.2.4) - fspath (2.0.4) - given_core (3.0.0) + fspath (2.0.5) + given_core (3.1.1) sorcerer (>= 0.3.7) handlebars-source (1.0.12) hashie (2.0.5) @@ -258,44 +248,45 @@ GEM httpauth (0.2.0) i18n (0.6.5) ice_cube (0.11.0) - image_optim (0.8.1) - fspath (~> 2.0.3) + image_optim (0.9.1) + exifr (~> 1.1.3) + fspath (~> 2.0.5) image_size (~> 1.1.2) - in_threads (~> 1.1.1) - progress (~> 2.4.0) - image_size (1.1.2) + in_threads (~> 1.2.0) + progress (~> 3.0.0) + image_size (1.1.3) image_sorcery (1.1.0) - in_threads (1.1.1) + in_threads (1.2.0) json (1.8.0) jwt (0.1.8) multi_json (>= 1.5) - kgio (2.8.0) - librarian (0.1.0) + kgio (2.8.1) + librarian (0.1.1) highline thor (~> 0.15) libv8 (3.16.14.3) - listen (1.2.2) + listen (2.0.3) + celluloid (>= 0.15.2) rb-fsevent (>= 0.9.3) rb-inotify (>= 0.9) - rb-kqueue (>= 0.2) - lru_redux (0.0.6) + lru_redux (0.8.1) mail (2.5.4) mime-types (~> 1.16) treetop (~> 1.4.8) metaclass (0.0.1) - method_source (0.8.1) + method_source (0.8.2) mime-types (1.25) mini_portile (0.5.1) minitest (4.7.5) mocha (0.14.0) metaclass (~> 0.0.1) - mock_redis (0.8.1) - multi_json (1.8.0) + mock_redis (0.9.0) + multi_json (1.8.1) multipart-post (1.2.0) mustache (0.99.4) net-scp (1.1.2) net-ssh (>= 2.6.5) - net-ssh (2.6.8) + net-ssh (2.7.0) nokogiri (1.6.0) mini_portile (~> 0.5.0) oauth (0.4.7) @@ -305,7 +296,7 @@ GEM jwt (~> 0.1.4) multi_json (~> 1.0) rack (~> 1.2) - oj (2.1.4) + oj (2.1.6) omniauth (1.1.4) hashie (>= 1.2, < 3) rack @@ -327,26 +318,26 @@ GEM omniauth-openid (1.0.1) omniauth (~> 1.0) rack-openid (~> 1.3.1) - omniauth-twitter (1.0.0) + omniauth-twitter (1.0.1) multi_json (~> 1.3) omniauth-oauth (~> 1.0) openid-redis-store (0.0.2) redis ruby-openid - pg (0.15.1) + pg (0.17.0) polyglot (0.3.3) - progress (2.4.0) + progress (3.0.0) pry (0.9.12.2) coderay (~> 1.0.5) method_source (~> 0.8) slop (~> 3.4) pry-nav (0.2.3) pry (~> 0.9.10) - pry-rails (0.3.1) + pry-rails (0.3.2) pry (>= 0.9.10) - puma (2.5.1) + puma (2.6.0) rack (>= 1.1, < 2.0) - qunit-rails (0.0.3) + qunit-rails (0.0.4) railties (>= 3.2.3) rack (1.5.2) rack-cache (1.2) @@ -362,21 +353,29 @@ GEM rack (>= 1.0) rails-observers (0.1.2) activemodel (~> 4.0) - raindrops (0.11.0) + raindrops (0.12.0) rake (10.1.0) - rake-compiler (0.8.3) + rake-compiler (0.9.1) rake rb-fsevent (0.9.3) - rb-inotify (0.9.0) - ffi (>= 0.5.0) - rb-kqueue (0.2.0) + rb-inotify (0.9.2) ffi (>= 0.5.0) redcarpet (3.0.0) - redis (3.0.4) + redis (3.0.5) + redis-actionpack (4.0.0) + actionpack (~> 4) + redis-rack (~> 1.5.0) + redis-store (~> 1.1.0) + redis-activesupport (4.0.0) + activesupport (~> 4) + redis-store (~> 1.1.0) redis-namespace (1.3.1) redis (~> 3.0.0) - redis-store (1.1.2) - redis (>= 2.2.0) + redis-rack (1.5.0) + rack (~> 1.5) + redis-store (~> 1.1.0) + redis-store (1.1.4) + redis (>= 2.2) ref (1.0.5) rest-client (1.6.7) mime-types (>= 1.16) @@ -385,13 +384,13 @@ GEM rspec-core (~> 2.14.0) rspec-expectations (~> 2.14.0) rspec-mocks (~> 2.14.0) - rspec-core (2.14.3) - rspec-expectations (2.14.0) + rspec-core (2.14.5) + rspec-expectations (2.14.3) diff-lcs (>= 1.1.3, < 2.0) - rspec-given (3.0.0) - given_core (= 3.0.0) + rspec-given (3.1.1) + given_core (= 3.1.1) rspec (>= 2.12) - rspec-mocks (2.14.1) + rspec-mocks (2.14.3) rspec-rails (2.14.0) actionpack (>= 3.0) activesupport (>= 3.0) @@ -400,10 +399,10 @@ GEM rspec-expectations (~> 2.14.0) rspec-mocks (~> 2.14.0) ruby-hmac (0.4.0) - ruby-openid (2.2.3) + ruby-openid (2.3.0) sanitize (2.0.6) nokogiri (>= 1.4.4) - sass (3.2.9) + sass (3.2.12) sass-rails (4.0.0) railties (>= 4.0.0.beta, < 5.0) sass (>= 3.1.10) @@ -411,20 +410,21 @@ GEM shoulda (3.5.0) shoulda-context (~> 1.0, >= 1.0.1) shoulda-matchers (>= 1.4.1, < 3.0) - shoulda-context (1.1.4) - shoulda-matchers (2.2.0) + shoulda-context (1.1.5) + shoulda-matchers (2.4.0) activesupport (>= 3.0.0) - sidekiq (2.13.0) - celluloid (>= 0.14.1) + sidekiq (2.15.1) + celluloid (>= 0.15.1) connection_pool (>= 1.0.0) json - redis (>= 3.0) - redis-namespace - sidekiq-failures (0.2.1) - sidekiq (>= 2.2.1) - sidetiq (0.3.6) + redis (>= 3.0.4) + redis-namespace (>= 1.3.1) + sidekiq-failures (0.2.2) + sidekiq (>= 2.9.0) + sidetiq (0.4.2) + celluloid (>= 0.14.1) ice_cube (~> 0.11.0) - sidekiq (~> 2.13.0) + sidekiq (~> 2.15.0) simplecov (0.7.1) multi_json (~> 1.0) simplecov-html (~> 0.7.1) @@ -433,12 +433,12 @@ GEM rack (~> 1.4) rack-protection (~> 1.4) tilt (~> 1.3, >= 1.3.4) - slim (2.0.0) - temple (~> 0.6.5) - tilt (~> 1.3, >= 1.3.3) - slop (3.4.5) - sorcerer (1.0.0) - spork (1.0.0rc3) + slim (2.0.1) + temple (~> 0.6.6) + tilt (>= 1.3.3, < 2.1) + slop (3.4.6) + sorcerer (1.0.2) + spork (1.0.0rc4) sprockets (2.10.0) hike (~> 1.2) multi_json (~> 1.0) @@ -448,25 +448,25 @@ GEM actionpack (>= 3.0) activesupport (>= 3.0) sprockets (~> 2.8) - temple (0.6.5) + temple (0.6.7) therubyracer (0.12.0) libv8 (~> 3.16.14.0) ref - thin (1.5.1) + thin (1.6.0) daemons (>= 1.0.9) - eventmachine (>= 0.12.6) - rack (>= 1.0.0) + eventmachine (>= 1.0.0) + rack (>= 1.5.0) thor (0.18.1) thread_safe (0.1.3) atomic tilt (1.4.1) - timecop (0.6.2.2) + timecop (0.6.3) timers (1.1.0) treetop (1.4.15) polyglot polyglot (>= 0.3.1) - tzinfo (0.3.37) - uglifier (2.1.2) + tzinfo (0.3.38) + uglifier (2.2.1) execjs (>= 0.3.0) multi_json (~> 1.0, >= 1.0.2) unicorn (4.6.3) diff --git a/config/application.rb b/config/application.rb index e069fa36782..296d3c2712a 100644 --- a/config/application.rb +++ b/config/application.rb @@ -97,6 +97,10 @@ module Discourse # rake assets:precompile also fails config.threadsafe! unless rails4? || $PROGRAM_NAME =~ /spork|rake/ + # rack lock is nothing but trouble, get rid of it + # for some reason still seeing it in Rails 4 + config.middleware.delete Rack::Lock + # route all exceptions via our router config.exceptions_app = self.routes @@ -120,6 +124,7 @@ module Discourse # attr_accessible. config.active_record.whitelist_attributes = false + require 'plugin' require 'auth' unless Rails.env.test? diff --git a/lib/demon/sidekiq.rb b/lib/demon/sidekiq.rb index 26ab540ace3..9ad4b4507ed 100644 --- a/lib/demon/sidekiq.rb +++ b/lib/demon/sidekiq.rb @@ -99,7 +99,9 @@ class Demon::Base def monitor_parent Thread.new do while true - exit unless alive?(@parent_pid) + unless alive?(@parent_pid) + Process.kill "QUIT", Process.pid + end sleep 1 end end