Fix Error 500 due to stale cache when projects are renamed or transferred
Closes gitlab-org/gitlab-ee#506
This commit is contained in:
parent
be85fde663
commit
6dff1a9a2b
4 changed files with 7 additions and 9 deletions
|
@ -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
|
||||||
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
|
||||||
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
|
||||||
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
|
||||||
|
|
Loading…
Reference in a new issue