diff options
author | Yorick Peterse <yorickpeterse@gmail.com> | 2017-09-19 13:55:56 +0200 |
---|---|---|
committer | Yorick Peterse <yorickpeterse@gmail.com> | 2017-09-19 17:16:45 +0200 |
commit | 57b96eb6db9b860991b035714e65ffd557327b6f (patch) | |
tree | 885c999406eeea7b8f73d6262db9a3043e86ad79 /app/services/issues | |
parent | 404a56235f86a69b05991efcf4cc5d7c5f5c4567 (diff) | |
download | gitlab-ce-57b96eb6db9b860991b035714e65ffd557327b6f.tar.gz |
Fix refreshing of issues/MR count cachesfix-counts-caching
This ensures the open issues/MR count caches are refreshed properly when
creating new issues or MRs. This MR also includes a change to the cache
keys to ensure all caches are rebuilt on the fly.
This particular problem was not caught in the test suite due to a null
cache being used, resulting in all calls that would use a cache using
the underlying data directly. In production the code would fail because
a newly saved record returns an empty hash in #changes meaning checks
such as `state_changed? || confidential_changed?` would return false for
new rows, thus never updating the counters.
Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/38061
Diffstat (limited to 'app/services/issues')
-rw-r--r-- | app/services/issues/close_service.rb | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/app/services/issues/close_service.rb b/app/services/issues/close_service.rb index 74459c3342c..0c5cf2c62ad 100644 --- a/app/services/issues/close_service.rb +++ b/app/services/issues/close_service.rb @@ -29,6 +29,7 @@ module Issues todo_service.close_issue(issue, current_user) execute_hooks(issue, 'close') invalidate_cache_counts(issue, users: issue.assignees) + issue.update_project_counter_caches end issue |