[jira] [Commented] (HDFS-11900) Hedged reads thread pool creation not synchronized
[ https://issues.apache.org/jira/browse/HDFS-11900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16410122#comment-16410122 ] Hudson commented on HDFS-11900: --- SUCCESS: Integrated in Jenkins build Hadoop-trunk-Commit #13868 (See [https://builds.apache.org/job/Hadoop-trunk-Commit/13868/]) HDFS-11900. Hedged reads thread pool creation not synchronized. (weichiu: rev f738d75a86602353d48a810f46919e49d1c06ade) * (edit) hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/DFSClient.java > Hedged reads thread pool creation not synchronized > -- > > Key: HDFS-11900 > URL: https://issues.apache.org/jira/browse/HDFS-11900 > Project: Hadoop HDFS > Issue Type: Bug > Components: hdfs-client >Affects Versions: 2.8.0 >Reporter: John Zhuge >Assignee: John Zhuge >Priority: Major > Fix For: 3.2.0 > > Attachments: HDFS-11900.001.patch > > > *Non-static* synchronized method initThreadsNumForHedgedReads can't > synchronize the access to the *static* class variable HEDGED_READ_THREAD_POOL. > {code} > private static ThreadPoolExecutor HEDGED_READ_THREAD_POOL; > ... > private synchronized void initThreadsNumForHedgedReads(int num) { > {code} > 2 DFS clients may update the same static variable in a race because the lock > is on each DFS client object, not on the shared DFSClient class object. > There are 2 possible fixes: > 1. "Global thread pool": Change initThreadsNumForHedgedReads to static > 2. "Per-client thread pool": Change HEDGED_READ_THREAD_POOL to non-static > From the description for property {{dfs.client.hedged.read.threadpool.size}}: > {quote} > to a positive number. The threadpool size is how many threads to dedicate > to the running of these 'hedged', concurrent reads in your client. > {quote} > it seems to indicate the thread pool is per DFS client. > Let's assume we go with #1 "Global thread pool". One DFS client has the > property set to 10 in its config, while the other client has the property set > to 5 in its config, what is supposed to the size of the global thread pool? > 5? 10? Or 15? > The 2nd fix seems more reasonable to me. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-11900) Hedged reads thread pool creation not synchronized
[ https://issues.apache.org/jira/browse/HDFS-11900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16410049#comment-16410049 ] Wei-Chiu Chuang commented on HDFS-11900: Committing it. > Hedged reads thread pool creation not synchronized > -- > > Key: HDFS-11900 > URL: https://issues.apache.org/jira/browse/HDFS-11900 > Project: Hadoop HDFS > Issue Type: Bug > Components: hdfs-client >Affects Versions: 2.8.0 >Reporter: John Zhuge >Assignee: John Zhuge >Priority: Major > Attachments: HDFS-11900.001.patch > > > *Non-static* synchronized method initThreadsNumForHedgedReads can't > synchronize the access to the *static* class variable HEDGED_READ_THREAD_POOL. > {code} > private static ThreadPoolExecutor HEDGED_READ_THREAD_POOL; > ... > private synchronized void initThreadsNumForHedgedReads(int num) { > {code} > 2 DFS clients may update the same static variable in a race because the lock > is on each DFS client object, not on the shared DFSClient class object. > There are 2 possible fixes: > 1. "Global thread pool": Change initThreadsNumForHedgedReads to static > 2. "Per-client thread pool": Change HEDGED_READ_THREAD_POOL to non-static > From the description for property {{dfs.client.hedged.read.threadpool.size}}: > {quote} > to a positive number. The threadpool size is how many threads to dedicate > to the running of these 'hedged', concurrent reads in your client. > {quote} > it seems to indicate the thread pool is per DFS client. > Let's assume we go with #1 "Global thread pool". One DFS client has the > property set to 10 in its config, while the other client has the property set > to 5 in its config, what is supposed to the size of the global thread pool? > 5? 10? Or 15? > The 2nd fix seems more reasonable to me. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-11900) Hedged reads thread pool creation not synchronized
[ https://issues.apache.org/jira/browse/HDFS-11900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16407066#comment-16407066 ] genericqa commented on HDFS-11900: -- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 22s{color} | {color:blue} Docker mode activated. {color} | || || || || {color:brown} Prechecks {color} || | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s{color} | {color:green} The patch does not contain any @author tags. {color} | | {color:red}-1{color} | {color:red} test4tests {color} | {color:red} 0m 0s{color} | {color:red} The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch. {color} | || || || || {color:brown} trunk Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 15m 51s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 33s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 17s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 36s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 8m 58s{color} | {color:green} branch has no errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 25s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 22s{color} | {color:green} trunk passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 38s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 31s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 31s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 14s{color} | {color:green} hadoop-hdfs-project/hadoop-hdfs-client: The patch generated 0 new + 47 unchanged - 1 fixed = 47 total (was 48) {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 35s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s{color} | {color:green} The patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 9m 3s{color} | {color:green} patch has no errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 29s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 21s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:green}+1{color} | {color:green} unit {color} | {color:green} 1m 21s{color} | {color:green} hadoop-hdfs-client in the patch passed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 17s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 43m 19s{color} | {color:black} {color} | \\ \\ || Subsystem || Report/Notes || | Docker | Client=17.05.0-ce Server=17.05.0-ce Image:yetus/hadoop:d4cc50f | | JIRA Issue | HDFS-11900 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12870502/HDFS-11900.001.patch | | Optional Tests | asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle | | uname | Linux 2476a3656e40 4.4.0-116-generic #140-Ubuntu SMP Mon Feb 12 21:23:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /testptch/patchprocess/precommit/personality/provided.sh | | git revision | trunk / fe224ff | | maven | version: Apache Maven 3.3.9 | | Default Java | 1.8.0_151 | | findbugs | v3.1.0-RC1 | | Test Results | https://builds.apache.org/job/PreCommit-HDFS-Build/23576/testReport/ | | Max. process+thread count | 409 (vs. ulimit of 1) | | modules | C: hadoop-hdfs-project/hadoop-hdfs-client U: hadoop-hdfs-project/hadoop-hdfs-client | | Console output | https://builds.apache.org/job/PreCommit-HDFS-Build/23576/console | | Powered by | Apache Yetus 0.8.0-SNAPSHOT
[jira] [Commented] (HDFS-11900) Hedged reads thread pool creation not synchronized
[ https://issues.apache.org/jira/browse/HDFS-11900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16252641#comment-16252641 ] Wei-Chiu Chuang commented on HDFS-11900: +1. Thanks [~jzhuge] > Hedged reads thread pool creation not synchronized > -- > > Key: HDFS-11900 > URL: https://issues.apache.org/jira/browse/HDFS-11900 > Project: Hadoop HDFS > Issue Type: Bug > Components: hdfs-client >Affects Versions: 2.8.0 >Reporter: John Zhuge >Assignee: John Zhuge > Attachments: HDFS-11900.001.patch > > > *Non-static* synchronized method initThreadsNumForHedgedReads can't > synchronize the access to the *static* class variable HEDGED_READ_THREAD_POOL. > {code} > private static ThreadPoolExecutor HEDGED_READ_THREAD_POOL; > ... > private synchronized void initThreadsNumForHedgedReads(int num) { > {code} > 2 DFS clients may update the same static variable in a race because the lock > is on each DFS client object, not on the shared DFSClient class object. > There are 2 possible fixes: > 1. "Global thread pool": Change initThreadsNumForHedgedReads to static > 2. "Per-client thread pool": Change HEDGED_READ_THREAD_POOL to non-static > From the description for property {{dfs.client.hedged.read.threadpool.size}}: > {quote} > to a positive number. The threadpool size is how many threads to dedicate > to the running of these 'hedged', concurrent reads in your client. > {quote} > it seems to indicate the thread pool is per DFS client. > Let's assume we go with #1 "Global thread pool". One DFS client has the > property set to 10 in its config, while the other client has the property set > to 5 in its config, what is supposed to the size of the global thread pool? > 5? 10? Or 15? > The 2nd fix seems more reasonable to me. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-11900) Hedged reads thread pool creation not synchronized
[ https://issues.apache.org/jira/browse/HDFS-11900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16252118#comment-16252118 ] Hadoop QA commented on HDFS-11900: -- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 11s{color} | {color:blue} Docker mode activated. {color} | || || || || {color:brown} Prechecks {color} || | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s{color} | {color:green} The patch does not contain any @author tags. {color} | | {color:red}-1{color} | {color:red} test4tests {color} | {color:red} 0m 0s{color} | {color:red} The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch. {color} | || || || || {color:brown} trunk Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 14m 59s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 32s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 14s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 33s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 9m 21s{color} | {color:green} branch has no errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 23s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 22s{color} | {color:green} trunk passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 34s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 30s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 30s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 13s{color} | {color:green} hadoop-hdfs-project/hadoop-hdfs-client: The patch generated 0 new + 50 unchanged - 1 fixed = 50 total (was 51) {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 31s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s{color} | {color:green} The patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 9m 24s{color} | {color:green} patch has no errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 28s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 20s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:green}+1{color} | {color:green} unit {color} | {color:green} 1m 11s{color} | {color:green} hadoop-hdfs-client in the patch passed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 17s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 42m 27s{color} | {color:black} {color} | \\ \\ || Subsystem || Report/Notes || | Docker | Client=17.05.0-ce Server=17.05.0-ce Image:yetus/hadoop:5b98639 | | JIRA Issue | HDFS-11900 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12870502/HDFS-11900.001.patch | | Optional Tests | asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle | | uname | Linux 469deca8856b 4.4.0-43-generic #63-Ubuntu SMP Wed Oct 12 13:48:03 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /testptch/patchprocess/precommit/personality/provided.sh | | git revision | trunk / 18621af | | maven | version: Apache Maven 3.3.9 | | Default Java | 1.8.0_151 | | findbugs | v3.1.0-RC1 | | Test Results | https://builds.apache.org/job/PreCommit-HDFS-Build/22077/testReport/ | | Max. process+thread count | 402 (vs. ulimit of 5000) | | modules | C: hadoop-hdfs-project/hadoop-hdfs-client U: hadoop-hdfs-project/hadoop-hdfs-client | | Console output | https://builds.apache.org/job/PreCommit-HDFS-Build/22077/console | | Powered by | Apache Yetus 0.7.0-SNAPSHOT
[jira] [Commented] (HDFS-11900) Hedged reads thread pool creation not synchronized
[ https://issues.apache.org/jira/browse/HDFS-11900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16122217#comment-16122217 ] Hadoop QA commented on HDFS-11900: -- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 16s{color} | {color:blue} Docker mode activated. {color} | || || || || {color:brown} Prechecks {color} || | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s{color} | {color:green} The patch does not contain any @author tags. {color} | | {color:red}-1{color} | {color:red} test4tests {color} | {color:red} 0m 0s{color} | {color:red} The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch. {color} | || || || || {color:brown} trunk Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 12m 43s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 29s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 13s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 29s{color} | {color:green} trunk passed {color} | | {color:red}-1{color} | {color:red} findbugs {color} | {color:red} 1m 15s{color} | {color:red} hadoop-hdfs-project/hadoop-hdfs-client in trunk has 2 extant Findbugs warnings. {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 16s{color} | {color:green} trunk passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 28s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 25s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 25s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 12s{color} | {color:green} hadoop-hdfs-project/hadoop-hdfs-client: The patch generated 0 new + 49 unchanged - 1 fixed = 49 total (was 50) {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 28s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s{color} | {color:green} The patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 27s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 17s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:green}+1{color} | {color:green} unit {color} | {color:green} 1m 13s{color} | {color:green} hadoop-hdfs-client in the patch passed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 13s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 21m 37s{color} | {color:black} {color} | \\ \\ || Subsystem || Report/Notes || | Docker | Image:yetus/hadoop:14b5c93 | | JIRA Issue | HDFS-11900 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12870502/HDFS-11900.001.patch | | Optional Tests | asflicense compile javac javadoc mvninstall mvnsite unit findbugs checkstyle | | uname | Linux 5a2140d60c18 4.4.0-43-generic #63-Ubuntu SMP Wed Oct 12 13:48:03 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /testptch/hadoop/patchprocess/precommit/personality/provided.sh | | git revision | trunk / 312e57b | | Default Java | 1.8.0_131 | | findbugs | v3.1.0-RC1 | | findbugs | https://builds.apache.org/job/PreCommit-HDFS-Build/20642/artifact/patchprocess/branch-findbugs-hadoop-hdfs-project_hadoop-hdfs-client-warnings.html | | Test Results | https://builds.apache.org/job/PreCommit-HDFS-Build/20642/testReport/ | | modules | C: hadoop-hdfs-project/hadoop-hdfs-client U: hadoop-hdfs-project/hadoop-hdfs-client | | Console output | https://builds.apache.org/job/PreCommit-HDFS-Build/20642/console | | Powered by | Apache Yetus 0.6.0-SNAPSHOT http://yetus.apache.org | This message was automatically generated. > Hedged reads thread pool creation not synchronized > -- > > Key: HDFS-11900 > URL: https://issues.apache.org/jira/browse/HDFS-11900 >
[jira] [Commented] (HDFS-11900) Hedged reads thread pool creation not synchronized
[ https://issues.apache.org/jira/browse/HDFS-11900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16122172#comment-16122172 ] Wei-Chiu Chuang commented on HDFS-11900: Thanks for the patch John, I kicked off a precommit build for you. > Hedged reads thread pool creation not synchronized > -- > > Key: HDFS-11900 > URL: https://issues.apache.org/jira/browse/HDFS-11900 > Project: Hadoop HDFS > Issue Type: Bug > Components: hdfs-client >Affects Versions: 2.8.0 >Reporter: John Zhuge >Assignee: John Zhuge > Attachments: HDFS-11900.001.patch > > > *Non-static* synchronized method initThreadsNumForHedgedReads can't > synchronize the access to the *static* class variable HEDGED_READ_THREAD_POOL. > {code} > private static ThreadPoolExecutor HEDGED_READ_THREAD_POOL; > ... > private synchronized void initThreadsNumForHedgedReads(int num) { > {code} > 2 DFS clients may update the same static variable in a race because the lock > is on each DFS client object, not on the shared DFSClient class object. > There are 2 possible fixes: > 1. "Global thread pool": Change initThreadsNumForHedgedReads to static > 2. "Per-client thread pool": Change HEDGED_READ_THREAD_POOL to non-static > From the description for property {{dfs.client.hedged.read.threadpool.size}}: > {quote} > to a positive number. The threadpool size is how many threads to dedicate > to the running of these 'hedged', concurrent reads in your client. > {quote} > it seems to indicate the thread pool is per DFS client. > Let's assume we go with #1 "Global thread pool". One DFS client has the > property set to 10 in its config, while the other client has the property set > to 5 in its config, what is supposed to the size of the global thread pool? > 5? 10? Or 15? > The 2nd fix seems more reasonable to me. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org