diff options
author | James Fargher <proglottis@gmail.com> | 2020-06-10 03:13:06 +0300 |
---|---|---|
committer | James Fargher <proglottis@gmail.com> | 2020-06-10 03:46:05 +0300 |
commit | 427877c95c0ab5e7687d8f49d2159c7df4fcfcdf (patch) | |
tree | b5e0347f5f1945107038b64aba69b0f354af6dff | |
parent | cdc388153a3c8d353367a96173b7460ce7dfbcde (diff) |
Allow more frequent keep-alive checking on server
-rw-r--r-- | changelogs/unreleased/keepalive_enforcement.yml | 5 | ||||
-rw-r--r-- | client/dial.go | 2 | ||||
-rw-r--r-- | internal/server/server.go | 6 |
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 |