Give different limit to the RPC server (#1421)

This commit is contained in:
Ori Newman 2021-01-17 13:58:42 +02:00 committed by GitHub
parent dd57e6abe6
commit f14527de4c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 12 additions and 11 deletions

View File

@ -17,13 +17,11 @@ type gRPCServer struct {
server *grpc.Server
}
// MaxMessageSize is the max size allowed for a message
const MaxMessageSize = 10 * 1024 * 1024 // 10MB
// newGRPCServer creates a gRPC server
func newGRPCServer(listeningAddresses []string) *gRPCServer {
func newGRPCServer(listeningAddresses []string, maxMessageSize int) *gRPCServer {
log.Debugf("Created new GRPC server with maxMessageSize %d", maxMessageSize)
return &gRPCServer{
server: grpc.NewServer(grpc.MaxRecvMsgSize(MaxMessageSize), grpc.MaxSendMsgSize(MaxMessageSize)),
server: grpc.NewServer(grpc.MaxRecvMsgSize(maxMessageSize), grpc.MaxSendMsgSize(maxMessageSize)),
listeningAddresses: listeningAddresses,
}
}
@ -40,8 +38,6 @@ func (s *gRPCServer) Start() error {
}
}
log.Debugf("Server started with MaxMessageSize %d", MaxMessageSize)
return nil
}

View File

@ -18,9 +18,11 @@ type p2pServer struct {
gRPCServer
}
const p2pMaxMessageSize = 10 * 1024 * 1024 // 10MB
// NewP2PServer creates a new P2PServer
func NewP2PServer(listeningAddresses []string) (server.P2PServer, error) {
gRPCServer := newGRPCServer(listeningAddresses)
gRPCServer := newGRPCServer(listeningAddresses, p2pMaxMessageSize)
p2pServer := &p2pServer{gRPCServer: *gRPCServer}
protowire.RegisterP2PServer(gRPCServer.server, p2pServer)
return p2pServer, nil
@ -48,7 +50,7 @@ func (p *p2pServer) Connect(address string) (server.Connection, error) {
client := protowire.NewP2PClient(gRPCClientConnection)
stream, err := client.MessageStream(context.Background(), grpc.UseCompressor(gzip.Name),
grpc.MaxCallRecvMsgSize(MaxMessageSize), grpc.MaxCallSendMsgSize(MaxMessageSize))
grpc.MaxCallRecvMsgSize(p2pMaxMessageSize), grpc.MaxCallSendMsgSize(p2pMaxMessageSize))
if err != nil {
return nil, errors.Wrapf(err, "error getting client stream for %s", address)
}

View File

@ -11,9 +11,12 @@ type rpcServer struct {
gRPCServer
}
// RPCMaxMessageSize is the max message size for the RPC server to send and receive
const RPCMaxMessageSize = 1024 * 1024 * 1024 // 1 GB
// NewRPCServer creates a new RPCServer
func NewRPCServer(listeningAddresses []string) (server.Server, error) {
gRPCServer := newGRPCServer(listeningAddresses)
gRPCServer := newGRPCServer(listeningAddresses, RPCMaxMessageSize)
rpcServer := &rpcServer{gRPCServer: *gRPCServer}
protowire.RegisterRPCServer(gRPCServer.server, rpcServer)
return rpcServer, nil

View File

@ -35,7 +35,7 @@ func Connect(address string) (*GRPCClient, error) {
grpcClient := protowire.NewRPCClient(gRPCConnection)
stream, err := grpcClient.MessageStream(context.Background(), grpc.UseCompressor(gzip.Name),
grpc.MaxCallRecvMsgSize(grpcserver.MaxMessageSize), grpc.MaxCallSendMsgSize(grpcserver.MaxMessageSize))
grpc.MaxCallRecvMsgSize(grpcserver.RPCMaxMessageSize), grpc.MaxCallSendMsgSize(grpcserver.RPCMaxMessageSize))
if err != nil {
return nil, errors.Wrapf(err, "error getting client stream for %s", address)
}