GitLab wurde aktualisiert. Dank regelmäßiger Updates bleibt das THM GitLab sicher und Sie profitieren von den neuesten Funktionen. Vielen Dank für Ihre Geduld.

Commit e55473ad authored by Stan Hu's avatar Stan Hu
Browse files

Expire application settings from cache at startup

If a DB migration occurs, there's a chance that the application settings are
loaded from the cache and provide stale values, causing Error 500s.
This ensures that at startup the settings are always refreshed.

Closes #3643
parent dee28c50
Please view this file on the master branch, on stable branches it's out of date.
v 8.3.0 (unreleased)
- Ensure cached application settings are refreshed at startup (Stan Hu)
- Fix: Assignee selector is empty when 'Unassigned' is selected (Jose Corcuera)
- Fix 500 error when update group member permission
......
......@@ -73,15 +73,23 @@ class ApplicationSetting < ActiveRecord::Base
end
after_commit do
Rails.cache.write('application_setting.last', self)
Rails.cache.write(cache_key, self)
end
def self.current
Rails.cache.fetch('application_setting.last') do
Rails.cache.fetch(cache_key) do
ApplicationSetting.last
end
end
def self.expire
Rails.cache.delete(cache_key)
end
def self.cache_key
'application_setting.last'
end
def self.create_from_defaults
create(
default_projects_limit: Settings.gitlab['default_projects_limit'],
......
......@@ -14,11 +14,15 @@ class ApplicationSetting < ActiveRecord::Base
extend Ci::Model
after_commit do
Rails.cache.write('ci_application_setting.last', self)
Rails.cache.write(cache_key, self)
end
def self.expire
Rails.cache.delete(cache_key)
end
def self.current
Rails.cache.fetch('ci_application_setting.last') do
Rails.cache.fetch(cache_key) do
Ci::ApplicationSetting.last
end
end
......@@ -29,5 +33,9 @@ def self.create_from_defaults
add_pusher: Settings.gitlab_ci['add_pusher'],
)
end
def self.cache_key
'ci_application_setting.last'
end
end
end
......@@ -293,3 +293,7 @@ def base_gitlab_url
Settings.gitlab['default_can_create_group'] = true
Settings.gitlab['default_can_create_team'] = false
end
# Force a refresh of application settings at startup
ApplicationSetting.expire
Ci::ApplicationSetting.expire
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment