1 year ago
#376905
anonymous
Bloom RPC response : "error": "14 UNAVAILABLE: GOAWAY received"
I am new to gRPC integration with SpringBoot. In spring boot application I have created a module and defined .proto in it. I have compiled the proto file and generated class files.
I have added the jar of this proto in server and created an api for accepting the request from client.
I have tried invoking the server from bloom rpc, and in response I am getting
"error": "14 UNAVAILABLE: GOAWAY received"
proto file
syntax = "proto3";
package com.test.spi;
option java_multiple_files = true;
option java_package = "com.test.spi";
option java_outer_classname = "RequestTest";
message Request{
Header head = 1;
Body body = 2;
message Header {
string version = 1;
}
message Body {
string type = 1;
}
}
message Response{
Header head = 1;
Body body = 2;
message Header {
string version = 1;
}
message Body {
string desc = 1;
}
}
service Service {
rpc testApi(Request) returns (Response);
}
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>test-service</artifactId>
<groupId>com.test</groupId>
<version>0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>grpc-contract</artifactId>
<packaging>jar</packaging>
<name>grpc-contract</name>
<version>1.0.2-SNAPSHOT</version>
<properties>
<spring.boot.dependencies.version>2.5.2</spring.boot.dependencies.version>
<org.projectlombok.version>1.18.20</org.projectlombok.version>
<io.grpc.version>1.37.0</io.grpc.version>
</properties>
<dependencies>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-netty</artifactId>
<version>${io.grpc.version}</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-transport-native-epoll</artifactId>
<version>4.0.40.Final</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-protobuf</artifactId>
<version>${io.grpc.version}</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-stub</artifactId>
<version>${io.grpc.version}</version>
</dependency>
<dependency>
<groupId>net.devh</groupId>
<artifactId>grpc-spring-boot-starter</artifactId>
<version>2.12.0.RELEASE</version>
<exclusions>
<exclusion>
<groupId>io.grpc</groupId>
<artifactId>grpc-netty-shaded</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<distributionManagement>
</distributionManagement>
<build>
<extensions>
<extension>
<groupId>kr.motd.maven</groupId>
<artifactId>os-maven-plugin</artifactId>
<version>1.7.0</version>
</extension>
</extensions>
<plugins>
<plugin>
<groupId>org.xolstice.maven.plugins</groupId>
<artifactId>protobuf-maven-plugin</artifactId>
<version>0.6.1</version>
<configuration>
<protocArtifact>
com.google.protobuf:protoc:3.3.0:exe:${os.detected.classifier}
</protocArtifact>
<pluginId>grpc-java</pluginId>
<pluginArtifact>
io.grpc:protoc-gen-grpc-java:1.4.0:exe:${os.detected.classifier}
</pluginArtifact>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>compile-custom</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
service.java
import io.grpc.stub.StreamObserver;
import net.devh.boot.grpc.server.service.GrpcService;
@GrpcService
public class RequestService extends RequestTestGrpc.RequestTestServiceImplBase {
@Override
public void testApi(Request request, StreamObserver<Response> responseObserver) {
System.out.println("received request:-------------------");
Response.Body body = Response.Body.newBuilder()
.setOrderId("1234567")
.build();
Response response = Response.newBuilder()
.setBody(body)
.build();
responseObserver.onNext(response);
responseObserver.onCompleted();
}
}
console output
2022-04-05 15:16:42.974 DEBUG 20008 --- [-worker-ELG-3-1] io.grpc.netty.NettyServerHandler : [id: 0x8516478e, L:/0:0:0:0:0:0:0:1:9090 - R:/0:0:0:0:0:0:0:1:58123] OUTBOUND GO_AWAY: lastStreamId=2147483647 errorCode=2 length=0 bytes=
2022-04-05 15:16:42.976 DEBUG 20008 --- [-worker-ELG-3-1] i.n.h.c.http2.Http2ConnectionHandler : [id: 0x8516478e, L:/0:0:0:0:0:0:0:1:9090 - R:/0:0:0:0:0:0:0:1:58123] Sent GOAWAY: lastStreamId '2147483647', errorCode '2', debugData ''. Forcing shutdown of the connection.
2022-04-05 15:16:42.977 INFO 20008 --- [-worker-ELG-3-1] i.g.n.NettyServerTransport.connections : Transport failed
java.lang.NullPointerException: null
at java.base/java.util.regex.Matcher.getTextLength(Matcher.java:1769) ~[na:na]
at java.base/java.util.regex.Matcher.reset(Matcher.java:416) ~[na:na]
at java.base/java.util.regex.Matcher.<init>(Matcher.java:253) ~[na:na]
at java.base/java.util.regex.Pattern.matcher(Pattern.java:1147) ~[na:na]
at java.base/java.util.Formatter.parse(Formatter.java:2608) ~[na:na]
at java.base/java.util.Formatter.format(Formatter.java:2563) ~[na:na]
at java.base/java.util.Formatter.format(Formatter.java:2517) ~[na:na]
at java.base/java.lang.String.format(String.java:2747) ~[na:na]
at io.netty.handler.codec.http2.Http2Exception.connectionError(Http2Exception.java:122) ~[netty-codec-http2-4.1.75.Final.jar:4.1.75.Final]
at io.netty.handler.codec.http2.DefaultHttp2HeadersDecoder.decodeHeaders(DefaultHttp2HeadersDecoder.java:136) ~[netty-codec-http2-4.1.75.Final.jar:4.1.75.Final]
at io.netty.handler.codec.http2.DefaultHttp2FrameReader$HeadersBlockBuilder.headers(DefaultHttp2FrameReader.java:732) ~[netty-codec-http2-4.1.75.Final.jar:4.1.75.Final]
at io.netty.handler.codec.http2.DefaultHttp2FrameReader$2.processFragment(DefaultHttp2FrameReader.java:476) ~[netty-codec-http2-4.1.75.Final.jar:4.1.75.Final]
at io.netty.handler.codec.http2.DefaultHttp2FrameReader.readHeadersFrame(DefaultHttp2FrameReader.java:484) ~[netty-codec-http2-4.1.75.Final.jar:4.1.75.Final]
at io.netty.handler.codec.http2.DefaultHttp2FrameReader.processPayloadState(DefaultHttp2FrameReader.java:253) ~[netty-codec-http2-4.1.75.Final.jar:4.1.75.Final]
at io.netty.handler.codec.http2.DefaultHttp2FrameReader.readFrame(DefaultHttp2FrameReader.java:159) ~[netty-codec-http2-4.1.75.Final.jar:4.1.75.Final]
at io.netty.handler.codec.http2.Http2InboundFrameLogger.readFrame(Http2InboundFrameLogger.java:41) ~[netty-codec-http2-4.1.75.Final.jar:4.1.75.Final]
at io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder.decodeFrame(DefaultHttp2ConnectionDecoder.java:173) ~[netty-codec-http2-4.1.75.Final.jar:4.1.75.Final]
at io.netty.handler.codec.http2.Http2ConnectionHandler$FrameDecoder.decode(Http2ConnectionHandler.java:378) ~[netty-codec-http2-4.1.75.Final.jar:4.1.75.Final]
at io.netty.handler.codec.http2.Http2ConnectionHandler$PrefaceDecoder.decode(Http2ConnectionHandler.java:242) [netty-codec-http2-4.1.75.Final.jar:4.1.75.Final]
at io.netty.handler.codec.http2.Http2ConnectionHandler.decode(Http2ConnectionHandler.java:438) [netty-codec-http2-4.1.75.Final.jar:4.1.75.Final]
at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:510) [netty-codec-4.1.75.Final.jar:4.1.75.Final]
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:449) [netty-codec-4.1.75.Final.jar:4.1.75.Final]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:279) [netty-codec-4.1.75.Final.jar:4.1.75.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.75.Final.jar:4.1.75.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.75.Final.jar:4.1.75.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.75.Final.jar:4.1.75.Final]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) [netty-transport-4.1.75.Final.jar:4.1.75.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.75.Final.jar:4.1.75.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.75.Final.jar:4.1.75.Final]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) [netty-transport-4.1.75.Final.jar:4.1.75.Final]
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) [netty-transport-4.1.75.Final.jar:4.1.75.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:722) [netty-transport-4.1.75.Final.jar:4.1.75.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:658) [netty-transport-4.1.75.Final.jar:4.1.75.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:584) [netty-transport-4.1.75.Final.jar:4.1.75.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496) [netty-transport-4.1.75.Final.jar:4.1.75.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986) [netty-common-4.1.75.Final.jar:4.1.75.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.75.Final.jar:4.1.75.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.75.Final.jar:4.1.75.Final]
at java.base/java.lang.Thread.run(Thread.java:844) [na:na]
Please help me in resolving this issue.
grpc
grpc-java
0 Answers
Your Answer