Heroku Redis升级v6.2.3后出现ssl3_get_record版本号错误如何解决
Heroku Redis升级后SSL版本不匹配报错排查
我将Heroku Redis附加组件从v4升级到v6.2.3后,Heroku papertrail日志中出现如下报错:Error accepting a client connection: error:1408F10B:SSL routines:ssl3_get_record:wrong version number
我使用NodeJs配合npm包bull连接Redis。查找了同类型报错问题以及Heroku官方文档后,我将bull的redis配置项设置为如下内容:
redis: { host: redisURL.hostname, port: Number(redisURL.port), password: redisURL.password, tls: { rejectUnauthorized: false, }, },
请注意 tls 参数是按照Heroku官方给出的Node.js连接方案设置的。
排查很久没有进展后,我尝试注释了所有连接Redis的客户端代码,删除原有附加组件后重新开通,本以为papertrail中不会再出现Redis相关日志,但即便没有任何连接Redis的代码运行,依旧出现相同报错。这让我怀疑问题出在Redis附加组件实例本身的设置,而非客户端代码,但目前没有排查思路。
排查更新
我登录redis-cli进行了排查,执行client list可以看到2个客户端连接:一个是我当前终端运行的redis-cli实例,另一个是连接到当前实例的副本节点客户端。奇怪的是papertrail中报错的SSL异常客户端连接对应的文件描述符为fd=12,而client list返回的两个客户端对应的文件描述符分别为fd=10和fd=11,说明还有一个fd=12的客户端连接没有出现在client list返回结果中,正是它触发了上述报错。
内容的提问来源于stack exchange,提问作者dnobbe1
相关产品推荐
相关产品推荐

