Varun Saxena commented on YARN-3916:

In YARN-3878 we introduced check for whether event queue is empty in 
Even pre YARN-3878, code was essentially doing the same but that was through a 
volatile flag. That may have failed sometimes as well. 
But changes to volatile flag were not seen by other thread as quickly as 
checking for event queue being empty hence few of these tests were not failing 
and allowing async dispatcher to handle the event.

We should ideally check whether event has been handled in addition to event 
queue being empty.

> DrainDispatcher#await should wait till event has been completely handled
> ------------------------------------------------------------------------
>                 Key: YARN-3916
>                 URL: https://issues.apache.org/jira/browse/YARN-3916
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: resourcemanager
>    Affects Versions: 2.7.0
>            Reporter: Varun Saxena
>            Assignee: Varun Saxena
>            Priority: Critical
> DrainDispatcher#await should wait till event has been completely handled.
> Currently it only checks for whether event queue has become empty.
> And in many tests we directly check for a state to be changed after calling 
> await.
> Sometimes, the states do not change by the time we check them as event has 
> not been completely handled.
> This is causing test failures such as YARN-3909 and YARN-3910 and may cause 
> other test failures as well.

This message was sent by Atlassian JIRA

Reply via email to