Commit 6dff1a9a authored by Stan Hu's avatar Stan Hu

Fix Error 500 due to stale cache when projects are renamed or transferred

Closes gitlab-org/gitlab-ee#506
parent be85fde6
...@@ -8,6 +8,7 @@ v 8.7.1 (unreleased) ...@@ -8,6 +8,7 @@ v 8.7.1 (unreleased)
- Fix license detection to detect all license files, not only known licenses. !3878 - Fix license detection to detect all license files, not only known licenses. !3878
- Use the `can?` helper instead of `current_user.can?`. !3882 - Use the `can?` helper instead of `current_user.can?`. !3882
- Prevent users from deleting Webhooks via API they do not own - 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 v 8.7.0
- Gitlab::GitAccess and Gitlab::GitAccessWiki are now instrumented - Gitlab::GitAccess and Gitlab::GitAccessWiki are now instrumented
......
...@@ -820,13 +820,11 @@ class Project < ActiveRecord::Base ...@@ -820,13 +820,11 @@ class Project < ActiveRecord::Base
wiki = Repository.new("#{old_path}.wiki", self) wiki = Repository.new("#{old_path}.wiki", self)
if repo.exists? if repo.exists?
repo.expire_cache repo.before_delete
repo.expire_emptiness_caches
end end
if wiki.exists? if wiki.exists?
wiki.expire_cache wiki.before_delete
wiki.expire_emptiness_caches
end end
end end
......
...@@ -34,6 +34,8 @@ module Projects ...@@ -34,6 +34,8 @@ module Projects
raise TransferError.new("Project with same path in target namespace already exists") raise TransferError.new("Project with same path in target namespace already exists")
end end
project.expire_caches_before_rename(old_path)
# Apply new namespace id and visibility level # Apply new namespace id and visibility level
project.namespace = new_namespace project.namespace = new_namespace
project.visibility_level = new_namespace.visibility_level unless project.visibility_level_allowed_by_group? project.visibility_level = new_namespace.visibility_level unless project.visibility_level_allowed_by_group?
......
...@@ -719,11 +719,8 @@ describe Project, models: true do ...@@ -719,11 +719,8 @@ describe Project, models: true do
with('foo.wiki', project). with('foo.wiki', project).
and_return(wiki) and_return(wiki)
expect(repo).to receive(:expire_cache) expect(repo).to receive(:before_delete)
expect(repo).to receive(:expire_emptiness_caches) expect(wiki).to receive(:before_delete)
expect(wiki).to receive(:expire_cache)
expect(wiki).to receive(:expire_emptiness_caches)
project.expire_caches_before_rename('foo') project.expire_caches_before_rename('foo')
end end
......
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