Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-05-05Use localrepo FetchRemote in FetchInternalRemotefetch_internal_remote_localrepo_fetchJames Fargher
2021-05-05Allow setting refspec and atomic on git fetchJames Fargher
2021-05-04Merge branch ↵Zeger-Jan van de Weg
'darwinjs-git-characteristics-that-make-horizontal-scaling-difficult' into 'master' Integrating gitaly history information See merge request gitlab-org/gitaly!3398
2021-05-04Merge branch 'gitaly-backup-restore' into 'master'Patrick Steinhardt
Restore repositories as per backup.rake See merge request gitlab-org/gitaly!3383
2021-05-04Merge branch 'smh-remove-backchannel-ff' into 'master'Patrick Steinhardt
Always cast reference transaction votes via backchannels Closes #3262 See merge request gitlab-org/gitaly!3437
2021-05-04gitaly-backup: Add restore commandJames Fargher
2021-05-04gitaly-backup: Restore repositories as per backup.rakeJames Fargher
Changelog: added
2021-05-03Always cast reference transaction votes via backchannelsSami Hiltunen
This commit removes the backchannel voting feature flag, causing Gitaly to always cast votes to Praefect via a backchannel. Historically, Praefect sent dialing information to Gitaly when a reference transaction was started. Gitaly would then dial back to Praefect to cast its vote. This proved difficult as in some setups Gitaly was not able to connect back to Praefect. An alternative approach was implemented where Gitaly sends votes back to Praefect via the same connection Praefect established to the Gitaly node. To facilitate this, the connection between Praefect and Gitaly was multiplexed to allow bidirectional gRPC invocations. This gRPC stream back from Gitaly to Praefect is the backchannel connection. As Gitaly should be upgraded prior to the Praefects, there may still be older Praefects calling an upgraded Gitaly. As such, the old implementation is still left in Gitaly to avoid RPCs failing during the upgrade. Removing the old implementation thus has to be done over multiple releases. Changelog: changed
2021-05-03Merge branch 'pks-ci-fix-binaries-job' into 'master'Sami Hiltunen
ci: Fix binaries job being broken by missing Makefile target See merge request gitlab-org/gitaly!3427
2021-05-03Merge branch 'pks-reject-pushes-into-internal-namespaces' into 'master'Toon Claes
git: Reject pushes into internal ref namespaces See merge request gitlab-org/gitaly!3426
2021-04-30Correct spellingDarwin Sanoy
2021-04-30Merge branch 'ps-move-CreateTag-to-gittest' into 'master'Pavlo Strokov
Move CreateTag to the gittest package See merge request gitlab-org/gitaly!3430
2021-04-30Move CreateTag to the gittest packagePavlo Strokov
CreateTag function is used to create tags and should be moved into the gittest package. It not only more consistent, but also breaks a circular dependency that occurs if we replace MustRunCommand with the gittest.Exec function. This replacement is done as well to break dependency on the global config.Config variable. Part of: https://gitlab.com/gitlab-org/gitaly/-/issues/2699
2021-04-30git: Reject pushes into internal ref namespacesPatrick Steinhardt
Gitaly repositories host several internal ref namespaces which are used by several different parts of our application stack. These include ref namespaces for merge requests, pipelines and environments. Given that all of these represent internal state and are thus managed by GitLab, the expectation is that they shouldn't be modified by users. As it turns out, we do not have any restrictions in place though when the user performs a push: they can simply overwrite these references with their own commits. Fix the issue by hiding those refs for git-receive-pack(1). The effect is twofold: first, these references aren't announced in the initial ref advertisement. Second, git will deny all pushes into these namespaces. While the second property is what we're after, the first one is handy for us, too. For almost all repositories, the number of these special refs outweighs the number of normal refs by quite a bit. As an example, the initial ref advertisement of gitlab-org/gitlab results in 125,000 refs to be advertised. Of these refs, 115,000 are environments, pipelines and merge requests, and only about 10,000 are real references. Advertising this many refs makes the packfile negotiation much slower. So by hiding these refs from the initial ref advertisement, not only do we properly protect these internal refs, but we should also see a speedup of that initial ref advertisement and thus the packfile negotiation. Win-win. Changelog: fixed
2021-04-30git: Move list of internal ref namespaces to central locationPatrick Steinhardt
We have a bunch of internal reference namespaces which we need to treat specially in some contexts. This list is currently defined in the cleanup service as it is the only current user. Given that we're about to introduce a second user, move this list into the `internal/git` package to make it available for reuse in a central location.
2021-04-30Update CHANGELOG.md for 13.11.3GitLab Release Tools Bot
[ci skip]
2021-04-30Merge branch 'ps-refactor-NewServerWithHealth' into 'master'Toon Claes
Refactoring of the NewHealthServerWithListener See merge request gitlab-org/gitaly!3428
2021-04-30Merge branch 'pks-blob-drop-deprecated-lfs-rpcs' into 'master'Patrick Steinhardt
proto: Drop deprecated LFS pointer RPC See merge request gitlab-org/gitaly!3424
2021-04-30Merge branch 'pks-ci-qa-with-ee' into 'master'Pavlo Strokov
ci: Run QA pipeline with EE-only tests See merge request gitlab-org/gitaly!3431
2021-04-30proto: Un-deprecate GetLFSPointersPatrick Steinhardt
With the introduction of ListLFSPointers, it was thought that it could also replace usage of GetLFSPointers. But as it turns out, this is not easily doable: callers rely on the fact that even if given for example the object ID of a tree containing LFS pointers, that there is no walk and thus no result. This cannot be implemented via git-rev-list(1), given that its "--no-walk" flag just keeps us from walking down commit parents, but it will still traverse down the root tree of each commit. So instead of awkwardly trying to somehow retrofit it into ListLFSPointers, let's just un-deprecate GetLFSPointers.
2021-04-30proto: Drop GetAllLFSPointers RPCPatrick Steinhardt
The GetAllLFSPointers RPC has been deprecated and all of its callers converted to ListLFSPointers in v13.11. Given that no users remain, we can now remove this RPC altogether. Changelog: removed
2021-04-30proto: Drop GetNewLFSPointers RPCPatrick Steinhardt
The GetNewLFSPointers RPC has been deprecated and all of its callers converted to ListLFSPointers in v13.11. Given that no users remain, we can now remove this RPC altogether. Changelog: removed
2021-04-30ci: Run QA pipeline with EE-only testsPatrick Steinhardt
We're currently running the QA pipeline with the default Community Edition, which is missing tests for Enterprise Edition-only features. This commit thus switches the pipeline over to EE to enable better test coverage.
2021-04-30Merge branch 'ps-rm-mustruncommand' into 'master'Pavlo Strokov
Replace MustRunCommand with Exec|ExecStream in gittest package See merge request gitlab-org/gitaly!3419
2021-04-29Merge branch 'pks-trigger-qa' into 'master'James Fargher
ci: Add manual job to trigger QA See merge request gitlab-org/gitaly!3387
2021-04-29Replace MustRunCommand with Exec in AddWorktreePavlo Strokov
Usages of the MustRunCommand replaced with Exec in order to break dependency on the global config.Config variable. Part of: https://gitlab.com/gitlab-org/gitaly/-/issues/2699
2021-04-29Replace MustRunCommand with Exec in repository_suite.goPavlo Strokov
Usages of the MustRunCommand replaced with Exec in order to break dependency on the global config.Config variable. The change includes only the calls that don't require change of the function signatures. Part of: https://gitlab.com/gitlab-org/gitaly/-/issues/2699
2021-04-29Replace MustRunCommand with Exec in cloneRepoPavlo Strokov
Usages of the MustRunCommand replaced with Exec in order to break dependency on the global config.Config variable. All dependent functions were changed as well. The same as the call site for them. In order to verify the list of the parameters used to run git binary during service method execution the git binary path replaced and that spyGitCfg used to run the service. But the actual git still need to be used in other cases. It was not an issue before as MustRunCommand uses a global config.Config variable with proper git bin path set. Part of: https://gitlab.com/gitlab-org/gitaly/-/issues/2699
2021-04-29Replace MustRunCommand with Exec in RequireTreePavlo Strokov
Usages of the MustRunCommand replaced with Exec in order to break dependency on the global config.Config variable. Part of: https://gitlab.com/gitlab-org/gitaly/-/issues/2699
2021-04-29Replace MustRunCommand with Exec in initRepoAtPavlo Strokov
Function initRepoAt used by InitBareRepoAt and InitRepoWithWorktreeAtStorage to setup repositories on the storage. By adding config.Cfg as an additional parameter and replacing the MustRunCommand with Exec we break dependency on the global config.Config variable. The change also removes unused InitBareRepo and related test for it. Part of: https://gitlab.com/gitlab-org/gitaly/-/issues/2699
2021-04-29Replace MustRunCommand with Exec in RemoteExistsPavlo Strokov
Usages of the MustRunCommand replaced with Exec in order to break dependency on the global config.Config variable. Part of: https://gitlab.com/gitlab-org/gitaly/-/issues/2699
2021-04-29Add config.Cfg as input parameter to WriteBlobsPavlo Strokov
config.Cfg is passed as an input parameter. It is used as a replacement for the gloabl config.Config variable. Part of: https://gitlab.com/gitlab-org/gitaly/-/issues/2699
2021-04-29Replace MustRunCommand with ExecStream in WriteBlobPavlo Strokov
Usages of the MustRunCommand replaced with ExecStream in order to break dependency on the global config.Config variable. Part of: https://gitlab.com/gitlab-org/gitaly/-/issues/2699
2021-04-29Replace MustRunCommand with Exec|ExecStream in TestDeltaIslandsPavlo Strokov
Usages of the MustRunCommand replaced with Exec or ExecStream in order to break dependency on the global config.Config variable. Part of: https://gitlab.com/gitlab-org/gitaly/-/issues/2699
2021-04-29Refactoring of the NewHealthServerWithListenerPavlo Strokov
Sometimes the test requires a gRPC server with only a health service registered. It doesn't matter if there are some kind of interceptors on it or not. It is only required to check the flow is working and the request reaches the service. Now it is not required to explicitly stop the server as it would be terminated automatically at the end of the test execution. And as there are no other use of the returned server the function doesn't return it anymore.
2021-04-29Merge branch '3589-monitoring-dashboard-2021' into 'master'Toon Claes
Update dashboard URL and screenshots Closes #3589 See merge request gitlab-org/gitaly!3418
2021-04-29ci: Add manual job to trigger QAPatrick Steinhardt
It's currently more complicated than necessary to trigger a QA run with changes which are currently in review. As a result, we tend to just not bother and wait for QA to crash at a later stage, when changes had been merged to the master branch already and when GitLab is about to bump the Gitaly server version. While we certainly don't want all MRs to be tested by QA, it would be reasonable to do so for MRs which e.g. deprecate existing features or which implement significant changes like for example the recent Go ports. Improve the situation by adding a new manual "qa" job. If executed, then it triggers a QA pipeline with the tip of the MR as Gitaly server version.
2021-04-29Merge branch 'pks-makefile-git-profile' into 'master'Toon Claes
Makefile: Unset PROFILE envvar before building git See merge request gitlab-org/gitaly!3414
2021-04-29Merge branch 'update-google-protobuf-to-3.15.8' into 'master'Pavlo Strokov
Update google-protobuf to 3.15.8 to support Ruby 3.0 Closes #3583 See merge request gitlab-org/gitaly!3399
2021-04-29Merge branch 'ps-fix-TestServerFactory' into 'master'Pavlo Strokov
Fix failing TestServerFactory See merge request gitlab-org/gitaly!3425
2021-04-29ci: Fix binaries job being broken by missing Makefile targetPatrick Steinhardt
With commit 5bf73d7a0 (Makefile: Drop assembly targets, 2021-04-28), we've dropped both the assemble targets and the binaries target which uses them. While the commit (probably validly) claims that no downstream distributions or documentation use those targets, it was overlooked that Gitaly itself does use it: when creating tags, the "binaries" CI job compiles Gitaly with `make binaries` and then makes resulting binaries available as artifacts, which is now broken. Instead of bringing back the assemble targets, this commit instead implements the job on top of `make build`: it does the same than `make binaries` did, with the minor difference that the directory where binaries end up in changes and that we don't create checksums. Checksumming is thus now moved into CI and paths are adjusted to accomodate for those changes.
2021-04-29Fix failing TestServerFactoryPavlo Strokov
TestServerFactory fails if run alone. It depends on the ruby for no reason as all we want to do is to check that request reaches the gitaly service through praefect. We change the test to trigger FindCommit RPC that is go-based.
2021-04-29Update VERSION filesv13.12.0-rc1GitLab Release Tools Bot
[ci skip]
2021-04-29Merge branch 'pks-makefile-drop-assemble-go' into 'master'Patrick Steinhardt
Makefile: Drop assembly targets See merge request gitlab-org/gitaly!3420
2021-04-28Merge branch 'pks-fix-flaky-user-rebase-confirmable-test' into 'master'Toon Claes
operations: Fix flaky UserRebaseConfirmable tests See merge request gitlab-org/gitaly!3421
2021-04-28Merge branch 'pks-cache-flaky-test' into 'master'Pavlo Strokov
cache: Fix flaky cache walker test See merge request gitlab-org/gitaly!3423
2021-04-28Merge branch 'pks-remote-find-root-ref-inmemory-remote' into 'master'Pavlo Strokov
remote: Add RemoteUrl parameter to FindRemoteRootRef See merge request gitlab-org/gitaly!3412
2021-04-28Merge remote-tracking branch 'dev/master'GitLab Release Tools Bot
2021-04-28Makefile: Drop assembly targetsPatrick Steinhardt
Historically, the GDK used Gitaly's "assemble" target to install all runtime dependencies into a single directory. This usage has long been replaced by a simple `make -C /path/to/gitaly` invocation in a6e99ef7 (Move gitaly to top level, 2019-12-03). This implicitly executes the "install" target with the install directory set to Gitaly's top-level directory, so none of the assembly targets are involved. Scanning through downstream distributions and documentation in gitlab-org/gitlab didn't surface any other users of these targets, so we may assume that they are not used anymore, making them safe for removal.
2021-04-28operations: Fix flaky UserRebaseConfirmable testsPatrick Steinhardt
Our tests exercising the UserRebaseConfirmable RPC are failing in CI for the Go implementation. The failure is a simple race: we're awaiting that the RPC wraps up and returns an EOF error, but it's not fast enough to do so in one second. This most frequently happens in the code coverage job, and most notably it only happens for the Go port. This is a bit puzzling considering that the Go port is supposed to be faster given that it's not creating a worktree like the Ruby implementation does. But the fact that it is the code coverage job which is hitting the issue hints that we hit in Go only because there's more instrumentation to be able to determine which code paths have been hit, which naturally doesn't exist in the Ruby port. In any case, it doesn't really help to assert that the RPC finishes in a fixed amount of time here. So let's fix flakiness by just dropping the timeouts.