Skip to main content

5 posts tagged with "grpc"

View All Tags

grpc服务tls连接握手失败问题排查

· 3 min read
orange
programmer on jvm platform

近期在访问通过公网暴露的grpc服务时连接时报错, 异常信息如下

Exception in thread "main" io.grpc.StatusException: UNAVAILABLE: io exception
Channel Pipeline: [SslHandler#0, ProtocolNegotiators$ClientTlsHandler#0, WriteBufferingAndExceptionHandler#0, DefaultChannelPipeline$TailContext#0]
at io.grpc.Status.asException(Status.java:554)
at io.grpc.kotlin.ClientCalls$rpcImpl$1$1$1.onClose(ClientCalls.kt:296)
at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:576)
at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:757)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:736)
at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: io.netty.handler.ssl.NotSslRecordException: not an SSL/TLS record: 485454502f312e312034303320466f7262696464656e0a436f6e74656e742d547970653a20746578742f68746d6c3b20636861727365743d7574662d380a5365727665723a2041444d2f322e312e310a436f6e6e656374696f6e3a20636c6f73650a436f6e74656e742d4c656e6774683a203531320a0a3c68746d6c3e0a3c686561643e0a3c6d65746120687474702d65717569763d22436f6e74656e742d547970652220636f6e74656e743d22746578746d6c3b636861727365743d5554462d3822202f3e0a2020203c7374796c653e626f64797b6261636b67726f756e642d636f6c6f723a234646464646467d3c2f7374796c653e200a3c7469746c653e7a687935342d48473130302d32e99d9ee6b395e998bbe696ad3c2f7469746c653e0a20203c736372697074206c616e67756167653d226a6176617363726970742220747970653d22746578742f6a617661736372697074223e0a20202020202020202077696e646f772e6f6e6c6f6164203d2066756e6374696f6e202829207b200a2020202020202020202020646f63756d656e742e676574456c656d656e744279496428226d61696e4672616d6522292e7372633d2022687474703a2f2f3230332e39332e3137302e3231393a393038302f6572726f722e68746d6c223b200a2020202020202020202020207d0a3c2f7363726970743e2020200a3c2f686561643e0a20203c626f64793e0a2020202020203c696672616d652069643d226d61696e4672616d6522207372633d2222206672616d65626f726465723d2230222077696474683d223130302522206865696768743d2231303025223e3c2f696672616d653e0a20203c2f626f64793e0a3c2f68746d6c3e
at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1215)
at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1285)
at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:468)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
... 1 more

grpc服务protobuf编译报错Tried to write the same file twice.

· One min read
orange
programmer on jvm platform

新增quota_usage.proto文件后编译失败, 输出以下错误

[ERROR] PROTOC FAILED: com/fastonetech/contract/computecloud/deploy/v2/QuotaUsage.java: Tried to write the same file twice.
[libprotobuf WARNING ../../../../../src/google/protobuf/compiler/java/java_file.cc:232] cmdb/v1/cmdb.proto: The file's outer class name, "Cmdb", matches the name of one of the types declared inside it when case is ignored. This can cause compilation issues on Windows / MacOS. Please either rename the type or use the java_outer_classname option to specify a different outer class name for the .proto file to be safe.

protobuf生成的java代码编译报错找不到symbol

· 3 min read
orange
programmer on jvm platform

使用gradle build时报错找不到symbol, 输出如下

