sanpwc commented on code in PR #6373:
URL: https://github.com/apache/ignite-3/pull/6373#discussion_r2257713402


##########
modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/PersistentTxStateVacuumizer.java:
##########
@@ -174,11 +176,19 @@ public CompletableFuture<PersistentTxStateVacuumResult> 
vacuumPersistentTxStates
                 .handle((unused, unusedEx) -> new 
PersistentTxStateVacuumResult(successful, 
vacuumizedPersistentTxnStatesCount.get()));
     }
 
-    private boolean expectedException(Throwable e) {
+    private static boolean expectedException(Throwable e) {
         return hasCause(e,
                 PrimaryReplicaMissException.class,
                 NodeStoppingException.class,
-                GroupOverloadedException.class
+                GroupOverloadedException.class,
+                // ReplicationException and ReplicationTimeoutException can be 
thrown from ReplicaService on receiver node, when there
+                // is no replica. This may happen if it was removed after 
getting the primary replica but before the message was received
+                // on the receiver (during rebalancing, or distribution zone 
is deleted, etc.).
+                // We can ignore the exception in this case because we rely on 
the placement driver, that it won't prolong the non-existing
+                // replica's lease, the primary replica will be moved to 
another node and that another node will handle the vacummization of
+                // the persistent tx state.
+                ReplicationException.class,

Review Comment:
   Is it true that ReplicationException will **only** being thrown in case of 
missing replica?



-- 
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: notifications-unsubscr...@ignite.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to