Acceptance Testing: RepositoryService::exists
~Conversation: #314 (closed)
See the Migration Process documentation for more information on the Acceptance Testing stage of the process.
Feature Toggle Name: gitaly_repository_exists
1. Preparation
-
Routes: what routes use this migration? - Lots of indirect calls to it, by
Project#valid_repo?
,Project#repo_exists?
(which has a scaryrescue
call),Project#default_branch
- Most used when either creating a repo, or importing one.
-
Projects#create
or through the API Projects#show
Import::GitlabProjectsController#create
- Note: all calls go through
Repository#exists?
which is cached. This is expire after creation, deletion, or after importing. This migration will likely only affect those routes
- Lots of indirect calls to it, by
-
Sentry: -
Ensure that all gitaly_migrate
issues in theGitLab.com
tracker are either assigned or resolved: https://sentry.gitlap.com/gitlab/gitlabcom/?query=is%3Aunresolved+is%3Aunassigned+gitaly_migrate -
Ensure that all issues in the Gitaly Production
tracker are either assigned or resolved: https://sentry.gitlap.com/gitlab/gitaly-production/?query=is%3Aunresolved+is%3Aunassigned
-
-
Grafana -
Kibana
2. Development and Staging Trial
- Enable on
dev.gitlab.com
:- ssh into
dev.gitlab.com
and enable the feature running by runningFeature.get('gitaly_FEATURE_NAME').enable
on a rails console. - Perform some testing and leave the feature enabled
- ssh into
- Enable on
staging.gitlab.com
in#development
- Perform some testing and leave the feature enabled
2. Low Impact Trial
- Set Gitaly to 5% using the command
!feature-set gitaly_FEATURE_NAME 5
in#production
- Leave running for at least 2 hours
- Monitor sentry, grafana and kibaba links above, every 30 minutes
- On usual activity, disable trial with
!feature-set gitaly_FEATURE_NAME false
in#production
- On usual activity, disable trial with
2. Mid Impact Trial
- Set Gitaly to 50% using the command
!feature-set gitaly_FEATURE_NAME 50
in#production
- Leave running for at least 24 hours
- Monitor sentry, grafana and kibaba links above, every few hours
- On usual activity, disable trial with
!feature-set gitaly_FEATURE_NAME false
in#production
- On usual activity, disable trial with
2. Full Impact Trial
- Set Gitaly to 100% using the command
!feature-set gitaly_FEATURE_NAME true
in#production
- Leave running for at least a week
- Monitor sentry, grafana and kibaba links above daily
- On usual activity, disable trial with
!feature-set gitaly_FEATURE_NAME false
in#production
- On usual activity, disable trial with
3. Outcome
-
Report on the outcome of the tests (leave comments on this issue)
-
Did the migration perform as expected? -
Did the code have reasonable performance characteristics? -
Did error rates jump to an unacceptable level?
-
-
Additional Runbook information required? -
If so, was it added? (link to MR)
-
-
Prometheus Alerts Added -
If so, was it added? (link to MR)
-
Edited by Zeger-Jan van de Weg