denis-chudov commented on code in PR #4707: URL: https://github.com/apache/ignite-3/pull/4707#discussion_r1841223129
########## modules/placement-driver/src/main/java/org/apache/ignite/internal/placementdriver/LeaseUpdater.java: ########## @@ -412,7 +412,7 @@ private void updateLeaseBatchInternal() { if (!lease.isAccepted()) { LeaseAgreement agreement = leaseNegotiator.getAndRemoveIfReady(grpId); - agreement.checkValid(grpId, topologyTracker.currentTopologySnapshot(), assignments); + agreement.checkValid(grpId, topologyTracker.currentTopologySnapshot(), stableAssignments); Review Comment: I mean the folowing: - no stable assignments left, the candidate is chosen from pendings - lease agreement is created and negotiation starts - on the next iteration `agreement.checkValid` may see that the candidate is not in the given assignments anymore (and the given assignments are stable here), and the candidate never was in the stable assignments because if was chosen from pendings. However, `checkValid` knows nothing about it and invalidates the agreement, stopping the negotiation and beginning the lease granting process from the start. This may cause flakiness of tests. -- 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