vesoft-inc / vesoft-inc/nebula-cpp
if the metad connection fails, the leader of ListSpacesResp should be used for retry
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 19
- Forks
- 25
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 1
Description
Please check the FAQ documentation before raising an issue
Describe the bug (required)
When I use nebula-cpp to scan data, it will be failed sometimes. Three metad servers are deployed in the environment.
I noticed that metad client use metaAddrs_.back() to connect to the server. However, metaAddrs_.back() is not necessarily the leader and errors will occurred sometimes. Thus, The leader of ListSpacesResp should be used for connection retry.
The code in https://github.com/vesoft-inc/nebula/blob/master/src/clients/meta/MetaClient.cpp should be synced to nebula-cpp?
Your Environments (required)
- OS:
uname -a: centos7 - Commit id (e.g.
a3ffc7d8): master
How To Reproduce(required)
Steps to reproduce the behavior:
- Step 1
- Step 2
- Step 3
Expected behavior
Additional context
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading src/clients/meta/MetaClient.cpp and comparing it with the corresponding MetaClient.cpp in the nebula repository. Trace the retry path used when a metad connection fails and determine how the leader from ListSpacesResp should be selected. Done means retries no longer depend on metaAddrs_.back() when that address is not the leader.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- databases
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100