szetszwo commented on code in PR #1248:
URL: https://github.com/apache/ratis/pull/1248#discussion_r2051553443
##########
ratis-server/src/main/java/org/apache/ratis/server/impl/ServerImplUtils.java:
##########
@@ -138,19 +138,14 @@ synchronized Long getTerm(long index) {
synchronized void append(List<ConsecutiveIndices> entriesTermIndices) {
for(ConsecutiveIndices indices : entriesTermIndices) {
- // validate startIndex
- final Map.Entry<Long, ConsecutiveIndices> lastEntry = map.lastEntry();
- if (lastEntry != null) {
- Preconditions.assertSame(lastEntry.getValue().getNextIndex(),
indices.startIndex, "startIndex");
- }
map.put(indices.startIndex, indices);
Review Comment:
Actually, you are right. The leader could send a request and then send
another request for a retry. The follower could get both requests about the
same time. Then both of them can be added to `appendLogTermIndices`. One of
them will fail when append to the RaftLog since they are append the same entry.
We should either fail fast or simply ignore the second request. What do you
think?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]