[ https://issues.apache.org/jira/browse/YARN-2264?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14063908#comment-14063908 ]
Hudson commented on YARN-2264: ------------------------------ FAILURE: Integrated in Hadoop-trunk-Commit #5893 (See [https://builds.apache.org/job/Hadoop-trunk-Commit/5893/]) YARN-2264. Fixed a race condition in DrainDispatcher which may cause random test failures. Contributed by Li Lu (jianhe: http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1611126) * /hadoop/common/trunk/hadoop-yarn-project/CHANGES.txt * /hadoop/common/trunk/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/event/DrainDispatcher.java > Race in DrainDispatcher can cause random test failures > ------------------------------------------------------ > > Key: YARN-2264 > URL: https://issues.apache.org/jira/browse/YARN-2264 > Project: Hadoop YARN > Issue Type: Bug > Reporter: Siddharth Seth > Assignee: Li Lu > Fix For: 2.6.0 > > Attachments: YARN-2264-070814.patch > > > This is what can happen. > This is the potential race. > DrainDispatcher is started via serviceStart() . As a last step, this starts > the actual dispatcher thread (eventHandlingThread.start() - and returns > immediately - which means the thread may or may not have started up by the > time start returns. > Event sequence: > UserThread: calls dispatcher.getEventHandler().handle() > This sets drained = false, and a context switch happens. > DispatcherThread: starts running > DispatcherThread drained = queue.isEmpty(); -> This sets drained to true, > since Thread1 yielded before putting anything into the queue. > UserThread: actual.handle(event) - which puts the event in the queue for the > dispatcher thread to process, and returns control. > UserThread: dispatcher.await() - Since drained is true, this returns > immediately - even though there is a pending event to process. -- This message was sent by Atlassian JIRA (v6.2#6252)