hadoop-yarn-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Siddharth Seth (JIRA)" <j...@apache.org>
Subject [jira] [Created] (YARN-2264) Race in DrainDispatcher can cause random test failures
Date Wed, 09 Jul 2014 00:09:04 GMT
Siddharth Seth created YARN-2264:

             Summary: 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

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

View raw message