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