Age | Commit message (Collapse) | Author |
|
Makefile: Upgrade Git to v2.35.4.gl1 and v2.37.4.gl1 (v15.6 backport)
See merge request https://gitlab.com/gitlab-org/gitaly/-/merge_requests/5189
Merged-by: Quang-Minh Nguyen <qmnguyen@gitlab.com>
Approved-by: karthik nayak <knayak@gitlab.com>
Approved-by: Quang-Minh Nguyen <qmnguyen@gitlab.com>
Co-authored-by: Patrick Steinhardt <psteinhardt@gitlab.com>
|
|
Git has recently created the bugfix release v2.38.2. This commit
upgrades the Git version used by Gitaly to pull in Git v2.38.2.gl1,
which contains all bugfixes of Git v2.38.2. Furthermore, we have
backported a bunch of patches to fix performance issues when pushing
into repostiories with loads of references. These backported changes
have been released as part of Git v2.39.0 already.
While at it, also bump the Git v2.37 release series to use v2.37.4.gl1.
This includes bugfixes as well as fixes for CVEs that don't apply in the
context of Gitaly. Note that the naming of the `GIT_VERSION_2_37_1`
variable is now kind of awkward as it refers to Git v2.37.4.gl1. We're
phasing out this Git version anyway though, so it doesn't feel worth it
to adjust naming of this variable now.
Changelog: fixed
|
|
In our nightly CI jobs we test with Git's `main` respectivey `next`
branch. Starting with 8bd7becbb (Makefile: Use Gitaly's tagged Git
versions instead of ad-hoc patching, 2022-11-11), we unconditionally
write the `GIT_VERSION` into Git's source tree to override the version
that e.g. `git --version` would report. But when `GIT_VERSION=master`,
then we fail to parse the Git version in Gitaly and thus fail all code
paths that depend on this.
Fix this by introducing a new variable that, if set, skips overriding
the Git version. This variable is set in our nightly jobs now.
|
|
[ci skip]
|
|
[ci skip]
|
|
|
|
[ci skip]
|
|
[ci skip]
|
|
Allow differing relative paths in ReplicateRepository (15.6)
See merge request https://gitlab.com/gitlab-org/gitaly/-/merge_requests/5081
Merged-by: Toon Claes <toon@gitlab.com>
Approved-by: karthik nayak <knayak@gitlab.com>
Approved-by: Toon Claes <toon@gitlab.com>
Co-authored-by: Sami Hiltunen <shiltunen@gitlab.com>
|
|
ReplicateRepository checks that the relative paths of the source and
the target repositories are the same. This is more of a sanity check
than a requirement. With Prafect rewriting relative paths, this check
fails and causes ReplicateRepository to fail with Praefect in front.
Previously the tests were not running with Praefect enabled which
allowed for this regression to slip through. This commit removes the
check which allows the RPC to work with Praefect enabled. The target
repository has a rewritten relative path as it's where the Gitaly will
store the replicated repository. The source repository's path is not
rewritten by Praefect as Gitaly fetches it by going through the source
storage. If the source storage is hosted by a Praefect, the relative
path would be rewritten at that point by Praefect.
Changelog: fixed
|
|
ReplicateRepository tests are run without Praefect in front of the
Gitalys. This means we don't cover the RPC at all with Praefect which
has allowed a regression to slip through the tests. This commit enables
Praefect in these test cases and for now correctly asserts the behavior
divergence between Praefect and Gitaly. Due to relative path rewriting
in Praefect, the relative paths are equal validation check fails.
TestReplicateRepositoryTransactional still runs with Praefect disabled
as it is testing the transactional behavior and needs to override the
TransactionService. Same goes for TestFetchInternalRemote_successful.
|
|
Our helper for setting up a Praefect server in front of Gitaly nodes
in tests does not set up multiple virtual storages if the Gitaly nodes
have been configured with multiple storages. This makes the helper
unusable in tests which exercise multiple Gitaly storages which causes
us to not cover all of the behavior in tests. This commit configures a
virtual storage for each of the storages a test case configures for
Gitaly so we can better cover these cases with Praefect as well.
|
|
Praefect has an artificial constraint where the configuration is
validated not to have multiple storages hosted by a given Gitaly.
This is not a real requirement. It should be possible to host
multiple storages in a virtual storage on a given Gitaly node. It's
not generally a good idea though given a single node doesn't offer
redundancy. There's shouldn't be a reason to fail hard on this, so
let's remove the check.
Changelog: fixed
|
|
[ci skip]
|
|
[ci skip]
|
|
[ci skip]
|
|
Revert "Merge branch 'wc/user-commit-files-structured-errors' into 'master'"
See merge request https://gitlab.com/gitlab-org/gitaly/-/merge_requests/5064
Merged-by: Sami Hiltunen <shiltunen@gitlab.com>
Co-authored-by: Patrick Steinhardt <psteinhardt@gitlab.com>
|
|
This reverts merge request !4988
|
|
doc: Add team calendar to onboarding steps
See merge request https://gitlab.com/gitlab-org/gitaly/-/merge_requests/5055
Merged-by: Quang-Minh Nguyen <qmnguyen@gitlab.com>
Approved-by: Quang-Minh Nguyen <qmnguyen@gitlab.com>
Co-authored-by: Andras Horvath <ahorvath@gitlab.com>
|
|
Praefect: Remove clock drift readiness check
See merge request https://gitlab.com/gitlab-org/gitaly/-/merge_requests/5040
Merged-by: Will Chandler <wchandler@gitlab.com>
Approved-by: Steve Azzopardi <sazzopardi@gitlab.com>
Approved-by: karthik nayak <knayak@gitlab.com>
Approved-by: Pavlo Strokov <pstrokov@gitlab.com>
Co-authored-by: Justin Tobler <jtobler@gitlab.com>
|
|
Upgrade redis gem to v4.8.0
See merge request https://gitlab.com/gitlab-org/gitaly/-/merge_requests/5056
Merged-by: Stan Hu <stanhu@gmail.com>
Approved-by: Stan Hu <stanhu@gmail.com>
Co-authored-by: Heinrich Lee Yu <heinrich@gitlab.com>
|
|
Enable SHA256 mode tests - Low hanging fruit
See merge request https://gitlab.com/gitlab-org/gitaly/-/merge_requests/5030
Merged-by: Justin Tobler <jtobler@gitlab.com>
Approved-by: Patrick Steinhardt <psteinhardt@gitlab.com>
Approved-by: Justin Tobler <jtobler@gitlab.com>
Co-authored-by: James Fargher <jfargher@gitlab.com>
|
|
blob: Return InvalidArgument error code for invalid input
See merge request https://gitlab.com/gitlab-org/gitaly/-/merge_requests/5049
Merged-by: Pavlo Strokov <pstrokov@gitlab.com>
Approved-by: Christian Couder <chriscool@tuxfamily.org>
|
|
An invalid request should return an InvalidArgument code to
the caller. Seems like it was broken on one of the
last refactoring or was not done correctly initially. In any
case now it returns a proper code.
This change also simplifies error creation using helpers.
|
|
|
|
[ci skip]
|
|
operations: Structured errors for UserCommitFiles
See merge request https://gitlab.com/gitlab-org/gitaly/-/merge_requests/4988
Merged-by: karthik nayak <knayak@gitlab.com>
Approved-by: Quang-Minh Nguyen <qmnguyen@gitlab.com>
Approved-by: karthik nayak <knayak@gitlab.com>
Co-authored-by: Will Chandler <wchandler@gitlab.com>
|
|
'4407-usermergebranch-lacks-ability-to-let-clients-update-a-reference-without-races' into 'master'
proto: Add `expected_old_oid` for ref updating RPCs
See merge request https://gitlab.com/gitlab-org/gitaly/-/merge_requests/5026
Merged-by: Sami Hiltunen <shiltunen@gitlab.com>
Approved-by: Sami Hiltunen <shiltunen@gitlab.com>
Approved-by: Christian Couder <chriscool@tuxfamily.org>
Co-authored-by: Karthik Nayak <knayak@gitlab.com>
|
|
gittest: Convert `NewRepositoryName()` to always create ".git" suffix
See merge request https://gitlab.com/gitlab-org/gitaly/-/merge_requests/5052
Merged-by: Pavlo Strokov <pstrokov@gitlab.com>
Approved-by: James Fargher <proglottis@gmail.com>
Approved-by: Pavlo Strokov <pstrokov@gitlab.com>
Co-authored-by: Patrick Steinhardt <psteinhardt@gitlab.com>
|
|
This matches the version we use in the Rails repo
|
|
[ci skip]
|
|
The implementation of tempdir is object hash agnostic.
|
|
The implementation of log is object hash agnostic.
|
|
The implementation of listenmux is object hash agnostic.
|
|
The implementation of grpcstats is object hash agnostic.
|
|
The implementation of safe is object hash agnostic.
|
|
Now that ps and helper have been checked, we can be sure that supervisor
is object hash agnostic.
|
|
The implementation of ps is object hash agnostic.
|
|
All of the helper packages are object hash agnostic.
|
|
The implementation of command is object hash agnostic.
|
|
These tests are object hash agnostic.
|
|
This test was originally skipped because catfile did not yet support
sha256. Now it does we can remove the exception.
|
|
The pkt-line format is independent of object hash format.
|
|
Fix the broken link and uses the rendered documentation instead.
Changes the comment to the format expected of a package comment.
|
|
|
|
These tests know nothing of object hashes and so are safe to run.
|
|
These tests know nothing of object hashes and so are safe to run.
|
|
These tests know nothing of object hashes and so are safe to run.
|
|
Re-apply ref: Standardize errors creation
See merge request https://gitlab.com/gitlab-org/gitaly/-/merge_requests/5050
Merged-by: Patrick Steinhardt <psteinhardt@gitlab.com>
Approved-by: Patrick Steinhardt <psteinhardt@gitlab.com>
Co-authored-by: Pavlo Strokov <pstrokov@gitlab.com>
|
|
The `UserCommitFiles` RPC may in some cases return a successful response
even in cases where an index operation or custom hook fails. This
creates unnecessary replication jobs for changes that did not go through
and causes our logs to misrepresent the request as successful.
To resolve this, return structured errors from this RPC.
Changelog: fixed
|