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:
authorJames Fargher <proglottis@gmail.com>2022-02-02 00:52:56 +0300
committerJames Fargher <proglottis@gmail.com>2022-02-02 00:52:56 +0300
commit467c86b390c5f2fd530b4f916fbdda1488e02124 (patch)
tree5a8352b64770c25c72e4fc333ea4fca373d0b006
parentdc9e90c5f183ed1a40d91590105af36e529cb3ba (diff)
parent6ec9bd1f944d54737255211b502b131ecf8a8573 (diff)
Merge branch 'better_upload_pack_errors' into 'master'
Add stderr to errors returned by SSHUploadPack See merge request gitlab-org/gitaly!4290
-rw-r--r--internal/gitaly/service/ssh/upload_pack.go6
-rw-r--r--internal/gitaly/service/ssh/upload_pack_test.go1
2 files changed, 6 insertions, 1 deletions
diff --git a/internal/gitaly/service/ssh/upload_pack.go b/internal/gitaly/service/ssh/upload_pack.go
index b217b9218..5d23c53b0 100644
--- a/internal/gitaly/service/ssh/upload_pack.go
+++ b/internal/gitaly/service/ssh/upload_pack.go
@@ -4,6 +4,7 @@ import (
"context"
"fmt"
"io"
+ "strings"
"sync"
"github.com/grpc-ecosystem/go-grpc-middleware/logging/logrus/ctxlogrus"
@@ -123,6 +124,9 @@ func (s *server) sshUploadPack(ctx context.Context, req sshUploadPackRequest, st
git.WithPackObjectsHookEnv(repo),
}
+ var stderrBuilder strings.Builder
+ stderr = io.MultiWriter(stderr, &stderrBuilder)
+
cmd, monitor, err := monitorStdinCommand(ctx, s.gitCmdFactory, stdin, stdout, stderr, git.SubCmd{
Name: "upload-pack",
Args: []string{repoPath},
@@ -146,7 +150,7 @@ func (s *server) sshUploadPack(ctx context.Context, req sshUploadPackRequest, st
wg.Wait()
status, _ := command.ExitStatus(err)
- return status, fmt.Errorf("cmd wait: %w", err)
+ return status, fmt.Errorf("cmd wait: %w, stderr: %q", err, stderrBuilder.String())
}
pw.Close()
diff --git a/internal/gitaly/service/ssh/upload_pack_test.go b/internal/gitaly/service/ssh/upload_pack_test.go
index 9f89e84fe..813b8ce37 100644
--- a/internal/gitaly/service/ssh/upload_pack_test.go
+++ b/internal/gitaly/service/ssh/upload_pack_test.go
@@ -610,6 +610,7 @@ func TestUploadPackCloneGitFailure(t *testing.T) {
err = testPostUploadPackFailedResponse(t, stream)
testhelper.RequireGrpcCode(t, err, codes.Internal)
+ require.EqualError(t, err, "rpc error: code = Internal desc = cmd wait: exit status 128, stderr: \"fatal: bad config line 1 in file ./config\\n\"")
}
func testPostUploadPackFailedResponse(t *testing.T, stream gitalypb.SSHService_SSHUploadPackClient) error {