Bundle-uri capability: Only advertise when bundle exist
This MR is a building block towards enabling bundle-uri feature.
Here we modify the way bundle-uri
capability is advertised to the client to only make it so when a bundle exist for the given repository.
For SSH, this change does not provide much benefit since the whole packfile negociation flow is performed on a single connection. In other words, the flow starts when the client starts the upload-pack service, and it ends when the client received all the objects it needed.
For SmartHTTP, however, this is different. Each request/command sent by the client (ls-refs
, bundle-uri
, fetch
) is sent on different, stateless, RPC calls. There is no way to know what command the client is sending to the git-upload-pack process until that process is actually started, which means that the Git config injected into the process must be computed in advance for every request; this implies computing the SignedURL of the bundle if it exist. By advertising bundle-uri
capability only when a bundle exists for the given repository, we make sure the client won't send a bundle-uri
command if no bundle exist.
This not only reduces by 1 the number of round-trip request and the number of Git config computation, but it also make it easier to monitor the use of bundle-uri
feature, since now we can be sure that when a client sends the bundle-uri
command, it is because:
- A bundle exists
- The server advertised the capability
- The client support the capability
Thus, we now have a way to know if a client is using bundle-uri
or not.
References: #6572 (closed)
Merge request reports
Activity
added groupgitaly label
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 and by a maintainer in all other categories.
To spread load more evenly across eligible reviewers, Danger has picked a candidate for each review slot. Feel free to override these selections if you think someone else would be better-suited or use the GitLab Review Workload Dashboard to find other available reviewers.
To read more on how to use the reviewer roulette, please take a look at the Engineering workflow and code review guidelines. Please consider assigning a reviewer or maintainer who is a domain expert in the area of the merge request.
Once you've decided who will review this merge request, mention them as you normally would! Danger does not automatically notify them for you.
Category Reviewer Maintainer None @mustafabayar
(UTC+1)
@mustafabayar
(UTC+1)
If needed, you can retry the
danger-review
job that generated this comment.Generated by
DangerEdited by ****- Resolved by 🤖 GitLab Bot 🤖
Proper labels assigned to this merge request. Please ignore me.
@oli.campeau
- please see the following guidance and update this merge request.1 Error Please add typebug typefeature, or typemaintenance label to this merge request. Edited by 🤖 GitLab Bot 🤖
added 1 commit
- eb667e57 - Bundle-uri capability: Only advertise when bundle exist
changed milestone to %17.9
added typefeature label
assigned to @oli.campeau
requested review from @toon and @mustafabayar
@toon I am tagging you here since we already discussed that topic.
added 1 commit
- caae4ced - Bundle-uri capability: Only advertise when bundle exist
- Automatically resolved by Olivier Campeau
- Automatically resolved by Olivier Campeau
- Resolved by Olivier Campeau
- Automatically resolved by Olivier Campeau
- Resolved by Olivier Campeau
Added some questions but in general it looks good, pre-approving
added 1 commit
- 8fb84205 - Bundle-uri capability: Only advertise when bundle exist
reset approvals from @mustafabayar by pushing to the branch
requested review from @mustafabayar
@toon let me know if you want me to ask another reviewer
- Automatically resolved by Olivier Campeau
- Automatically resolved by Olivier Campeau
- Automatically resolved by Olivier Campeau
- Resolved by Olivier Campeau
- Resolved by Olivier Campeau
@oli.campeau I've added various comments about tests and the commit message, but I think the functional changes are actually good. Let me know what you think about my remarks/questions.
added 1 commit
- c894b7c0 - Bundle-uri capability: Only advertise when bundle exist
reset approvals from @mustafabayar by pushing to the branch
added 1 commit
- f5d065d6 - Bundle-uri capability: Only advertise when bundle exist
added 21 commits
-
f5d065d6...e8cfb90b - 20 commits from branch
master
- f4d6f721 - Bundle-uri capability: Only advertise when bundle exist
-
f5d065d6...e8cfb90b - 20 commits from branch
requested review from @mustafabayar
@oli.campeau I have no further comments. I'm gonna leave it to @mustafabayar for final review.
started a merge train
removed this merge request from the merge train because the pipeline did not succeed. Learn more.
started a merge train
mentioned in commit 70dee0e4
mentioned in epic gitlab-org#16007
added workflowstaging-canary label
mentioned in epic &16007
mentioned in epic gitlab-org/data-access/gitaly&1
added workflowcanary label and removed workflowstaging-canary label
added workflowstaging label and removed workflowcanary label
added workflowproduction label and removed workflowstaging label
added releasedcandidate label
mentioned in commit 8f5f475d
mentioned in merge request !7638 (closed)
mentioned in commit eddff29d
mentioned in commit 6c9209ec
mentioned in merge request !7643 (merged)
mentioned in commit ae708ad3
mentioned in commit 425421a3
mentioned in commit 877ac586
added releasedpublished label and removed releasedcandidate label