You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ratis.apache.org by "Tsz Wo Nicholas Sze (JIRA)" <ji...@apache.org> on 2017/11/06 21:18:00 UTC

[jira] [Updated] (RATIS-133) Raft gRPC client should check proto size before sending a message

     [ https://issues.apache.org/jira/browse/RATIS-133?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tsz Wo Nicholas Sze updated RATIS-133:
--------------------------------------
    Description: Raft client should check the entry size before the command is send, This can otherwise lead to StatusRuntimeException. Checking the size on the client will help avoiding error handling on the RaftServer.  (was: Raft client should check the entry size before the command is send, This can otherwise lead to following error. Checking the size on the client will help avoiding error handling on the RaftServer.

{code}
Nov 04, 2017 11:21:52 PM org.apache.ratis.shaded.io.grpc.netty.NettyServerStream$TransportState deframeFailed
WARNING: Exception processing message
org.apache.ratis.shaded.io.grpc.StatusRuntimeException: INTERNAL: Frame size 33555566 exceeds maximum: 33554432. If this is normal, increase the maxMessageSize in the channel/server builder
        at org.apache.ratis.shaded.io.grpc.Status.asRuntimeException(Status.java:536)
        at org.apache.ratis.shaded.io.grpc.internal.MessageDeframer.processHeader(MessageDeframer.java:338)
        at org.apache.ratis.shaded.io.grpc.internal.MessageDeframer.deliver(MessageDeframer.java:240)
        at org.apache.ratis.shaded.io.grpc.internal.MessageDeframer.request(MessageDeframer.java:151)
        at org.apache.ratis.shaded.io.grpc.internal.AbstractStream2$TransportState.requestMessagesFromDeframer(AbstractStream2.java:202)
        at org.apache.ratis.shaded.io.grpc.netty.RequestMessagesCommand.requestMessages(RequestMessagesCommand.java:62)
        at org.apache.ratis.shaded.io.grpc.netty.NettyServerHandler.write(NettyServerHandler.java:299)
        at org.apache.ratis.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:748)
        at org.apache.ratis.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:740)
        at org.apache.ratis.shaded.io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:826)
        at org.apache.ratis.shaded.io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:733)
        at org.apache.ratis.shaded.io.netty.channel.DefaultChannelPipeline.write(DefaultChannelPipeline.java:1022)
        at org.apache.ratis.shaded.io.netty.channel.AbstractChannel.write(AbstractChannel.java:291)
        at org.apache.ratis.shaded.io.grpc.netty.WriteQueue.flush(WriteQueue.java:133)
        at org.apache.ratis.shaded.io.grpc.netty.WriteQueue.access$000(WriteQueue.java:49)
        at org.apache.ratis.shaded.io.grpc.netty.WriteQueue$1.run(WriteQueue.java:61)
        at org.apache.ratis.shaded.io.netty.util.concurrent.SingleThreadEventExecutor.safeExecute(SingleThreadEventExecutor.java:451)
        at org.apache.ratis.shaded.io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:418)
        at org.apache.ratis.shaded.io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:401)
        at org.apache.ratis.shaded.io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:877)
        at org.apache.ratis.shaded.io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)
        at java.lang.Thread.run(Thread.java:745)

2017-11-04 23:21:52,570 [grpc-default-executor-4] INFO  server.RaftServerProtocolService (RaftServerProtocolService.java:onError(79)) - 127.0.0.1_65033: appendEntries on error. Exception: {}
org.apache.ratis.shaded.io.grpc.StatusException: CANCELLED
        at org.apache.ratis.shaded.io.grpc.Status.asException(Status.java:553)
        at org.apache.ratis.shaded.io.grpc.stub.ServerCalls$2$1.onCancel(ServerCalls.java:227)
        at org.apache.ratis.shaded.io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.closed(ServerCallImpl.java:270)
        at org.apache.ratis.shaded.io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener$3.runInContext(ServerImpl.java:521)
        at org.apache.ratis.shaded.io.grpc.internal.ContextRunnable.run(ContextRunnable.java:52)
        at org.apache.ratis.shaded.io.grpc.internal.SerializingExecutor$TaskRunner.run(SerializingExecutor.java:154)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
{code})

