summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStan Hu <stanhu@gmail.com>2016-03-27 05:54:12 -0700
committerStan Hu <stanhu@gmail.com>2016-03-27 08:52:44 -0700
commit2e328c1ea780d818ea1494bdd2edfbfc36165c24 (patch)
treea7099e9b676ee659254be090bda7e6df01e096c2
parentc1834664a7a29a32551291102265ece978c55ffe (diff)
downloadgitlab-ce-2e328c1ea780d818ea1494bdd2edfbfc36165c24.tar.gz
Expire the exists cache before deletion to ensure project dir actually exists
Closes #14659
-rw-r--r--app/models/repository.rb2
-rw-r--r--spec/models/repository_spec.rb2
2 files changed, 3 insertions, 1 deletions
diff --git a/app/models/repository.rb b/app/models/repository.rb
index c07e8072043..ff24b75dcd1 100644
--- a/app/models/repository.rb
+++ b/app/models/repository.rb
@@ -335,6 +335,8 @@ class Repository
# Runs code just before a repository is deleted.
def before_delete
+ expire_exists_cache
+
expire_cache if exists?
expire_root_ref_cache
diff --git a/spec/models/repository_spec.rb b/spec/models/repository_spec.rb
index f10d671104c..9242a6f1739 100644
--- a/spec/models/repository_spec.rb
+++ b/spec/models/repository_spec.rb
@@ -558,7 +558,7 @@ describe Repository, models: true do
end
it 'flushes the exists cache' do
- expect(repository).to receive(:expire_exists_cache)
+ expect(repository).to receive(:expire_exists_cache).twice
repository.before_delete
end