> Task :compileJava FAILED
/home/orange/Documents/Dev/Project/Fastone/mgmt-api/build/generated/main/java/nott/v1/events/quota/Mgmt2StackQuota.java:430: error: cannot find symbol
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
^
symbol: method parseUnknownField(CodedInputStream,ExtensionRegistryLite,int)
/home/orange/Documents/Dev/Project/Fastone/mgmt-api/build/generated/main/java/nott/v1/events/quota/Mgmt2StackQuota.java:1032: error: cannot find symbol
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
^
symbol: method parseUnknownField(CodedInputStream,ExtensionRegistryLite,int)
/home/orange/Documents/Dev/Project/Fastone/mgmt-api/build/generated/main/java/nott/v1/events/quota/Mgmt2StackQuota.java:1915: error: cannot find symbol
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
^
symbol: method parseUnknownField(CodedInputStream,ExtensionRegistryLite,int)
/home/orange/Documents/Dev/Project/Fastone/mgmt-api/build/generated/main/java/cmdb/v1/Cmdb.java:479: error: cannot find symbol
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
^
symbol: method parseUnknownField(CodedInputStream,ExtensionRegistryLite,int)
/home/orange/Documents/Dev/Project/Fastone/mgmt-api/build/generated/main/java/cmdb/v1/Cmdb.java:1263: error: cannot find symbol
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
^
symbol: method parseUnknownField(CodedInputStream,ExtensionRegistryLite,int)
/home/orange/Documents/Dev/Project/Fastone/mgmt-api/build/generated/main/java/cmdb/v1/Cmdb.java:2342: error: cannot find symbol
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
^
symbol: method parseUnknownField(CodedInputStream,ExtensionRegistryLite,int)
/home/orange/Documents/Dev/Project/Fastone/mgmt-api/build/generated/main/java/cmdb/v1/Cmdb.java:3397: error: cannot find symbol
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
^
symbol: method parseUnknownField(CodedInputStream,ExtensionRegistryLite,int)
/home/orange/Documents/Dev/Project/Fastone/mgmt-api/build/generated/main/java/cmdb/v1/Cmdb.java:4262: error: cannot find symbol
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
^
symbol: method parseUnknownField(CodedInputStream,ExtensionRegistryLite,int)
/home/orange/Documents/Dev/Project/Fastone/mgmt-api/build/generated/main/java/cmdb/v1/Cmdb.java:4985: error: cannot find symbol
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
^
symbol: method parseUnknownField(CodedInputStream,ExtensionRegistryLite,int)
/home/orange/Documents/Dev/Project/Fastone/mgmt-api/build/generated/main/java/cmdb/v1/Cmdb.java:5578: error: cannot find symbol
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
^
symbol: method parseUnknownField(CodedInputStream,ExtensionRegistryLite,int)
/home/orange/Documents/Dev/Project/Fastone/mgmt-api/build/generated/main/java/cmdb/v1/Cmdb.java:6165: error: cannot find symbol
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
^
symbol: method parseUnknownField(CodedInputStream,ExtensionRegistryLite,int)
/home/orange/Documents/Dev/Project/Fastone/mgmt-api/build/generated/main/java/cmdb/v1/Cmdb.java:9640: error: cannot find symbol
if (!super.parseUnknownField(input, extensionRegistry, tag)) {
^
symbol: method parseUnknownField(CodedInputStream,ExtensionRegistryLite,int)
12 errors

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileJava'.
> Compilation failed; see the compiler error output for details.

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 22s
9 actionable tasks: 9 executed

protobuf编译报错找不到proto文件

· 2 min read
orange
programmer on jvm platform

在新增submodule/api-contract/protobuf/node_manager/v1/srcDirs后, 编译报错, 编译输出如下

> Task :generateProto FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':generateProto'.
> protoc: stdout: . stderr: nodemanager/v1/volume.proto: File not found.
nodemanager/v1/tag.proto: File not found.
nodemanager/v1/firewall.proto: File not found.
node.proto:10:1: Import "nodemanager/v1/volume.proto" was not found or had errors.
node.proto:11:1: Import "nodemanager/v1/tag.proto" was not found or had errors.
node.proto:12:1: Import "nodemanager/v1/firewall.proto" was not found or had errors.
node.proto:153:12: "Tag" is not defined.
node.proto:177:12: "VolumeSpec" is not defined.
node.proto:195:12: "Tag" is not defined.
node.proto:212:12: "Tag" is not defined.
node.proto:214:12: "RegisterVolumeSpec" is not defined.
node.proto:269:12: "Tag" is not defined.
node.proto:277:12: "nodemanager.v1.FirewallRule" seems to be defined in "firewall.proto", which is not imported by "node.proto". To use it here, please add the necessary import.
node.proto:299:12: "Volume" is not defined.


* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 4s
3 actionable tasks: 1 executed, 2 up-to-date