You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "Jason Lowe (JIRA)" <ji...@apache.org> on 2015/01/22 16:23:35 UTC
[jira] [Commented] (HADOOP-11499) Check of executorThreadsStarted
in ValueQueue#submitRefillTask() evades lock acquisition
[ https://issues.apache.org/jira/browse/HADOOP-11499?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14287589#comment-14287589 ]
Jason Lowe commented on HADOOP-11499:
-------------------------------------
Note that calling prestatAllCoreThreads() from multiple threads should be a non-issue in practice. Would still be nice to fix the locking structure in case someone later comes along and puts something in the code block that isn't thread-safe, but at least for now it shouldn't be causing a problem in the wild.
> Check of executorThreadsStarted in ValueQueue#submitRefillTask() evades lock acquisition
> ----------------------------------------------------------------------------------------
>
> Key: HADOOP-11499
> URL: https://issues.apache.org/jira/browse/HADOOP-11499
> Project: Hadoop Common
> Issue Type: Bug
> Reporter: Ted Yu
> Priority: Minor
>
> {code}
> if (!executorThreadsStarted) {
> synchronized (this) {
> // To ensure all requests are first queued, make coreThreads =
> // maxThreads
> // and pre-start all the Core Threads.
> executor.prestartAllCoreThreads();
> executorThreadsStarted = true;
> }
> }
> {code}
> It is possible that two threads executing the above code both see executorThreadsStarted as being false, leading to executor.prestartAllCoreThreads() called twice.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)