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 (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 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