Skip Redundant Persistent Ref existence check
What does this MR do?
This MR is to skip the redundant persistent ref existence check. This pressurizes Gitaly nodes and if timeout happens, it could end up fetching all refspecs in runner. The assumption was described by @stanhu at gitlab-com/gl-infra/production#2143 (comment 343690877)
Ok, maybe this is what happened based on https://log.gprd.gitlab.net/goto/15e8e5a9084502a3b17113fa0e0c1e60:
- The ref did, in fact, exist. It seems like there are many chances to create the ref since every build attempts to do so.
- However, the
RefExists
call timed out.- As a result, https://gitlab.com/gitlab-org/gitlab/blob/2bfe8f06724470576e408f3cc282a30f0c271880/app/models/ci/persistent_ref.rb#L18-19 returned
false
, and the CI pipeline got an empty refspec.I still wonder why so many RPCs were stalling out, but perhaps we should cache the existence of this ref?
Screenshots
Does this MR meet the acceptance criteria?
Conformity
-
Changelog entry -
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
Merge request reports
Activity
changed milestone to %13.1
1 Message CHANGELOG missing: If you want to create a changelog entry for GitLab FOSS, run the following:
bin/changelog -m 32391 "Skip Redundant Persistent Ref existence check"
If you want to create a changelog entry for GitLab EE, run the following instead:
bin/changelog --ee -m 32391 "Skip Redundant Persistent Ref existence check"
If this merge request doesn’t need a CHANGELOG entry, feel free to ignore this message.
Reviewer roulette
Changes that require review have been detected! A merge request is normally reviewed by both a reviewer and a maintainer in its primary category (e.g. frontend or backend), and by a maintainer in all other categories.
To spread load more evenly across eligible reviewers, Danger has randomly picked a candidate for each review slot. Feel free to override these selections if you think someone else would be better-suited, or the chosen person is unavailable.
To read more on how to use the reviewer roulette, please take a look at the Engineering workflow and code review guidelines.
Once you've decided who will review this merge request, mention them as you normally would! Danger does not (yet?) automatically notify them for you.
Category Reviewer Maintainer backend Arturo Herrero ( @arturoherrero
)Stan Hu ( @stanhu
)Generated by
DangerEdited by 🤖 GitLab Bot 🤖mentioned in issue gitlab-com/gl-infra/production#2143 (closed)
added 371 commits
-
e63e1fcb...f958fd99 - 370 commits from branch
master
- 20e7cf81 - Remove Redundant Persistent Ref existence check
-
e63e1fcb...f958fd99 - 370 commits from branch
added 1 commit
- 4fd05ce9 - Remove Redundant Persistent Ref existence check
added Pick into auto-deploy severity2 labels and removed severity3 label
- Resolved by Stan Hu
This looks good to me! Anything else we need to do here?
assigned to @stanhu and unassigned @dosuken123
mentioned in commit bc5191ed
picked the changes into the branch
13-1-auto-deploy-20200518
with commit 8c06c64ementioned in commit 8c06c64e
removed Pick into auto-deploy label
added workflowstaging label
added workflowcanary label and removed workflowstaging label
added workflowproduction label and removed workflowcanary label
mentioned in issue gitlab-org/quality/triage-reports#15276 (closed)
mentioned in issue gitlab-org/quality/triage-reports#15703 (closed)
mentioned in issue gitlab-org/quality/triage-reports#16009 (closed)
mentioned in issue gitlab-org/quality/triage-reports#16471 (closed)
mentioned in issue gitlab-org/quality/triage-reports#17005 (closed)
mentioned in issue gitlab-org/quality/triage-reports#17455 (closed)
mentioned in issue gitlab-org/quality/triage-reports#17915 (closed)
mentioned in issue gitlab-org/quality/triage-reports#18448 (closed)
mentioned in issue gitlab-org/quality/triage-reports#18928 (closed)
mentioned in issue gitlab-org/quality/triage-reports#19382 (closed)
mentioned in issue gitlab-org/quality/triage-reports#20613 (closed)