title: Error R12 (Exit timeout) using Heroku's recommended Unicorn config
body: <p>My Unicorn config (copied from <a href="https://devcenter.heroku.com/articles/rails-unicorn#adding-unicorn-to-your-application">Heroku's docs</a>):</p>
  
  <pre><code># config/unicorn.rb
  worker_processes Integer(ENV["WEB_CONCURRENCY"] || 3)
  timeout 30
  preload_app true
  
  before_fork do |server, worker|
    Signal.trap 'TERM' do
      puts 'Unicorn master intercepting TERM and sending myself QUIT instead'
      Process.kill 'QUIT', Process.pid
    end
  
    defined?(ActiveRecord::Base) and
      ActiveRecord::Base.connection.disconnect!
  end 
  
  after_fork do |server, worker|
    Signal.trap 'TERM' do
      puts 'Unicorn worker intercepting TERM and doing nothing. Wait for master to send QUIT'
    end
  
    defined?(ActiveRecord::Base) and
      ActiveRecord::Base.establish_connection
  end
  </code></pre>
  
  <p>But every time a dyno is restarted, we get this:</p>
  
  <pre><code>heroku web.5 - - Error R12 (Exit timeout) -&gt; At least one process failed to exit within 10 seconds of SIGTERM
  </code></pre>
  
  <p>Ruby 2.0, Rails 3.2, Unicorn 4.6.3</p>