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
diff options
context:
space:
mode:
authorPatrick Steinhardt <psteinhardt@gitlab.com>2022-10-10 09:51:16 +0300
committerPatrick Steinhardt <psteinhardt@gitlab.com>2022-10-10 10:00:00 +0300
commitd5e420b6c6c918b3607169c09f6cd0d9f4e2486f (patch)
tree2b27dc740712284b050c6c43c67cb6e7846eaa7e
parent99b5528b66b23c1a8399027ecdef306267e668ae (diff)
ref: Revert fix for DeleteRefs that broke QA
With 80d62284b (ref: Return structured error when update error is not ErrAlreadyLocked, 2022-09-28) we have fixed a case where we still returned successfully on error even though the feature flag to use structured errors was enabled. This fix caused breakage in our QA jobs though: 1st Try error in ./spec/lib/gitlab/git/repository_spec.rb:463: expected Gitlab::Git::Repository::GitError, got #<Gitlab::Git::CommandError: 13:unable to prepare: state update to "prepare" failed: EOF, stderr: "fatal: invalid ref format: refs\\heads\\fix\n".> with backtrace: downstream QA Revert this change for now to unblock deployments.
-rw-r--r--internal/gitaly/service/ref/delete_refs.go31
1 files changed, 14 insertions, 17 deletions
diff --git a/internal/gitaly/service/ref/delete_refs.go b/internal/gitaly/service/ref/delete_refs.go
index 0e92ffc84..f8d7a7f03 100644
--- a/internal/gitaly/service/ref/delete_refs.go
+++ b/internal/gitaly/service/ref/delete_refs.go
@@ -83,27 +83,24 @@ func (s *server) DeleteRefs(ctx context.Context, in *gitalypb.DeleteRefsRequest)
}
if err := updater.Prepare(); err != nil {
- if featureflag.DeleteRefsStructuredErrors.IsEnabled(ctx) {
- var errAlreadyLocked *updateref.ErrAlreadyLocked
- if errors.As(err, &errAlreadyLocked) {
- detailedErr, err := helper.ErrWithDetails(
- helper.ErrFailedPreconditionf("cannot lock references"),
- &gitalypb.DeleteRefsError{
- Error: &gitalypb.DeleteRefsError_ReferencesLocked{
- ReferencesLocked: &gitalypb.ReferencesLockedError{
- Refs: [][]byte{[]byte(errAlreadyLocked.Ref)},
- },
+ var errAlreadyLocked *updateref.ErrAlreadyLocked
+ if featureflag.DeleteRefsStructuredErrors.IsEnabled(ctx) &&
+ errors.As(err, &errAlreadyLocked) {
+ detailedErr, err := helper.ErrWithDetails(
+ helper.ErrFailedPreconditionf("cannot lock references"),
+ &gitalypb.DeleteRefsError{
+ Error: &gitalypb.DeleteRefsError_ReferencesLocked{
+ ReferencesLocked: &gitalypb.ReferencesLockedError{
+ Refs: [][]byte{[]byte(errAlreadyLocked.Ref)},
},
},
- )
- if err != nil {
- return nil, helper.ErrInternalf("error details: %w", err)
- }
-
- return nil, detailedErr
+ },
+ )
+ if err != nil {
+ return nil, helper.ErrInternalf("error details: %w", err)
}
- return nil, helper.ErrInternalf("unable to prepare: %w", err)
+ return nil, detailedErr
}
return &gitalypb.DeleteRefsResponse{