-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUG]Added support for data balancing when SSL is enabled. snapshot manager add ssl config #5920
Conversation
@critical27 @dutor @SuperYoko Please help me with this issue,thanks |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good job! Thx~
* 'master' of https://github.com/cfwl100/nebula: Enabled CodeQL scanning fix the bug that index scan rule chooses a wrong geo index (vesoft-inc#5922) snapshot manager add ssl config
Sorry for late response. The cpplint in CI failed, please reformat the code~ |
Head branch was pushed to by a user without write access
Has been fixed |
@critical27 it's in a shape ready for merging 🤩 |
What type of PR is this?
What problem(s) does this PR solve?
Issue(s)
#5924:
Description:
数据均衡时,出现storaged节点间发送 Raft 副本的快照报错,且反复重试,任务一直长时间运行中,具备报错如下:
客户端报错
服务端报错
根据报错日志,追踪关键代码调用路径,SnapshotManager 管理和发送 Raft 副本的快照,承载创建Thrift客户端和发送数据能力,代码如下:
ThriftClientManager中构造方法有两个,带参数和不带参数的,带参数的构造方法会传递入参enableSSL_,默认值是false
Client方法中会根据enableSSL配置项走分支,当enableSSL为true时,创建AsyncSSLSocket(开启SSL),当为false时创建 AsyncSocket(未开启SSL)。
当客户端使用AsyncSocket,服务端使用AsyncSSLSocket进行解析时,会出现消息格式错误,因为客户端发送的消息未加密,最终服务端报错。
综上,SnapshotManager中enableSSL默认值为false,但是创建实例时使用了无参构造方法,导致这种致命性问题。
How do you solve it?
根据系统配置文件中的SSL配置项,将此配置设置到SnapshotManager带参的构造方法中,保证系统整体客户端和服务端SSL配置一致。
Special notes for your reviewer, ex. impact of this fix, design document, etc:
Checklist:
Tests:
Affects:
Release notes:
Please confirm whether to be reflected in release notes and how to describe:
Added support for data balancing when SSL is enabled.