-
1.场景重现
最近项目上客户端遇到了一个偶发的登录问题,用户在输入正确的账号密码的情况下,客户端显示登录失败,但是在同一环境下登录官网的用户后台却100%的成功,于是打开日志查看了一下:
exchangePublicKey(14,DNS resolution failed)
发现是DNS解析失败,当时我想是不是用户DNS被劫持了、使用了代理或者是其他网络原因
-
2.原因分析
在用户环境下查看了一下DNS没有被改动,nslookup命令可以正常解析出服务器的IP地址,Host文件也是正常的,当时一下就不知道怎么查下去了,由于是偶发bug,也没有太多的场景去复现。后来在https://github.com/grpc/grpc/issues/18411上看见有人遇到同样的问题了,才知道这是gRPC1.19(可能后续版本还有问题)的bug,当然处理这个bug有许多的方式,但在github上大多数项目在处理gRPC1.19版本DNS解析失败问题都采用了版本回退的方式,所以我也打算把版本先回退到1.18版本。