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>2020-06-10 03:13:06 +0300
committerJames Fargher <proglottis@gmail.com>2020-06-10 03:46:05 +0300
commit427877c95c0ab5e7687d8f49d2159c7df4fcfcdf (patch)
treeb5e0347f5f1945107038b64aba69b0f354af6dff
parentcdc388153a3c8d353367a96173b7460ce7dfbcde (diff)
Allow more frequent keep-alive checking on server
-rw-r--r--changelogs/unreleased/keepalive_enforcement.yml5
-rw-r--r--client/dial.go2
-rw-r--r--internal/server/server.go6
3 files changed, 13 insertions, 0 deletions
diff --git a/changelogs/unreleased/keepalive_enforcement.yml b/changelogs/unreleased/keepalive_enforcement.yml
new file mode 100644
index 000000000..db477457d
--- /dev/null
+++ b/changelogs/unreleased/keepalive_enforcement.yml
@@ -0,0 +1,5 @@
+---
+title: Allow more frequent keep-alive checking on server
+merge_request: 2272
+author:
+type: fixed
diff --git a/client/dial.go b/client/dial.go
index e1a6fd12b..4fce2ac5b 100644
--- a/client/dial.go
+++ b/client/dial.go
@@ -74,6 +74,8 @@ func DialContext(ctx context.Context, rawAddress string, connOpts []grpc.DialOpt
)
}
+ // grpc.KeepaliveParams must be specified at least as large as what is allowed by the
+ // server-side grpc.KeepaliveEnforcementPolicy
connOpts = append(connOpts, grpc.WithKeepaliveParams(keepalive.ClientParameters{
Time: 20 * time.Second,
PermitWithoutStream: true,
diff --git a/internal/server/server.go b/internal/server/server.go
index 9d974762d..3ca647304 100644
--- a/internal/server/server.go
+++ b/internal/server/server.go
@@ -4,6 +4,7 @@ import (
"context"
"crypto/tls"
"os"
+ "time"
grpc_middleware "github.com/grpc-ecosystem/go-grpc-middleware"
grpc_logrus "github.com/grpc-ecosystem/go-grpc-middleware/logging/logrus"
@@ -30,6 +31,7 @@ import (
grpctracing "gitlab.com/gitlab-org/labkit/tracing/grpc"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials"
+ "google.golang.org/grpc/keepalive"
"google.golang.org/grpc/reflection"
)
@@ -110,6 +112,10 @@ func createNewServer(rubyServer *rubyserver.Server, gitlabAPI hook.GitlabAPI, cf
// converted to errors and logged
panichandler.UnaryPanicHandler,
)),
+ grpc.KeepaliveEnforcementPolicy(keepalive.EnforcementPolicy{
+ MinTime: 20 * time.Second,
+ PermitWithoutStream: true,
+ }),
}
// If tls config is specified attempt to extract tls options and use it