Details
-
Bug
-
Status: Resolved
-
Minor
-
Resolution: Duplicate
-
2.0.2-alpha, 0.23.6
-
None
-
None
Description
ClientRMService.getQueueInfo is modifying a QueueInfo object when application reports are requested. Unfortunately this QueueInfo object could be a persisting object in the scheduler, and modifying it in this way can lead to stale application reports being returned to the client. Here's an example scenario with CapacityScheduler:
- A client asks for queue info on queue X with application reports
- ClientRMService.getQueueInfo modifies the queue's QueueInfo object and sets application reports on it
- Another client asks for recursive queue info from the root queue without application reports
- Since the old application reports are still attached to queue X's QueueInfo object, these stale reports appear in the QueueInfo data for queue X in the results
Normally if the client is not asking for application reports it won't be looking for and act upon any application reports that happen to appear in the queue info result. However we shouldn't be returning application reports in the first place, and when we do, they shouldn't be stale.
Attachments
Issue Links
- duplicates
-
YARN-2978 ResourceManager crashes with NPE while getting queue info
- Closed