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 scaryrescuecall),Project#default_branch- Most used when either creating a repo, or importing one.
-
Projects#createor through the API Projects#showImport::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_migrateissues in theGitLab.comtracker 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 Productiontracker 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.comand enable the feature running by runningFeature.get('gitaly_FEATURE_NAME').enableon a rails console. - Perform some testing and leave the feature enabled
- ssh into
- Enable on
staging.gitlab.comin#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 5in#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 falsein#production
- On usual activity, disable trial with
2. Mid Impact Trial
- Set Gitaly to 50% using the command
!feature-set gitaly_FEATURE_NAME 50in#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 falsein#production
- On usual activity, disable trial with
2. Full Impact Trial
- Set Gitaly to 100% using the command
!feature-set gitaly_FEATURE_NAME truein#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 falsein#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