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]

Reply via email to