summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-12-04 16:54:50 +0000
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-12-04 16:54:50 +0000
commit40143a8eee7ebbdb36daf0aa2c5487cdca3b304d (patch)
tree11ab8d5c9b0221c437d4a19c317d237061a93429
parenteafa55f105e0cdbe902df7f10f7924d6b90cf74e (diff)
parent32b45493b89b35b7b7d3f086e8996d1ed7b8d0f3 (diff)
downloadgitlab-ce-40143a8eee7ebbdb36daf0aa2c5487cdca3b304d.tar.gz
Merge branch 'fix-application-settings-not-expiring' into 'master'
Fix application settings cache not expiring after changes cache_key is an instance method that relies on updated_at. When changes were made, the time-dependent key was being used instead of X.application_setting.last. Closes #3609 See merge request !1972
-rw-r--r--CHANGELOG1
-rw-r--r--app/models/application_setting.rb12
-rw-r--r--app/models/ci/application_setting.rb11
3 files changed, 10 insertions, 14 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 93d59966873..ea597f47745 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
Please view this file on the master branch, on stable branches it's out of date.
v 8.3.0 (unreleased)
+ - Fix application settings cache not expiring after changes (Stan Hu)
- Fix: Assignee selector is empty when 'Unassigned' is selected (Jose Corcuera)
- Fix 500 error when update group member permission
- Trim leading and trailing whitespace of milestone and issueable titles (Jose Corcuera)
diff --git a/app/models/application_setting.rb b/app/models/application_setting.rb
index 3df8135acf1..5ddcf3d9a0b 100644
--- a/app/models/application_setting.rb
+++ b/app/models/application_setting.rb
@@ -30,6 +30,8 @@
#
class ApplicationSetting < ActiveRecord::Base
+ CACHE_KEY = 'application_setting.last'
+
serialize :restricted_visibility_levels
serialize :import_sources
serialize :restricted_signup_domains, Array
@@ -73,21 +75,17 @@ class ApplicationSetting < ActiveRecord::Base
end
after_commit do
- Rails.cache.write(cache_key, self)
+ Rails.cache.write(CACHE_KEY, self)
end
def self.current
- Rails.cache.fetch(cache_key) 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'
+ Rails.cache.delete(CACHE_KEY)
end
def self.create_from_defaults
diff --git a/app/models/ci/application_setting.rb b/app/models/ci/application_setting.rb
index 4e512d290ee..7f5df8ce6c4 100644
--- a/app/models/ci/application_setting.rb
+++ b/app/models/ci/application_setting.rb
@@ -12,17 +12,18 @@
module Ci
class ApplicationSetting < ActiveRecord::Base
extend Ci::Model
+ CACHE_KEY = 'ci_application_setting.last'
after_commit do
- Rails.cache.write(cache_key, self)
+ Rails.cache.write(CACHE_KEY, self)
end
def self.expire
- Rails.cache.delete(cache_key)
+ Rails.cache.delete(CACHE_KEY)
end
def self.current
- Rails.cache.fetch(cache_key) do
+ Rails.cache.fetch(CACHE_KEY) do
Ci::ApplicationSetting.last
end
end
@@ -33,9 +34,5 @@ module Ci
add_pusher: Settings.gitlab_ci['add_pusher'],
)
end
-
- def self.cache_key
- 'ci_application_setting.last'
- end
end
end