From [~msingh]:
{code}
Nov 04, 2017 11:21:52 PM org.apache.ratis.shaded.io.grpc.netty.NettyServerStream$TransportState deframeFailed
WARNING: Exception processing message
org.apache.ratis.shaded.io.grpc.StatusRuntimeException: INTERNAL: Frame size 33555566 exceeds maximum: 33554432. If this is normal, increase the maxMessageSize in the channel/server builder
        at org.apache.ratis.shaded.io.grpc.Status.asRuntimeException(Status.java:536)
        at org.apache.ratis.shaded.io.grpc.internal.MessageDeframer.processHeader(MessageDeframer.java:338)
        at org.apache.ratis.shaded.io.grpc.internal.MessageDeframer.deliver(MessageDeframer.java:240)
        at org.apache.ratis.shaded.io.grpc.internal.MessageDeframer.request(MessageDeframer.java:151)
        at org.apache.ratis.shaded.io.grpc.internal.AbstractStream2$TransportState.requestMessagesFromDeframer(AbstractStream2.java:202)
        at org.apache.ratis.shaded.io.grpc.netty.RequestMessagesCommand.requestMessages(RequestMessagesCommand.java:62)
        at org.apache.ratis.shaded.io.grpc.netty.NettyServerHandler.write(NettyServerHandler.java:299)
        at org.apache.ratis.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:748)
        at org.apache.ratis.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:740)
        at org.apache.ratis.shaded.io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:826)
        at org.apache.ratis.shaded.io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:733)
        at org.apache.ratis.shaded.io.netty.channel.DefaultChannelPipeline.write(DefaultChannelPipeline.java:1022)
        at org.apache.ratis.shaded.io.netty.channel.AbstractChannel.write(AbstractChannel.java:291)
        at org.apache.ratis.shaded.io.grpc.netty.WriteQueue.flush(WriteQueue.java:133)
        at org.apache.ratis.shaded.io.grpc.netty.WriteQueue.access$000(WriteQueue.java:49)
        at org.apache.ratis.shaded.io.grpc.netty.WriteQueue$1.run(WriteQueue.java:61)
        at org.apache.ratis.shaded.io.netty.util.concurrent.SingleThreadEventExecutor.safeExecute(SingleThreadEventExecutor.java:451)
        at org.apache.ratis.shaded.io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:418)
        at org.apache.ratis.shaded.io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:401)
        at org.apache.ratis.shaded.io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:877)
        at org.apache.ratis.shaded.io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)
        at java.lang.Thread.run(Thread.java:745)

2017-11-04 23:21:52,570 [grpc-default-executor-4] INFO  server.RaftServerProtocolService (RaftServerProtocolService.java:onError(79)) - 127.0.0.1_65033: appendEntries on error. Exception: {}
org.apache.ratis.shaded.io.grpc.StatusException: CANCELLED
        at org.apache.ratis.shaded.io.grpc.Status.asException(Status.java:553)
        at org.apache.ratis.shaded.io.grpc.stub.ServerCalls$2$1.onCancel(ServerCalls.java:227)
        at org.apache.ratis.shaded.io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.closed(ServerCallImpl.java:270)
        at org.apache.ratis.shaded.io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener$3.runInContext(ServerImpl.java:521)
        at org.apache.ratis.shaded.io.grpc.internal.ContextRunnable.run(ContextRunnable.java:52)
        at org.apache.ratis.shaded.io.grpc.internal.SerializingExecutor$TaskRunner.run(SerializingExecutor.java:154)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
{code}

> Raft gRPC client should check proto size before sending a message
> -----------------------------------------------------------------
>
>                 Key: RATIS-133
>                 URL: https://issues.apache.org/jira/browse/RATIS-133
>             Project: Ratis
>          Issue Type: Bug
>            Reporter: Mukul Kumar Singh
>            Assignee: Mukul Kumar Singh
>            Priority: Critical
>
> Raft client should check the entry size before the command is send, This can otherwise lead to StatusRuntimeException. Checking the size on the client will help avoiding error handling on the RaftServer.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)