[windows] grpc go 客户端主动关闭后kitex服务崩溃
Describe the bug
项目采用 thrift idl 生成server. 调用方采用grpc go (非kitex客户端) 连接server. 能够正常连接并获得数据返回,但是当客户端主动关闭后,kitex服务崩溃。
这是什么原因呢?
服务端 idl 如下:
grpc 调用方 protobuf 如下
测试代码:
thrift的kitex server和protobuf的grpc client?按理来说请求都应该失败才对...先统一协议吧
@ppzqh 是的, thrift的kitex server和protobuf的grpc client . 按理不应该请求成功,除非已经转换协议。但是请求确实是成功了的,无论是 protobuf 采用 stream 形式的请求还是 普通的请求。都是成功的。只是在 grpc client 关闭的时候 kitex server 直接挂掉。所以就比较疑惑。
协议不通不可能调用成功
server 启动如下,全是默认server option.
协议不同解码会失败的。本地测试可以debug确认一下进入server handler前的解码步骤。或者整理一个demo的repo一起看一下。
@ppzqh @YangruiEmma 检查了下,是我发错了,kitex server 也是用的 protobuf, 未使用 Fastpb. 但是问题还是一样的。服务端指定了Codec 和 PayloadCodec 也是一样的结果,都是在grpc client 关闭后崩溃。测试repo: https://github.com/aesoper101/kitextest
我本地没有复现,你是什么环境呢?还有golang版本
kitex 0.5.2 golang 1.20 windown 10
问题找到了,只有windows环境下会出现。之后会修复,感谢反馈!
@ppzqh 多谢大佬
🙏
这个问题与io模型相关,暂时不太好修复,所以 windows 环境下 grpc 当前无法使用,抱歉。之后会排期修复。
请问这个bug修复了吗?
这个问题暂时还没有修复。