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 <jfargher@gitlab.com>2022-03-22 00:47:46 +0300
committerJames Fargher <jfargher@gitlab.com>2022-03-31 01:27:17 +0300
commitea4c61be1a7c38d013eaa5821624e1bdfd801547 (patch)
tree6453aaebca903f1571e835e319851191b5031b44
parent084bc3049d8b6d308995cfb4c66efe0e310a6c4d (diff)
gitaly-git2go: Log top-level encoding errors
Adds some more debug information to each log message, as by default there is only a PID.
-rw-r--r--cmd/gitaly-git2go-v14/main.go26
1 files changed, 14 insertions, 12 deletions
diff --git a/cmd/gitaly-git2go-v14/main.go b/cmd/gitaly-git2go-v14/main.go
index c7110b32b..809c9f657 100644
--- a/cmd/gitaly-git2go-v14/main.go
+++ b/cmd/gitaly-git2go-v14/main.go
@@ -12,6 +12,7 @@ import (
"github.com/grpc-ecosystem/go-grpc-middleware/logging/logrus/ctxlogrus"
git "github.com/libgit2/git2go/v33"
+ "github.com/sirupsen/logrus"
"gitlab.com/gitlab-org/gitaly/v14/internal/git2go"
glog "gitlab.com/gitlab-org/gitaly/v14/internal/log"
)
@@ -33,13 +34,13 @@ var subcommands = map[string]subcmd{
"submodule": &submoduleSubcommand{},
}
-func fatalf(encoder *gob.Encoder, format string, args ...interface{}) {
- // Once logging has been implemented these encoding errors can be logged.
- // Until then these will be ignored as we can no longer use stderr.
- // https://gitlab.com/gitlab-org/gitaly/-/issues/3229
- _ = encoder.Encode(git2go.Result{
+func fatalf(logger logrus.FieldLogger, encoder *gob.Encoder, format string, args ...interface{}) {
+ err := encoder.Encode(git2go.Result{
Err: git2go.SerializableError(fmt.Errorf(format, args...)),
})
+ if err != nil {
+ logger.WithError(err).Error("encode to gob failed")
+ }
// An exit code of 1 would indicate an error over stderr. Since our errors
// are encoded over gob, we need to exit cleanly
os.Exit(0)
@@ -66,32 +67,33 @@ func main() {
_ = flags.Parse(os.Args[1:])
configureLogging(logFormat, logLevel)
+ logger := glog.Default().WithField("command.name", git2go.BinaryName)
if flags.NArg() < 1 {
- fatalf(encoder, "missing subcommand")
+ fatalf(logger, encoder, "missing subcommand")
}
subcmd, ok := subcommands[flags.Arg(0)]
if !ok {
- fatalf(encoder, "unknown subcommand: %q", flags.Arg(0))
+ fatalf(logger, encoder, "unknown subcommand: %q", flags.Arg(0))
}
subcmdFlags := subcmd.Flags()
if err := subcmdFlags.Parse(flags.Args()[1:]); err != nil {
- fatalf(encoder, "parsing flags of %q: %s", subcmdFlags.Name(), err)
+ fatalf(logger, encoder, "parsing flags of %q: %s", subcmdFlags.Name(), err)
}
if subcmdFlags.NArg() != 0 {
- fatalf(encoder, "%s: trailing arguments", subcmdFlags.Name())
+ fatalf(logger, encoder, "%s: trailing arguments", subcmdFlags.Name())
}
if err := git.EnableFsyncGitDir(true); err != nil {
- fatalf(encoder, "enable fsync: %s", err)
+ fatalf(logger, encoder, "enable fsync: %s", err)
}
- ctx := ctxlogrus.ToContext(context.Background(), glog.Default())
+ ctx := ctxlogrus.ToContext(context.Background(), logger.WithField("subcommand", subcmd))
if err := subcmd.Run(ctx, decoder, encoder); err != nil {
- fatalf(encoder, "%s: %s", subcmdFlags.Name(), err)
+ fatalf(logger, encoder, "%s: %s", subcmdFlags.Name(), err)
}
}