Skip to content

Commit fbc0a9e

Browse files
committed
address comments
Signed-off-by: nolouch <nolouch@gmail.com>
1 parent c24275d commit fbc0a9e

File tree

2 files changed

+33
-24
lines changed

2 files changed

+33
-24
lines changed

src/raft.rs

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1691,19 +1691,24 @@ impl<T: Storage> Raft<T> {
16911691
}
16921692
}
16931693
}
1694-
} else if m.get_from() == INVALID_ID || m.get_from() == self.id {
1695-
let rs = ReadState {
1696-
index: self.raft_log.committed,
1697-
request_ctx: m.take_entries()[0].take_data(),
1698-
};
1699-
self.read_states.push(rs);
17001694
} else {
1701-
let mut to_send = Message::default();
1702-
to_send.set_to(m.get_from());
1703-
to_send.set_msg_type(MessageType::MsgReadIndexResp);
1704-
to_send.set_index(self.raft_log.committed);
1705-
to_send.set_entries(m.take_entries());
1706-
self.send(to_send);
1695+
// there is only one voting member (the leader) in the cluster
1696+
if m.get_from() == INVALID_ID || m.get_from() == self.id {
1697+
// from leader itself
1698+
let rs = ReadState {
1699+
index: self.raft_log.committed,
1700+
request_ctx: m.take_entries()[0].take_data(),
1701+
};
1702+
self.read_states.push(rs);
1703+
} else {
1704+
// from learner member
1705+
let mut to_send = Message::default();
1706+
to_send.set_to(m.get_from());
1707+
to_send.set_msg_type(MessageType::MsgReadIndexResp);
1708+
to_send.set_index(self.raft_log.committed);
1709+
to_send.set_entries(m.take_entries());
1710+
self.send(to_send);
1711+
}
17071712
}
17081713
return Ok(());
17091714
}

tests/integration_cases/test_raft.rs

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2241,20 +2241,24 @@ fn test_read_only_with_learner() {
22412241
.read_states
22422242
.drain(..)
22432243
.collect();
2244-
if read_states.is_empty() {
2245-
panic!("#{}: read_states is empty, want non-empty", i);
2246-
}
2244+
assert_eq!(
2245+
read_states.is_empty(),
2246+
false,
2247+
"#{}: read_states is empty, want non-empty",
2248+
i
2249+
);
22472250
let rs = &read_states[0];
2248-
if rs.index != wri {
2249-
panic!("#{}: read_index = {}, want {}", i, rs.index, wri)
2250-
}
2251+
assert_eq!(
2252+
rs.index, wri,
2253+
"#{}: read_index = {}, want {}",
2254+
i, rs.index, wri
2255+
);
22512256
let vec_wctx = wctx.as_bytes().to_vec();
2252-
if rs.request_ctx != vec_wctx {
2253-
panic!(
2254-
"#{}: request_ctx = {:?}, want {:?}",
2255-
i, rs.request_ctx, vec_wctx
2256-
)
2257-
}
2257+
assert_eq!(
2258+
rs.request_ctx, vec_wctx,
2259+
"#{}: request_ctx = {:?}, want {:?}",
2260+
i, rs.request_ctx, vec_wctx
2261+
);
22582262
}
22592263
}
22602264

0 commit comments

Comments
 (0)