Skip to content
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

grpc: no need to check region id 0. #2276

Merged
merged 2 commits into from Sep 12, 2017
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
10 changes: 2 additions & 8 deletions src/server/grpc_service.rs
Expand Up @@ -777,14 +777,8 @@ impl<T: RaftStoreRouter + 'static> tikvpb_grpc::Tikv for Service<T> {
stream
.map_err(Error::from)
.for_each(move |msg| {
let res = match msg.get_region_id() {
0 => Ok(()),
_ => {
RAFT_MESSAGE_RECV_COUNTER.inc();
ch.send_raft_msg(msg)
}
};
future::result(res).map_err(Error::from)
RAFT_MESSAGE_RECV_COUNTER.inc();
future::result(ch.send_raft_msg(msg)).map_err(Error::from)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We will not allow region 0 later. So here we need to send an invalid region.

#2244 (comment)

Base on the comment, it should either return an error or end the stream if region id is 0, but here it just ignore.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because we will check the region in raftstore.
Here using 0 is for gRPC buffer hint before, but when we support raftclient flush, we don't need this now.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We will not allow region 0 later.

Do you mean server should reject invalid requests?

So here we need to send an invalid region.

Do you mean add a new test for ensuring server rejects invalid requests?
The test already sends invalid requests. 0 is the default value.
https://github.com/pingcap/tikv/pull/2244/files#diff-1f7f5096d9c5dc14c96baa97db5e97b8R456

Because we will check the region in raftstore.

Checks in raftstore will not close the streaming or send an error, so that client does not know if the request, it sends, is vaild or not.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no need check here now. we can't know the message is valid here.

})
.map_err(|e| error!("send raft msg to raft store fail: {}", e))
.then(|_| future::ok::<_, ()>(())),
Expand Down