|  | @@ -152,7 +152,8 @@ public abstract class AbstractJobPersistentTasksExecutor<Params extends Persiste
 | 
	
		
			
				|  |  |          return true;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    public Optional<PersistentTasksCustomMetadata.Assignment> getPotentialAssignment(Params params, ClusterState clusterState) {
 | 
	
		
			
				|  |  | +    public Optional<PersistentTasksCustomMetadata.Assignment> getPotentialAssignment(Params params, ClusterState clusterState,
 | 
	
		
			
				|  |  | +                                                                                     boolean isMemoryTrackerRecentlyRefreshed) {
 | 
	
		
			
				|  |  |          // If we are waiting for an upgrade to complete, we should not assign to a node
 | 
	
		
			
				|  |  |          if (MlMetadata.getMlMetadata(clusterState).isUpgradeMode()) {
 | 
	
		
			
				|  |  |              return Optional.of(AWAITING_UPGRADE);
 | 
	
	
		
			
				|  | @@ -165,7 +166,7 @@ public abstract class AbstractJobPersistentTasksExecutor<Params extends Persiste
 | 
	
		
			
				|  |  |          if (missingIndices.isPresent()) {
 | 
	
		
			
				|  |  |              return missingIndices;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        Optional<PersistentTasksCustomMetadata.Assignment> staleMemory = checkMemoryFreshness(jobId);
 | 
	
		
			
				|  |  | +        Optional<PersistentTasksCustomMetadata.Assignment> staleMemory = checkMemoryFreshness(jobId, isMemoryTrackerRecentlyRefreshed);
 | 
	
		
			
				|  |  |          if (staleMemory.isPresent()) {
 | 
	
		
			
				|  |  |              return staleMemory;
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -212,8 +213,7 @@ public abstract class AbstractJobPersistentTasksExecutor<Params extends Persiste
 | 
	
		
			
				|  |  |          return Optional.empty();
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    public Optional<PersistentTasksCustomMetadata.Assignment> checkMemoryFreshness(String jobId) {
 | 
	
		
			
				|  |  | -        boolean isMemoryTrackerRecentlyRefreshed = memoryTracker.isRecentlyRefreshed();
 | 
	
		
			
				|  |  | +    public Optional<PersistentTasksCustomMetadata.Assignment> checkMemoryFreshness(String jobId, boolean isMemoryTrackerRecentlyRefreshed) {
 | 
	
		
			
				|  |  |          if (isMemoryTrackerRecentlyRefreshed == false) {
 | 
	
		
			
				|  |  |              boolean scheduledRefresh = memoryTracker.asyncRefresh();
 | 
	
		
			
				|  |  |              if (scheduledRefresh) {
 |