- 当前 Bug 的表现(可附上截图)
报各种网络错误
- 预期表现
在开发工具跟自己手机都正常
- 复现路径
个别客户手机上。
- 提供一个最简复现 Demo
这个问题,大量人提问,看社区的意思都是证书错误之类。
经过大量客户测试,得到大量这种错误信息。
第一种:
{“errMsg”:“request:fail Connection timed out”}
第二种:
{“errMsg”:“request:fail 网络连接已中断。”}
第三种:
{“errMsg”:“request:fail Read error: ssl=0xabde1d00: I/O error during system call, Connection reset by peer”}
第四种:
{“errMsg”:“request:fail ssl hand shake error”}
第五种:
{“errMsg”:“request:fail socket time out timeout:60000”}
第六种:
{“errMsg”:“request:fail unexpected end of stream on com.android.okhttp.Address@be97607c”}
第七种:
{“errMsg”:“request:fail null”}
第八种:
{“errMsg”:“request:fail unexpected end of stream on Connection{api.xxxxx.com:443, proxy=DIRECT hostAddress=106.122.254.22 cipherSuite=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 protocol=http/1.1} (recycle count=0)”}
第九种:
{“errMsg”:“request:fail Software caused connection abort”}
第十种:
{“errMsg”:“request:fail 无法建立数据连接,因为通话仍在进行中。”}
第十一种:
{“errMsg”:“request:fail 似乎已断开与互联网的连接。”}
第十二种:
{“errMsg”:“request:fail Network is unreachable”}
等。。。
这些都是我自己接口,日志收集的,服务端没有这些错误的请求日志, 我是在 request函数错误后,把日志再提交给我一个日志接口。 由于日志没法分组查询,可能还漏掉一些情况。
跟证书肯定是没关系,我付费证书,支持TLS 1.0,TLS 1.1,TLS 1.2 , 小程序这个域名也使用2年了,一直有这个问题,之前由于没啥用户量,就没怎么管, 目前小游戏每天有十几万活跃用户, 如果1000个人里有一个人发生这样的问题,每天都要处理100多个人投诉,实在头疼,请求大家解决办法。
小程序也会出现,个别时候开发工具也会出现,重启电脑就好了。 小程序里面出现就比较神奇了, 这个请求进入 fail,我立刻再请求一次,把这个日志上报,同样一个域名,同样一部手机,几乎同样一个时间点。 上报日志竟然成功了。
第十种:提升非常友好,因为通话仍在进行中,符合这种情况,比较理解,电话一响断网,没接到电话,立刻恢复。 然后日志就可以请求这个域名了,可其他种情况也太多了吧,例如第二种:网络连接已中断,第十一种:似乎已断开与互联网的连接, 一个叫网络中断,一个叫似乎网络中断。。。
做程序员技术的,网络断了就断了,没断就没断,这程序员很有意思似乎中断,我都不知道怎么跟客户解释。 如果不是中文,我根本看不懂,其他英文能找到文档对应说明吗?
目前报这些错误的时候,完全没有nginx日志,就是没请求来服务器,我想解决这些没必要的错误,或者减少某些错误,请求各位大神帮助。
上面提出的问题,有8种已经遇到。
{"errMsg":"request:fail Read error: ssl=0xabde1d00: I/O error during system call, Connection reset by peer"}
{"errMsg":"request:fail ssl hand shake error"}
至今没有解决
理论上万兆专线光纤到你的服务器才可能不出现这些错误。
按你估算的成功率是 99.9 %。
请求失败之后的重试是必要的, 你做2次重试的成功率就到了
0.999 + 0.001 * 0.999 = 0.99999 是不是很牛逼。
另你的服务器有没有上行网络的限制?
我也遇上 fail unexpected end of stream on com.android.okhttp.Address@e23e6146这个问题。不知道楼主解决了没,客户一直认为是我们开发的代码没有问题,但我们排查好长一端时间,发现我们的服务器是正常可用的