diff options
author | Grzegorz Bizon <grzegorz@gitlab.com> | 2018-10-29 10:02:11 +0000 |
---|---|---|
committer | Grzegorz Bizon <grzegorz@gitlab.com> | 2018-10-29 10:02:11 +0000 |
commit | 5a460397a1ff9456e8bb85cf1938aed1e0c35722 (patch) | |
tree | 373a9def76b9d3f5011dd0189f528068996acf94 /lib | |
parent | b868b02c626dc4f9986eb93e54cf593055121972 (diff) | |
parent | 77cfdb0aead31e3f3ceb7208b8bd39a88bc13f9e (diff) | |
download | gitlab-ce-5a460397a1ff9456e8bb85cf1938aed1e0c35722.tar.gz |
Merge branch '52780-stale-pipeline-status-cache-for-_project-after-disabling-pipelines' into 'master'
Resolve "Stale pipeline status cache for `_project` after disabling pipelines"
Closes #52780
See merge request gitlab-org/gitlab-ce!22589
Diffstat (limited to 'lib')
-rw-r--r-- | lib/gitlab/cache/ci/project_pipeline_status.rb | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/gitlab/cache/ci/project_pipeline_status.rb b/lib/gitlab/cache/ci/project_pipeline_status.rb index b369b9e7600..dfbb83f7bb9 100644 --- a/lib/gitlab/cache/ci/project_pipeline_status.rb +++ b/lib/gitlab/cache/ci/project_pipeline_status.rb @@ -42,7 +42,7 @@ module Gitlab end def self.cache_key_for_project(project) - "#{Gitlab::Redis::Cache::CACHE_NAMESPACE}:projects/#{project.id}/pipeline_status" + "#{Gitlab::Redis::Cache::CACHE_NAMESPACE}:projects/#{project.id}/pipeline_status/#{project.commit&.sha}" end def self.update_for_pipeline(pipeline) @@ -84,9 +84,7 @@ module Gitlab def load_from_project return unless commit - self.sha = commit.sha - self.status = commit.status - self.ref = project.default_branch + self.sha, self.status, self.ref = commit.sha, commit.status, project.default_branch end # We only cache the status for the HEAD commit of a project @@ -104,6 +102,8 @@ module Gitlab def load_from_cache Gitlab::Redis::Cache.with do |redis| self.sha, self.status, self.ref = redis.hmget(cache_key, :sha, :status, :ref) + + self.status = nil if self.status.empty? end end |