From b6b96afaa3a0437ab7c96112725289e63c55a3b9 Mon Sep 17 00:00:00 2001 From: Brian Kassouf Date: Thu, 19 Jul 2018 15:56:21 -0700 Subject: [PATCH 1/2] plugins: Allow the server to receive large messages --- logical/plugin/serve.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/logical/plugin/serve.go b/logical/plugin/serve.go index d7dc867b41f8..9dd57f8d7aab 100644 --- a/logical/plugin/serve.go +++ b/logical/plugin/serve.go @@ -2,8 +2,11 @@ package plugin import ( "crypto/tls" + "math" "os" + "google.golang.org/grpc" + log "github.com/hashicorp/go-hclog" "github.com/hashicorp/go-plugin" "github.com/hashicorp/vault/helper/pluginutil" @@ -54,7 +57,11 @@ func Serve(opts *ServeOpts) error { Logger: logger, // A non-nil value here enables gRPC serving for this plugin... - GRPCServer: plugin.DefaultGRPCServer, + GRPCServer: func(opts []grpc.ServerOption) *grpc.Server { + opts = append(opts, grpc.MaxRecvMsgSize(math.MaxInt32)) + opts = append(opts, grpc.MaxSendMsgSize(math.MaxInt32)) + return plugin.DefaultGRPCServer(opts) + }, } if !pluginutil.GRPCSupport() { From 9b18a646888ab124a99763dd70be5529e8f716d4 Mon Sep 17 00:00:00 2001 From: Brian Kassouf Date: Thu, 19 Jul 2018 16:00:29 -0700 Subject: [PATCH 2/2] plugins: Allow the server to receive large messages --- logical/plugin/grpc_backend_client.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/logical/plugin/grpc_backend_client.go b/logical/plugin/grpc_backend_client.go index 305ee102e2e1..60ef182803a8 100644 --- a/logical/plugin/grpc_backend_client.go +++ b/logical/plugin/grpc_backend_client.go @@ -3,6 +3,7 @@ package plugin import ( "context" "errors" + "math" "sync/atomic" "google.golang.org/grpc" @@ -195,6 +196,9 @@ func (b *backendGRPCPluginClient) Setup(ctx context.Context, config *logical.Bac // Register the server in this closure. serverFunc := func(opts []grpc.ServerOption) *grpc.Server { + opts = append(opts, grpc.MaxRecvMsgSize(math.MaxInt32)) + opts = append(opts, grpc.MaxSendMsgSize(math.MaxInt32)) + s := grpc.NewServer(opts...) pb.RegisterSystemViewServer(s, sysView) pb.RegisterStorageServer(s, storage)