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

Reply via email to