Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
2.7.1
-
None
-
None
Description
This issue is based on discussion on YARN-4000
Consider this scenario :
1) Application is recovered and added into scheduler, some slow NM has not re-registered back, so those containers are not yet recovered.
2) User kills this app
3) CapacityScheduler#doneApplicationAttempt is called, containers tracked by RM so far are killed. Note that CapacityScheduler#doneApplication is not called, so scheduler still has the SchedulerApplication in memory
4) Slow NM now re-registers and try to recover the containers. If application is set to keep containers across attempts, these containers will be recovered even though application is in the process of being killed. These container will not be killed later on. Hence, these containers are leaked.