Consider the following situation:
node1, node2, and node3 are all on rack1
task1 is submitted with resource requests on node1, node2, rack1, and *
task2 is submitted with resource requests on node3, rack1, and *
The RM gives a container to the app on node1, on which the AM assigns task1. While node1 is removed from the scheduler's bookkeeping, node2 is not, so its delay scheduling will try as hard to assign a container there is it would to node3.
The AM should cancel its request for node2 on its next heartbeat by sending a resource request with # containers = 0.