diff options
author | Patrick Steinhardt <psteinhardt@gitlab.com> | 2022-10-10 09:51:16 +0300 |
---|---|---|
committer | Patrick Steinhardt <psteinhardt@gitlab.com> | 2022-10-10 10:00:00 +0300 |
commit | d5e420b6c6c918b3607169c09f6cd0d9f4e2486f (patch) | |
tree | 2b27dc740712284b050c6c43c67cb6e7846eaa7e | |
parent | 99b5528b66b23c1a8399027ecdef306267e668ae (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.go | 31 |
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{ |