[
https://issues.apache.org/jira/browse/YARN-2264?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14064797#comment-14064797
]
Hudson commented on YARN-2264:
------------------------------
FAILURE: Integrated in Hadoop-Yarn-trunk #615 (See
[https://builds.apache.org/job/Hadoop-Yarn-trunk/615/])
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)