summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYorick Peterse <yorickpeterse@gmail.com>2016-04-25 14:57:16 +0000
committerYorick Peterse <yorickpeterse@gmail.com>2016-04-25 21:54:09 +0200
commita3783cde1a82572c184550ea32f2cde724473ab8 (patch)
tree0b7999b1ab7b3725ab72271da4ce0b1866c02379
parent8d7c63b708a9850b9d0a780358d333bce440f2b4 (diff)
downloadgitlab-ce-a3783cde1a82572c184550ea32f2cde724473ab8.tar.gz
Merge branch 'fix-cache-invalidations' into 'master'
Fix Error 500 due to stale cache when projects are renamed or transferred See merge request !3865
-rw-r--r--CHANGELOG2
-rw-r--r--app/models/project.rb6
-rw-r--r--app/services/projects/transfer_service.rb2
-rw-r--r--spec/models/project_spec.rb7
4 files changed, 8 insertions, 9 deletions
diff --git a/CHANGELOG b/CHANGELOG
index e2716402c21..5866330fe6e 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -7,6 +7,8 @@ v 8.7.1 (unreleased)
- Fix .gitlab-ci.yml parsing issue when hidde job is a template without script definition. !3849
- Fix license detection to detect all license files, not only known licenses. !3878
- Use the `can?` helper instead of `current_user.can?`. !3882
+ - Prevent users from deleting Webhooks via API they do not own
+ - Fix Error 500 due to stale cache when projects are renamed or transferred
v 8.7.0
- Gitlab::GitAccess and Gitlab::GitAccessWiki are now instrumented
diff --git a/app/models/project.rb b/app/models/project.rb
index 8f0272d2ce0..4ad0c1f32de 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -820,13 +820,11 @@ class Project < ActiveRecord::Base
wiki = Repository.new("#{old_path}.wiki", self)
if repo.exists?
- repo.expire_cache
- repo.expire_emptiness_caches
+ repo.before_delete
end
if wiki.exists?
- wiki.expire_cache
- wiki.expire_emptiness_caches
+ wiki.before_delete
end
end
diff --git a/app/services/projects/transfer_service.rb b/app/services/projects/transfer_service.rb
index 79a27f4af7e..111b3ec05ea 100644
--- a/app/services/projects/transfer_service.rb
+++ b/app/services/projects/transfer_service.rb
@@ -34,6 +34,8 @@ module Projects
raise TransferError.new("Project with same path in target namespace already exists")
end
+ project.expire_caches_before_rename(old_path)
+
# Apply new namespace id and visibility level
project.namespace = new_namespace
project.visibility_level = new_namespace.visibility_level unless project.visibility_level_allowed_by_group?
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb
index f29c389e094..f5757b9d178 100644
--- a/spec/models/project_spec.rb
+++ b/spec/models/project_spec.rb
@@ -706,11 +706,8 @@ describe Project, models: true do
with('foo.wiki', project).
and_return(wiki)
- expect(repo).to receive(:expire_cache)
- expect(repo).to receive(:expire_emptiness_caches)
-
- expect(wiki).to receive(:expire_cache)
- expect(wiki).to receive(:expire_emptiness_caches)
+ expect(repo).to receive(:before_delete)
+ expect(wiki).to receive(:before_delete)
project.expire_caches_before_rename('foo')
end