Hi,
I am using Java client/server. And I am seeing this error for a lot of
messages.
Client :
---------
Channel channel = ManagedChannelBuilder.forTarget(serviceName)
.usePlaintext(true)
.loadBalancerFactory(RoundRobinLoadBalancerFactory.getInstance())
.build();
LogCollectorServiceBlockingStub> collector =
LogCollectorServiceGrpc.newBlockingStub(channel);
collector.get().withDeadlineAfter(200, TimeUnit.MILLISECONDS
).logEvents(inputEvent); //inputEvent is a custom protobuf message.
Server :
--------
ServerBuilder<?> builder = ServerBuilder.forPort(port);
builder.addService(ServerInterceptors.intercept(Arrays.asList(new
CollectorEventProcessor()), interceptors));
Server server = builder.build();
LOGGER.info("Starting GRPC server on port {}", port);
try {
server.start();
} catch (IOException e) {
throw Throwables.propagate(e);
}
// custom implementation extending the service impl generated from protobuf
IDL.
public class CollectorEventProcessor extends LogCollectorServiceImplBase {
public void log(BiddingEvent inputEvent, StreamObserver<Empty>
responseObserver) {
try {
//process inputEvent.
} catch (Exception ex) {
responseObserver.onError(
new
io.grpc.StatusRuntimeException(Status.INVALID_ARGUMENT.withDescription(ex.getMessage())));
responseObserver.onCompleted();
return;
}
try {
// commit the processing of the message.
responseObserver.onNext(Empty.getDefaultInstance());
responseObserver.onCompleted();
} catch (Exception ex) {
//log exception
}
}
}
Protobuf service IDL:
---------------------
message LogCollectorEvent {
repeated BiddingEvent biddingEvents = 1;
}
// service definition for the log collection service
service LogCollectorService {
rpc logEvents(LogCollectorEvent) returns (google.protobuf.Empty);
}
Messages are being sent in a batch of about 100 as part of
LogCollectorEvent. Messages are being received on the server, but I am
seeing a high frequency of this error as well.
2017-08-20 13:18:29,800 [WARN] [grpc-default-worker-ELG-3-11]
io.grpc.netty.NettyServerHandler - Stream Error
io.netty.handler.codec.http2.Http2Exception$StreamException: Received DATA
frame for an unknown stream 281813
at
io.netty.handler.codec.http2.Http2Exception.streamError(Http2Exception.java:129)
at
io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder$FrameReadListener.shouldIgnoreHeadersOrDataFrame(DefaultHttp2ConnectionDecoder.java:524)
at
io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder$FrameReadListener.onDataRead(DefaultHttp2ConnectionDecoder.java:185)
at
io.netty.handler.codec.http2.Http2InboundFrameLogger$1.onDataRead(Http2InboundFrameLogger.java:48)
at
io.netty.handler.codec.http2.DefaultHttp2FrameReader.readDataFrame(DefaultHttp2FrameReader.java:421)
at
io.netty.handler.codec.http2.DefaultHttp2FrameReader.processPayloadState(DefaultHttp2FrameReader.java:251)
at
io.netty.handler.codec.http2.DefaultHttp2FrameReader.readFrame(DefaultHttp2FrameReader.java:160)
at
io.netty.handler.codec.http2.Http2InboundFrameLogger.readFrame(Http2InboundFrameLogger.java:41)
at
io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder.decodeFrame(DefaultHttp2ConnectionDecoder.java:116)
at
io.netty.handler.codec.http2.Http2ConnectionHandler$FrameDecoder.decode(Http2ConnectionHandler.java:353)
at
io.netty.handler.codec.http2.Http2ConnectionHandler.decode(Http2ConnectionHandler.java:413)
at
io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:489)
at
io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:428)
at
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265)
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at
io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)
at
io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:134)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:644)
at
io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:579)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:496)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:458)
at
io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
at
io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138)
at java.lang.Thread.run(Thread.java:745)
I have searched various forums for error of this type, but unable to find a
solution. What is the reason for this Netty exception ?
-Mani
--
You received this message because you are subscribed to the Google Groups
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/grpc-io.
To view this discussion on the web visit
https://groups.google.com/d/msgid/grpc-io/3d8b300e-d9a6-4c30-916c-38cf1eea0668%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.