Fix ElasticDeleteProjectWorker delete commits, index_status
What does this MR do?
This ElasticDeleteProjectWorker
is a sidekiq worker that is
responsible for clearing project data out of our Elasticsearch index. It
does this using a Delete by
query
which attempts to find all associated (child records) for the project
and delete them as well as the project
This MR fixes 2 problems with ElasticDeleteProjectWorker
:
- Previously this worker was not correctly deleting commits as they did
not have a
project_id
#327829 (closed). We do have acommit.rid
which is theproject_id
set so we need to use this in ourdelete_by_query
- We had another weird bug
#259721 (closed) where we were not
correctly clearing
index_status
after running this worker. When this worker was created this made sense because it was only used when a project was deleted. But on GitLab.com we also use this when a project subscription expires. Therefore any projects that had expired subscriptions then later renewed were considered to already be indexed based on index_status which caused most of the repository to be missed.
Screenshots (strongly suggested)
Does this MR meet the acceptance criteria?
Conformity
-
📋 Does this MR need a changelog?-
I have included a changelog entry. -
I have not included a changelog entry because _____.
-
- [-] Documentation (if required)
-
Code review guidelines -
Merge request performance guidelines -
Style guides -
Database guides -
Separation of EE specific content
Availability and Testing
-
Review and add/update tests for this feature/bug. Consider all test levels. See the Test Planning Process. -
Tested in all supported browsers -
Informed Infrastructure department of a default or new setting change, if applicable per definition of done
Security
If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:
-
Label as security and @ mention @gitlab-com/gl-security/appsec
-
The MR includes necessary changes to maintain consistency between UI, API, email, or other methods -
Security reports checked/validated by a reviewer from the AppSec team
Related to #259721 (closed)
Edited by Dylan Griffith