FIX: stop using Rails connection reaper in multisite
The Rails 5.2 connection reaper appears to be leaking threads this is a quick fix to stop it, though we need to make sure we never leak connection pools as well.
This commit is contained in:
parent
c56bd2ac16
commit
66982c7800
|
@ -270,5 +270,9 @@ module Discourse
|
|||
g.test_framework :rspec, fixture: false
|
||||
end
|
||||
|
||||
# we have a monkey_patch we need to require early... prior to connection
|
||||
# init
|
||||
require 'freedom_patches/reaper'
|
||||
|
||||
end
|
||||
end
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
# Discourse ships with a connection reaper
|
||||
# this patch ensures that the connection reaper never runs in Rails
|
||||
#
|
||||
# In Rails 5.2 the connection reaper is "per-pool" this means it can bloat
|
||||
# threads quite a lot in a multisite
|
||||
#
|
||||
# Note, the "correct" way is to set this in the spec, however due to multisite
|
||||
# getting reaper_interval=0 into all the specs is not going to be trivial
|
||||
# when we eventually do that we can remove this patch
|
||||
|
||||
if !defined? ActiveRecord::ConnectionAdapters::ConnectionPool::Reaper
|
||||
raise "Can not find connection Reaper class, this patch will no longer work!"
|
||||
end
|
||||
|
||||
class ActiveRecord::ConnectionAdapters::ConnectionPool::Reaper
|
||||
def run
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue