[jira] [Updated] (HDFS-14431) RBF: Rename with multiple subclusters should fail if no eligible locations

2019-06-24 Thread Brahma Reddy Battula (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-14431?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brahma Reddy Battula updated HDFS-14431:

Parent Issue: HDFS-14603  (was: HDFS-13891)

> RBF: Rename with multiple subclusters should fail if no eligible locations
> --
>
> Key: HDFS-14431
> URL: https://issues.apache.org/jira/browse/HDFS-14431
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Íñigo Goiri
>Assignee: Íñigo Goiri
>Priority: Major
> Attachments: HDFS-14431-HDFS-13891.001.patch, 
> HDFS-14431-HDFS-13891.002.patch, HDFS-14431-HDFS-13891.003.patch, 
> HDFS-14431-HDFS-13891.004.patch, HDFS-14431-HDFS-13891.005.patch, 
> HDFS-14431-HDFS-13891.006.patch, HDFS-14431-HDFS-13891.007.patch
>
>
> Currently, the rename will fail with FileNotFoundException which is not clear 
> to the user.
> The operation should fail stating the reason is that there are no eligible 
> destinations.



--
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] [Updated] (HDFS-14257) RBF : NPE when given the Invalid path to create target dir

2019-06-24 Thread Brahma Reddy Battula (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-14257?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brahma Reddy Battula updated HDFS-14257:

Parent Issue: HDFS-14603  (was: HDFS-13891)

> RBF : NPE when given the Invalid path to create target dir
> --
>
> Key: HDFS-14257
> URL: https://issues.apache.org/jira/browse/HDFS-14257
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Harshakiran Reddy
>Assignee: venkata ramkumar
>Priority: Major
>  Labels: RBF
>
> bin> ./hdfs dfs -mkdir hdfs://{color:red}hacluster2 /hacluster1{color}dest2/
> {noformat}
> -mkdir: Fatal internal error
> java.lang.NullPointerException
> at 
> org.apache.hadoop.fs.FileSystem.fixRelativePart(FileSystem.java:2714)
> at 
> org.apache.hadoop.hdfs.DistributedFileSystem.fixRelativePart(DistributedFileSystem.java:3229)
> at 
> org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1618)
> at org.apache.hadoop.fs.FileSystem.exists(FileSystem.java:1742)
> at 
> org.apache.hadoop.fs.shell.Mkdir.processNonexistentPath(Mkdir.java:74)
> at 
> org.apache.hadoop.fs.shell.Command.processArgument(Command.java:287)
> at 
> org.apache.hadoop.fs.shell.Command.processArguments(Command.java:269)
> at 
> org.apache.hadoop.fs.shell.FsCommand.processRawArguments(FsCommand.java:121)
> at org.apache.hadoop.fs.shell.Command.run(Command.java:176)
> at org.apache.hadoop.fs.FsShell.run(FsShell.java:328)
> at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
> at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:90)
> at org.apache.hadoop.fs.FsShell.main(FsShell.java:391)
> bin>
> {noformat}



--
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] [Updated] (HDFS-14430) RBF: Fix MockNamenode bug about mocking RPC getListing and mkdir

2019-06-24 Thread Brahma Reddy Battula (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-14430?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brahma Reddy Battula updated HDFS-14430:

Parent Issue: HDFS-14603  (was: HDFS-13891)

> RBF: Fix MockNamenode bug about mocking RPC getListing and mkdir
> 
>
> Key: HDFS-14430
> URL: https://issues.apache.org/jira/browse/HDFS-14430
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: rbf
>Reporter: He Xiaoqiao
>Assignee: He Xiaoqiao
>Priority: Major
> Attachments: HDFS-14430-HDFS-13891.001.patch
>
>
> Some unexpected result when invoke mocking #getListing and #mkdirs in current 
> MockNamenode implement.
> * for mock mkdirs, we do not check if parent directory exists.
> * for mock getListing, some child dirs/files are not listing.
> It may be cause some unexpected result and cause some unit test fail.



--
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] [Updated] (HDFS-14284) RBF: Log Router identifier when reporting exceptions

2019-06-24 Thread Brahma Reddy Battula (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-14284?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brahma Reddy Battula updated HDFS-14284:

Parent Issue: HDFS-14603  (was: HDFS-13891)

> RBF: Log Router identifier when reporting exceptions
> 
>
> Key: HDFS-14284
> URL: https://issues.apache.org/jira/browse/HDFS-14284
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Íñigo Goiri
>Priority: Major
>
> The typical setup is to use multiple Routers through 
> ConfiguredFailoverProxyProvider.
> In a regular HA Namenode setup, it is easy to know which NN was used.
> However, in RBF, any Router can be the one reporting the exception and it is 
> hard to know which was the one.
> We should have a way to identify which Router/Namenode was the one triggering 
> the exception.
> This would also apply with Observer Namenodes.



--
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] [Updated] (HDFS-14427) RBF: Optimize some testing set up logic in MiniRouterDFSCluster

2019-06-24 Thread Brahma Reddy Battula (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-14427?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brahma Reddy Battula updated HDFS-14427:

Parent Issue: HDFS-14603  (was: HDFS-13891)

> RBF: Optimize some testing set up logic in MiniRouterDFSCluster
> ---
>
> Key: HDFS-14427
> URL: https://issues.apache.org/jira/browse/HDFS-14427
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Fengnan Li
>Assignee: Fengnan Li
>Priority: Major
> Attachments: HDFS-14427-HDFS-13891.001.patch
>
>
> [https://github.com/apache/hadoop/blob/HDFS-13891/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/MiniRouterDFSCluster.java#L808]
> the comment says one router is created per name service, while in the code 
> one router is created per namenode in each nameservice.
> There are a couple of things that might need to consider optimization:
>  # make the code as the the comment
>  # add some ways to specify the number of routers



--
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] [Updated] (HDFS-14254) RBF: Getfacl gives a wrong acl entries when the order of the mount table set to HASH_ALL or RANDOM

2019-06-24 Thread Brahma Reddy Battula (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-14254?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brahma Reddy Battula updated HDFS-14254:

Parent Issue: HDFS-14603  (was: HDFS-13891)

> RBF: Getfacl gives a wrong acl entries when the order of the mount table set 
> to HASH_ALL or RANDOM
> --
>
> Key: HDFS-14254
> URL: https://issues.apache.org/jira/browse/HDFS-14254
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Shubham Dewan
>Assignee: Ranith Sardar
>Priority: Major
> Attachments: HDFS-14254-HDFS-13891.000.patch, 
> HDFS-14254-HDFS-13891.001.patch, HDFS-14254-HDFS-13891.002.patch, 
> HDFS-14254-HDFS-13891.003.patch
>
>
> ACL entries are missing when Order is set to HASH_ALL or RANDOM



--
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] [Updated] (HDFS-14385) RBF: Optimize MiniRouterDFSCluster with optional light weight MiniDFSCluster

2019-06-24 Thread Brahma Reddy Battula (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-14385?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brahma Reddy Battula updated HDFS-14385:

Parent Issue: HDFS-14603  (was: HDFS-13891)

> RBF: Optimize MiniRouterDFSCluster with optional light weight MiniDFSCluster
> 
>
> Key: HDFS-14385
> URL: https://issues.apache.org/jira/browse/HDFS-14385
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: rbf
>Reporter: He Xiaoqiao
>Assignee: He Xiaoqiao
>Priority: Major
> Attachments: HDFS-14385-HDFS-13891.001.patch
>
>
> MiniRouterDFSCluster mimic federated HDFS cluster with routers to support RBF 
> test, In MiniRouterDFSCluster, it starts MiniDFSCluster with complete roles 
> of HDFS which have significant time cost. As HDFS-14351 discussed, it is 
> better to provide mock MiniDFSCluster/Namenodes as one option to support some 
> test case and reduce time cost.



--
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] [Updated] (HDFS-13896) RBF: Web UI not displaying clearly which target path is pointing to which name service in mount table

2019-06-24 Thread Brahma Reddy Battula (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-13896?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brahma Reddy Battula updated HDFS-13896:

Parent Issue: HDFS-14603  (was: HDFS-13891)

> RBF: Web UI not displaying clearly which target path is pointing to which 
> name service in mount table 
> --
>
> Key: HDFS-13896
> URL: https://issues.apache.org/jira/browse/HDFS-13896
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: venkata ramkumar
>Assignee: venkata ramkumar
>Priority: Minor
> Attachments: HDFS-13896.001.patch, HDFS-13896.002.patch, 
> HDFS-13896_after.png, HDFS-13896_before.png
>
>
> Commands:/HDFS/hadoop/bin> ./hdfs dfsrouteradmin -add /apps hacluster1 /opt
>  18/09/05 12:32:44 WARN util.NativeCodeLoader: Unable to load native-hadoop 
> library for your platform... using builtin-java classes where applicable
>  Successfully added mount point /apps
> Command: ./hdfs dfsrouteradmin -add /apps hacluster2 /opt1
>  18/09/05 12:33:13 WARN util.NativeCodeLoader: Unable to load native-hadoop 
> library for your platform... using builtin-java classes where applicable
>  Successfully added mount point /apps
> Command: /HDFS/hadoop/bin> ./hdfs dfsrouteradmin -add /apps hacluster1 /opt2
>  18/09/05 14:21:12 WARN util.NativeCodeLoader: Unable to load native-hadoop 
> library for your platform... using builtin-java classes where applicable
>  Successfully added mount point /apps
> Command :/HDFS/hadoop/bin> ./hdfs dfsrouteradmin -ls
>  18/09/05 12:34:16 WARN util.NativeCodeLoader: Unable to load native-hadoop 
> library for your platform... using builtin-java classes where applicable
>  Mount Table Entries:
>  Source Destinations Owner Group Mode Quota/Usage
>  /apps hacluster1->/opt,hacluster2->/opt1,hacluster1->/opt2 securedn users 
> rwxr-xr-x [NsQuota: -/-, SsQuota: -/-]
> WebUI : Mount Table
> ||Global path||Target nameservice||Target path||Order||Read 
> only||Owner||Group||Permission||Quota/Usage||Date Modified||Date Created||
> |/apps|hacluster1,hacluster2|/opt,/opt1,/opt2|HASH| 
> |securedn|users|rwxr-xr-x|[NsQuota: -/-, SsQuota: -/-]|2018/09/05 
> 16:50:54|2018/09/05 15:02:25|
>  
>   
>  
>  
>  



--
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] [Updated] (HDFS-14169) RBF: Correct the returned value in case of IOException in NamenodeBeanMetrics#getFederationMetrics

2019-06-24 Thread Brahma Reddy Battula (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-14169?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brahma Reddy Battula updated HDFS-14169:

Parent Issue: HDFS-14603  (was: HDFS-13891)

> RBF: Correct the returned value in case of IOException in 
> NamenodeBeanMetrics#getFederationMetrics
> --
>
> Key: HDFS-14169
> URL: https://issues.apache.org/jira/browse/HDFS-14169
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Ayush Saxena
>Assignee: Ayush Saxena
>Priority: Major
> Attachments: HDFS-14169-HDFS-13891-01.patch
>
>
> Presently in case of IOException the the metrics value returned is 0 which is 
> a legal entry.Better to change to a value which could indicate that the value 
> hasn't been actually fetched.



--
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] [Updated] (HDFS-14117) RBF: We can only delete the files or dirs of one subcluster in a cluster with multiple subclusters when trash is enabled

2019-06-24 Thread Brahma Reddy Battula (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-14117?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brahma Reddy Battula updated HDFS-14117:

Parent Issue: HDFS-14603  (was: HDFS-13891)

> RBF: We can only delete the files or dirs of one subcluster in a cluster with 
> multiple subclusters when trash is enabled
> 
>
> Key: HDFS-14117
> URL: https://issues.apache.org/jira/browse/HDFS-14117
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: venkata ramkumar
>Priority: Major
>  Labels: RBF
> Attachments: HDFS-14117-HDFS-13891.001.patch, 
> HDFS-14117-HDFS-13891.002.patch, HDFS-14117-HDFS-13891.003.patch, 
> HDFS-14117-HDFS-13891.004.patch, HDFS-14117-HDFS-13891.005.patch, 
> HDFS-14117-HDFS-13891.006.patch, HDFS-14117-HDFS-13891.007.patch, 
> HDFS-14117-HDFS-13891.008.patch, HDFS-14117-HDFS-13891.009.patch, 
> HDFS-14117-HDFS-13891.010.patch, HDFS-14117-HDFS-13891.011.patch, 
> HDFS-14117-HDFS-13891.012.patch, HDFS-14117-HDFS-13891.013.patch, 
> HDFS-14117-HDFS-13891.014.patch, HDFS-14117-HDFS-13891.015.patch, 
> HDFS-14117-HDFS-13891.016.patch, HDFS-14117-HDFS-13891.017.patch, 
> HDFS-14117-HDFS-13891.018.patch, HDFS-14117-HDFS-13891.019.patch, 
> HDFS-14117-HDFS-13891.020.patch, HDFS-14117.001.patch, HDFS-14117.002.patch, 
> HDFS-14117.003.patch, HDFS-14117.004.patch, HDFS-14117.005.patch
>
>
> When we delete files or dirs in hdfs, it will move the deleted files or dirs 
> to trash by default.
> But in the global path we can only mount one trash dir /user. So we mount 
> trash dir /user of the subcluster ns1 to the global path /user. Then we can 
> delete files or dirs of ns1, but when we delete the files or dirs of another 
> subcluser, such as hacluster, it will be failed.
> h1. Mount Table
> ||Global path||Target nameservice||Target path||Order||Read 
> only||Owner||Group||Permission||Quota/Usage||Date Modified||Date Created||
> |/test|hacluster2|/test| | |securedn|users|rwxr-xr-x|[NsQuota: -/-, SsQuota: 
> -/-]|2018/11/29 14:37:42|2018/11/29 14:37:42|
> |/tmp|hacluster1|/tmp| | |securedn|users|rwxr-xr-x|[NsQuota: -/-, SsQuota: 
> -/-]|2018/11/29 14:37:05|2018/11/29 14:37:05|
> |/user|hacluster2,hacluster1|/user|HASH| |securedn|users|rwxr-xr-x|[NsQuota: 
> -/-, SsQuota: -/-]|2018/11/29 14:42:37|2018/11/29 14:38:20|
> commands: 
> {noformat}
> 1./opt/HAcluater_ram1/install/hadoop/router/bin> ./hdfs dfs -ls /test/.
> 18/11/30 11:00:47 WARN util.NativeCodeLoader: Unable to load native-hadoop 
> library for your platform... using builtin-java classes where applicable
> Found 1 items
> -rw-r--r-- 3 securedn supergroup 8081 2018-11-30 10:56 /test/hdfs.cmd
> 2./opt/HAcluater_ram1/install/hadoop/router/bin> ./hdfs dfs -ls /tmp/.
> 18/11/30 11:00:40 WARN util.NativeCodeLoader: Unable to load native-hadoop 
> library for your platform... using builtin-java classes where applicable
> Found 1 items
> -rw-r--r--   3 securedn supergroup   6311 2018-11-30 10:57 /tmp/mapred.cmd
> 3../opt/HAcluater_ram1/install/hadoop/router/bin> ./hdfs dfs -rm 
> /tmp/mapred.cmd
> 18/11/30 11:01:02 WARN util.NativeCodeLoader: Unable to load native-hadoop 
> library for your platform... using builtin-java classes where applicable
> rm: Failed to move to trash: hdfs://router/tmp/mapred.cmd: rename destination 
> parent /user/securedn/.Trash/Current/tmp/mapred.cmd not found.
> 4./opt/HAcluater_ram1/install/hadoop/router/bin> ./hdfs dfs -rm /test/hdfs.cmd
> 18/11/30 11:01:20 WARN util.NativeCodeLoader: Unable to load native-hadoop 
> library for your platform... using builtin-java classes where applicable
> 18/11/30 11:01:22 INFO fs.TrashPolicyDefault: Moved: 
> 'hdfs://router/test/hdfs.cmd' to trash at: 
> hdfs://router/user/securedn/.Trash/Current/test/hdfs.cmd
> {noformat}



--
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] [Updated] (HDFS-13811) RBF: Race condition between router admin quota update and periodic quota update service

2019-06-24 Thread Brahma Reddy Battula (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-13811?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brahma Reddy Battula updated HDFS-13811:

Parent Issue: HDFS-14603  (was: HDFS-13891)

> RBF: Race condition between router admin quota update and periodic quota 
> update service
> ---
>
> Key: HDFS-13811
> URL: https://issues.apache.org/jira/browse/HDFS-13811
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Dibyendu Karmakar
>Assignee: Dibyendu Karmakar
>Priority: Major
> Attachments: HDFS-13811-000.patch, HDFS-13811-HDFS-13891-000.patch
>
>
> If we try to update quota of an existing mount entry and at the same time 
> periodic quota update service is running on the same mount entry, it is 
> leading the mount table to _inconsistent state._
> Here transactions are:
> A - Quota update service is fetching mount table entries.
> B - Quota update service is updating the mount table with current usage.
> A' - User is trying to update quota using admin cmd.
> and the transaction sequence is [ A A' B ]
> quota update service is updating the mount table with old quota value.



--
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-14079) RBF: RouterAdmin should have failover concept for router

2019-06-24 Thread Hadoop QA (JIRA)


[ 
https://issues.apache.org/jira/browse/HDFS-14079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16872034#comment-16872034
 ] 

Hadoop QA commented on HDFS-14079:
--

| (x) *{color:red}-1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue}  0m  
0s{color} | {color:blue} Docker mode activated. {color} |
| {color:red}-1{color} | {color:red} patch {color} | {color:red}  0m  8s{color} 
| {color:red} HDFS-14079 does not apply to HDFS-13891. Rebase required? Wrong 
Branch? See https://wiki.apache.org/hadoop/HowToContribute for help. {color} |
\\
\\
|| Subsystem || Report/Notes ||
| JIRA Issue | HDFS-14079 |
| JIRA Patch URL | 
https://issues.apache.org/jira/secure/attachment/12949647/HDFS-14079-HDFS-13891.02.patch
 |
| Console output | 
https://builds.apache.org/job/PreCommit-HDFS-Build/27070/console |
| Powered by | Apache Yetus 0.8.0   http://yetus.apache.org |


This message was automatically generated.



> RBF: RouterAdmin should have failover concept for router
> 
>
> Key: HDFS-14079
> URL: https://issues.apache.org/jira/browse/HDFS-14079
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Affects Versions: 3.1.1
>Reporter: Surendra Singh Lilhore
>Assignee: Surendra Singh Lilhore
>Priority: Major
> Attachments: HDFS-14079-HDFS-13891.01.patch, 
> HDFS-14079-HDFS-13891.02.patch
>
>
> Currenlty {{RouterAdmin}} connect with only one router for admin operation, 
> if the configured router is down then router admin command is failing. It 
> should allow to configure all the router admin address.
> {code}
> // Initialize RouterClient
> try {
>   String address = getConf().getTrimmed(
>   RBFConfigKeys.DFS_ROUTER_ADMIN_ADDRESS_KEY,
>   RBFConfigKeys.DFS_ROUTER_ADMIN_ADDRESS_DEFAULT);
>   InetSocketAddress routerSocket = NetUtils.createSocketAddr(address);
>   client = new RouterClient(routerSocket, getConf());
> } catch (RPC.VersionMismatch v) {
>   System.err.println(
>   "Version mismatch between client and server... command aborted");
>   return exitCode;
> }
> {code}



--
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] [Updated] (HDFS-14090) RBF: Improved isolation for downstream name nodes.

2019-06-24 Thread Brahma Reddy Battula (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-14090?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brahma Reddy Battula updated HDFS-14090:

Parent Issue: HDFS-14603  (was: HDFS-13891)

> RBF: Improved isolation for downstream name nodes.
> --
>
> Key: HDFS-14090
> URL: https://issues.apache.org/jira/browse/HDFS-14090
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: CR Hota
>Assignee: CR Hota
>Priority: Major
> Attachments: HDFS-14090-HDFS-13891.001.patch, 
> HDFS-14090-HDFS-13891.002.patch, HDFS-14090-HDFS-13891.003.patch, 
> HDFS-14090-HDFS-13891.004.patch, HDFS-14090-HDFS-13891.005.patch, RBF_ 
> Isolation design.pdf
>
>
> Router is a gateway to underlying name nodes. Gateway architectures, should 
> help minimize impact of clients connecting to healthy clusters vs unhealthy 
> clusters.
> For example - If there are 2 name nodes downstream, and one of them is 
> heavily loaded with calls spiking rpc queue times, due to back pressure the 
> same with start reflecting on the router. As a result of this, clients 
> connecting to healthy/faster name nodes will also slow down as same rpc queue 
> is maintained for all calls at the router layer. Essentially the same IPC 
> thread pool is used by router to connect to all name nodes.
> Currently router uses one single rpc queue for all calls. Lets discuss how we 
> can change the architecture and add some throttling logic for 
> unhealthy/slow/overloaded name nodes.
> One way could be to read from current call queue, immediately identify 
> downstream name node and maintain a separate queue for each underlying name 
> node. Another simpler way is to maintain some sort of rate limiter configured 
> for each name node and let routers drop/reject/send error requests after 
> certain threshold. 
> This won’t be a simple change as router’s ‘Server’ layer would need redesign 
> and implementation. Currently this layer is the same as name node.
> Opening this ticket to discuss, design and implement this feature.
>  



--
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] [Updated] (HDFS-14079) RBF: RouterAdmin should have failover concept for router

2019-06-24 Thread Brahma Reddy Battula (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-14079?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brahma Reddy Battula updated HDFS-14079:

Parent Issue: HDFS-14603  (was: HDFS-13891)

> RBF: RouterAdmin should have failover concept for router
> 
>
> Key: HDFS-14079
> URL: https://issues.apache.org/jira/browse/HDFS-14079
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Affects Versions: 3.1.1
>Reporter: Surendra Singh Lilhore
>Assignee: Surendra Singh Lilhore
>Priority: Major
> Attachments: HDFS-14079-HDFS-13891.01.patch, 
> HDFS-14079-HDFS-13891.02.patch
>
>
> Currenlty {{RouterAdmin}} connect with only one router for admin operation, 
> if the configured router is down then router admin command is failing. It 
> should allow to configure all the router admin address.
> {code}
> // Initialize RouterClient
> try {
>   String address = getConf().getTrimmed(
>   RBFConfigKeys.DFS_ROUTER_ADMIN_ADDRESS_KEY,
>   RBFConfigKeys.DFS_ROUTER_ADMIN_ADDRESS_DEFAULT);
>   InetSocketAddress routerSocket = NetUtils.createSocketAddr(address);
>   client = new RouterClient(routerSocket, getConf());
> } catch (RPC.VersionMismatch v) {
>   System.err.println(
>   "Version mismatch between client and server... command aborted");
>   return exitCode;
> }
> {code}



--
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-14602) EC:RESTAPI Support for set/unset REPLICATE EcPolicy via WebHdfs

2019-06-24 Thread Souryakanta Dwivedy (JIRA)


[ 
https://issues.apache.org/jira/browse/HDFS-14602?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16872030#comment-16872030
 ] 

Souryakanta Dwivedy commented on HDFS-14602:


Yes it is working with policy name as replication [~ayushtkn].As in ec document 
and hdfs shell command the configuration option is provided as replicate not 
replication,which create confusion for me. But after configuration of replicate 
, if you do get policy via webHdfs it is returning value as NULL.

> EC:RESTAPI  Support for set/unset REPLICATE EcPolicy via WebHdfs
> 
>
> Key: HDFS-14602
> URL: https://issues.apache.org/jira/browse/HDFS-14602
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: erasure-coding
>Affects Versions: 3.1.1
>Reporter: Souryakanta Dwivedy
>Assignee: Ayush Saxena
>Priority: Minor
>
> EC:RESTAPI  Support for set/unset REPLICATE EcPolicy via WebHdfs



--
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-13694) Making md5 computing being in parallel with image loading

2019-06-24 Thread Hadoop QA (JIRA)


[ 
https://issues.apache.org/jira/browse/HDFS-13694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16872008#comment-16872008
 ] 

Hadoop QA commented on HDFS-13694:
--

| (x) *{color:red}-1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue}  1m  
9s{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} 20m 
40s{color} | {color:green} trunk passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green}  1m  
0s{color} | {color:green} trunk passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green}  0m 
43s{color} | {color:green} trunk passed {color} |
| {color:green}+1{color} | {color:green} mvnsite {color} | {color:green}  1m  
5s{color} | {color:green} trunk passed {color} |
| {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 
12m 19s{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}  2m 
15s{color} | {color:green} trunk passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green}  0m 
51s{color} | {color:green} trunk passed {color} |
|| || || || {color:brown} Patch Compile Tests {color} ||
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green}  1m 
 1s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green}  0m 
53s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javac {color} | {color:green}  0m 
53s{color} | {color:green} the patch passed {color} |
| {color:orange}-0{color} | {color:orange} checkstyle {color} | {color:orange}  
0m 35s{color} | {color:orange} hadoop-hdfs-project/hadoop-hdfs: The patch 
generated 1 new + 28 unchanged - 0 fixed = 29 total (was 28) {color} |
| {color:green}+1{color} | {color:green} mvnsite {color} | {color:green}  1m  
2s{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} 
11m 21s{color} | {color:green} patch has no errors when building and testing 
our client artifacts. {color} |
| {color:red}-1{color} | {color:red} findbugs {color} | {color:red}  2m 
18s{color} | {color:red} hadoop-hdfs-project/hadoop-hdfs generated 1 new + 0 
unchanged - 0 fixed = 1 total (was 0) {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green}  0m 
45s{color} | {color:green} the patch passed {color} |
|| || || || {color:brown} Other Tests {color} ||
| {color:red}-1{color} | {color:red} unit {color} | {color:red}121m  0s{color} 
| {color:red} hadoop-hdfs in the patch failed. {color} |
| {color:green}+1{color} | {color:green} asflicense {color} | {color:green}  0m 
36s{color} | {color:green} The patch does not generate ASF License warnings. 
{color} |
| {color:black}{color} | {color:black} {color} | {color:black}179m 34s{color} | 
{color:black} {color} |
\\
\\
|| Reason || Tests ||
| FindBugs | module:hadoop-hdfs-project/hadoop-hdfs |
|  |  Should 
org.apache.hadoop.hdfs.server.namenode.FSImageFormatProtobuf$Loader$DigestThread
 be a _static_ inner class?  At FSImageFormatProtobuf.java:inner class?  At 
FSImageFormatProtobuf.java:[lines 176-203] |
| Failed junit tests | hadoop.hdfs.server.diskbalancer.TestDiskBalancer |
|   | hadoop.hdfs.web.TestWebHdfsTimeouts |
|   | hadoop.hdfs.server.datanode.TestDirectoryScanner |
\\
\\
|| Subsystem || Report/Notes ||
| Docker | Client=17.05.0-ce Server=17.05.0-ce Image:yetus/hadoop:bdbca0e |
| JIRA Issue | HDFS-13694 |
| JIRA Patch URL | 
https://issues.apache.org/jira/secure/attachment/12972805/HDFS-13694-003.patch |
| Optional Tests |  dupname  asflicense  compile  javac  javadoc  mvninstall  
mvnsite  unit  shadedclient  findbugs  checkstyle  |
| uname | Linux a4e9d697a2b6 4.4.0-138-generic #164-Ubuntu SMP Tue Oct 2 
17:16:02 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux |
| Build tool | maven |
| Personality | 

[jira] [Work logged] (HDDS-1617) Restructure the code layout for Ozone Manager

2019-06-24 Thread ASF GitHub Bot (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDDS-1617?focusedWorklogId=266334=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-266334
 ]

ASF GitHub Bot logged work on HDDS-1617:


Author: ASF GitHub Bot
Created on: 25/Jun/19 05:09
Start Date: 25/Jun/19 05:09
Worklog Time Spent: 10m 
  Work Description: anuengineer commented on pull request #880: HDDS-1617. 
Restructure the code layout for Ozone Manager
URL: https://github.com/apache/hadoop/pull/880
 
 
   
 

This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
---

Worklog Id: (was: 266334)
Time Spent: 2.5h  (was: 2h 20m)

> Restructure the code layout for Ozone Manager
> -
>
> Key: HDDS-1617
> URL: https://issues.apache.org/jira/browse/HDDS-1617
> Project: Hadoop Distributed Data Store
>  Issue Type: Improvement
>  Components: Ozone Manager
>Reporter: Anu Engineer
>Assignee: Anu Engineer
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 2.5h
>  Remaining Estimate: 0h
>
> The Ozone Manager has a flat structure that deals with lot of specific 
> functions. This Jira proposes to refactor ozone managers code base and move 
> function specific packages.
>  



--
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] [Updated] (HDDS-1617) Restructure the code layout for Ozone Manager

2019-06-24 Thread Anu Engineer (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDDS-1617?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Anu Engineer updated HDDS-1617:
---
Status: Open  (was: Patch Available)

Abandoning this patch, since it changes too much stuff so close to 0.4.1

> Restructure the code layout for Ozone Manager
> -
>
> Key: HDDS-1617
> URL: https://issues.apache.org/jira/browse/HDDS-1617
> Project: Hadoop Distributed Data Store
>  Issue Type: Improvement
>  Components: Ozone Manager
>Reporter: Anu Engineer
>Assignee: Anu Engineer
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 2h 20m
>  Remaining Estimate: 0h
>
> The Ozone Manager has a flat structure that deals with lot of specific 
> functions. This Jira proposes to refactor ozone managers code base and move 
> function specific packages.
>  



--
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] [Work logged] (HDDS-1723) Create new OzoneManagerLock class

2019-06-24 Thread ASF GitHub Bot (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDDS-1723?focusedWorklogId=266322=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-266322
 ]

ASF GitHub Bot logged work on HDDS-1723:


Author: ASF GitHub Bot
Created on: 25/Jun/19 04:44
Start Date: 25/Jun/19 04:44
Worklog Time Spent: 10m 
  Work Description: bharatviswa504 commented on issue #1006: HDDS-1723. 
Create new OzoneManagerLock class.
URL: https://github.com/apache/hadoop/pull/1006#issuecomment-505280177
 
 
   Thank You @anuengineer for the review.
   I have fixed the review comments.
 

This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
---

Worklog Id: (was: 266322)
Time Spent: 5h 50m  (was: 5h 40m)

> Create new OzoneManagerLock class
> -
>
> Key: HDDS-1723
> URL: https://issues.apache.org/jira/browse/HDDS-1723
> Project: Hadoop Distributed Data Store
>  Issue Type: Improvement
>  Components: Ozone Manager
>Reporter: Bharat Viswanadham
>Assignee: Bharat Viswanadham
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 5h 50m
>  Remaining Estimate: 0h
>
> This Jira is to use bit manipulation, instead of hashmap in OzoneManager lock 
> logic. And also this Jira follows the locking order based on the document 
> attached to HDDS-1672 jira.
> This Jira is created based on [~anu] comment during review of HDDS-1672.
> Not a suggestion for this patch. But more of a question, should we just 
> maintain a bitset here, and just flip that bit up and down to see if the lock 
> is held. Or we can just maintain 32 bit integer, and we can easily find if a 
> lock is held by Xoring with the correct mask. I feel that might be super 
> efficient. [@nandakumar131|https://github.com/nandakumar131] . But as I said 
> let us not do that in this patch.
>  
> This Jira will add new class, integration of this new class into code will be 
> done in a new jira. 
> Clean up of old code also will be done in new jira.



--
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] [Work logged] (HDDS-1723) Create new OzoneManagerLock class

2019-06-24 Thread ASF GitHub Bot (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDDS-1723?focusedWorklogId=266321=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-266321
 ]

ASF GitHub Bot logged work on HDDS-1723:


Author: ASF GitHub Bot
Created on: 25/Jun/19 04:43
Start Date: 25/Jun/19 04:43
Worklog Time Spent: 10m 
  Work Description: bharatviswa504 commented on pull request #1006: 
HDDS-1723. Create new OzoneManagerLock class.
URL: https://github.com/apache/hadoop/pull/1006#discussion_r297003720
 
 

 ##
 File path: 
hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/lock/OzoneManagerLock.java
 ##
 @@ -0,0 +1,336 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.ozone.om.lock;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.ozone.lock.LockManager;
+
+/**
+ * Provides different locks to handle concurrency in OzoneMaster.
+ * We also maintain lock hierarchy, based on the weight.
+ *
+ * 
+ *   
+ *   
+ *  WEIGHT   LOCK 
+ *   
+ *   
+ *  0   S3 Bucket Lock 
+ *   
+ *   
+ *  1   Volume Lock 
+ *   
+ *   
+ *  2   Bucket Lock 
+ *   
+ *   
+ *  3   User Lock 
+ *   
+ *   
+ *  4   S3 Secret Lock
+ *   
+ *   
+ *  5   Prefix Lock 
+ *   
+ * 
+ *
+ * One cannot obtain a lower weight lock while holding a lock with higher
+ * weight. The other way around is possible. 
+ * 
+ * 
+ * For example:
+ * 
+ * {@literal ->} acquire volume lock (will work)
+ *   {@literal +->} acquire bucket lock (will work)
+ * {@literal +-->} acquire s3 bucket lock (will throw Exception)
+ * 
+ * 
+ */
+
+public class OzoneManagerLock {
+
+  private static final Logger LOG =
+  LoggerFactory.getLogger(OzoneManagerLock.class);
+
+  private final LockManager manager;
+  private final ThreadLocal lockSet = ThreadLocal.withInitial(
+  () -> Short.valueOf((short)0));
+
+
+  /**
+   * Creates new OzoneManagerLock instance.
+   * @param conf Configuration object
+   */
+  public OzoneManagerLock(Configuration conf) {
+manager = new LockManager<>(conf);
+  }
+
+  /**
+   * Acquire lock on resource.
+   *
+   * For S3_Bucket, VOLUME, BUCKET type resource, same thread acquiring lock
+   * again is allowed.
+   *
+   * For USER, PREFIX, S3_SECRET type resource, same thread acquiring lock
+   * again is not allowed.
+   *
+   * Special Note for UserLock: Single thread can acquire single user lock/
+   * multi user lock. But not both at the same time.
+   * @param resourceName - Resource name on which user want to acquire lock.
+   * @param resource - Type of the resource.
+   */
+  public void acquireLock(String resourceName, Resource resource) {
+if (!resource.canLock(lockSet.get())) {
+  String errorMessage = getErrorMessage(resource);
+  LOG.error(errorMessage);
+  throw new RuntimeException(errorMessage);
+} else {
+  manager.lock(resourceName);
+  lockSet.set(resource.setLock(lockSet.get()));
+}
+  }
+
+  private String getErrorMessage(Resource resource) {
+return "Thread '" + Thread.currentThread().getName() + "' cannot " +
+"acquire " + resource.name + " lock while holding " +
+getCurrentLocks().toString() + " lock(s).";
+
+  }
+
+  private List getCurrentLocks() {
+List currentLocks = new ArrayList<>();
+int i=0;
+short lockSetVal = lockSet.get();
+for (Resource value : Resource.values()) {
+  if (value.isLevelLocked(lockSetVal)) {
+currentLocks.add(value.getName());
+  }
+}
+return currentLocks;
+  }
+
+  /**
+   * Acquire lock on multiple users.
+   * @param oldUserResource
+   * @param newUserResource
+   */
+  public void acquireMultiUserLock(String oldUserResource,
+  String newUserResource) {
+Resource resource = Resource.USER;
+if (!resource.canLock(lockSet.get())) {
+  String errorMessage = getErrorMessage(resource);
+  LOG.error(errorMessage);
+  throw new RuntimeException(errorMessage);
+} else {
+  // When 

[jira] [Work logged] (HDDS-1723) Create new OzoneManagerLock class

2019-06-24 Thread ASF GitHub Bot (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDDS-1723?focusedWorklogId=266320=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-266320
 ]

ASF GitHub Bot logged work on HDDS-1723:


Author: ASF GitHub Bot
Created on: 25/Jun/19 04:42
Start Date: 25/Jun/19 04:42
Worklog Time Spent: 10m 
  Work Description: bharatviswa504 commented on pull request #1006: 
HDDS-1723. Create new OzoneManagerLock class.
URL: https://github.com/apache/hadoop/pull/1006#discussion_r297003664
 
 

 ##
 File path: 
hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/lock/OzoneManagerLock.java
 ##
 @@ -0,0 +1,336 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.ozone.om.lock;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.ozone.lock.LockManager;
+
+/**
+ * Provides different locks to handle concurrency in OzoneMaster.
+ * We also maintain lock hierarchy, based on the weight.
+ *
+ * 
+ *   
+ *   
+ *  WEIGHT   LOCK 
+ *   
+ *   
+ *  0   S3 Bucket Lock 
+ *   
+ *   
+ *  1   Volume Lock 
+ *   
+ *   
+ *  2   Bucket Lock 
+ *   
+ *   
+ *  3   User Lock 
+ *   
+ *   
+ *  4   S3 Secret Lock
+ *   
+ *   
+ *  5   Prefix Lock 
+ *   
+ * 
+ *
+ * One cannot obtain a lower weight lock while holding a lock with higher
+ * weight. The other way around is possible. 
+ * 
+ * 
+ * For example:
+ * 
+ * {@literal ->} acquire volume lock (will work)
+ *   {@literal +->} acquire bucket lock (will work)
+ * {@literal +-->} acquire s3 bucket lock (will throw Exception)
+ * 
+ * 
+ */
+
+public class OzoneManagerLock {
+
+  private static final Logger LOG =
+  LoggerFactory.getLogger(OzoneManagerLock.class);
+
+  private final LockManager manager;
+  private final ThreadLocal lockSet = ThreadLocal.withInitial(
+  () -> Short.valueOf((short)0));
+
+
+  /**
+   * Creates new OzoneManagerLock instance.
+   * @param conf Configuration object
+   */
+  public OzoneManagerLock(Configuration conf) {
+manager = new LockManager<>(conf);
+  }
+
+  /**
+   * Acquire lock on resource.
+   *
+   * For S3_Bucket, VOLUME, BUCKET type resource, same thread acquiring lock
+   * again is allowed.
+   *
+   * For USER, PREFIX, S3_SECRET type resource, same thread acquiring lock
+   * again is not allowed.
+   *
+   * Special Note for UserLock: Single thread can acquire single user lock/
+   * multi user lock. But not both at the same time.
+   * @param resourceName - Resource name on which user want to acquire lock.
+   * @param resource - Type of the resource.
+   */
+  public void acquireLock(String resourceName, Resource resource) {
+if (!resource.canLock(lockSet.get())) {
+  String errorMessage = getErrorMessage(resource);
+  LOG.error(errorMessage);
+  throw new RuntimeException(errorMessage);
+} else {
+  manager.lock(resourceName);
+  lockSet.set(resource.setLock(lockSet.get()));
+}
+  }
+
+  private String getErrorMessage(Resource resource) {
+return "Thread '" + Thread.currentThread().getName() + "' cannot " +
+"acquire " + resource.name + " lock while holding " +
+getCurrentLocks().toString() + " lock(s).";
+
+  }
+
+  private List getCurrentLocks() {
+List currentLocks = new ArrayList<>();
+int i=0;
+short lockSetVal = lockSet.get();
+for (Resource value : Resource.values()) {
+  if (value.isLevelLocked(lockSetVal)) {
+currentLocks.add(value.getName());
+  }
+}
+return currentLocks;
+  }
+
+  /**
+   * Acquire lock on multiple users.
+   * @param oldUserResource
+   * @param newUserResource
+   */
+  public void acquireMultiUserLock(String oldUserResource,
+  String newUserResource) {
+Resource resource = Resource.USER;
+if (!resource.canLock(lockSet.get())) {
+  String errorMessage = getErrorMessage(resource);
+  LOG.error(errorMessage);
+  throw new RuntimeException(errorMessage);
+} else {
+  // When 

[jira] [Updated] (HDDS-1617) Restructure the code layout for Ozone Manager

2019-06-24 Thread Anu Engineer (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDDS-1617?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Anu Engineer updated HDDS-1617:
---
Status: Patch Available  (was: Open)

> Restructure the code layout for Ozone Manager
> -
>
> Key: HDDS-1617
> URL: https://issues.apache.org/jira/browse/HDDS-1617
> Project: Hadoop Distributed Data Store
>  Issue Type: Improvement
>  Components: Ozone Manager
>Reporter: Anu Engineer
>Assignee: Anu Engineer
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 2h 20m
>  Remaining Estimate: 0h
>
> The Ozone Manager has a flat structure that deals with lot of specific 
> functions. This Jira proposes to refactor ozone managers code base and move 
> function specific packages.
>  



--
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-14598) Findbugs warning caused by HDFS-12487

2019-06-24 Thread Wei-Chiu Chuang (JIRA)


[ 
https://issues.apache.org/jira/browse/HDFS-14598?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16871986#comment-16871986
 ] 

Wei-Chiu Chuang commented on HDFS-14598:


Cherrypick the commits into branch-3.2 branch-3.1. Thanks [~anu]!

> Findbugs warning caused by HDFS-12487
> -
>
> Key: HDFS-14598
> URL: https://issues.apache.org/jira/browse/HDFS-14598
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: diskbalancer
>Reporter: Wei-Chiu Chuang
>Assignee: He Xiaoqiao
>Priority: Minor
>  Labels: newbie
> Fix For: 3.3.0, 3.2.1, 3.1.3
>
> Attachments: HDFS-14598.001.patch
>
>
> https://builds.apache.org/job/PreCommit-HDFS-Build/27038/artifact/out/branch-findbugs-hadoop-hdfs-project_hadoop-hdfs-warnings.html
> {noformat}
> Redundant nullcheck of block, which is known to be non-null in 
> org.apache.hadoop.hdfs.server.datanode.DiskBalancer$DiskBalancerMover.getBlockToCopy(FsVolumeSpi$BlockIterator,
>  DiskBalancerWorkItem)
> Bug type RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE (click for details) 
> In class org.apache.hadoop.hdfs.server.datanode.DiskBalancer$DiskBalancerMover
> In method 
> org.apache.hadoop.hdfs.server.datanode.DiskBalancer$DiskBalancerMover.getBlockToCopy(FsVolumeSpi$BlockIterator,
>  DiskBalancerWorkItem)
> Value loaded from block
> Return value of 
> org.apache.hadoop.hdfs.server.datanode.fsdataset.FsVolumeSpi$BlockIterator.nextBlock()
>  of type org.apache.hadoop.hdfs.protocol.ExtendedBlock
> Redundant null check at DiskBalancer.java:[line 912]
> {noformat}



--
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] [Updated] (HDFS-14598) Findbugs warning caused by HDFS-12487

2019-06-24 Thread Wei-Chiu Chuang (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-14598?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Wei-Chiu Chuang updated HDFS-14598:
---
Fix Version/s: 3.1.3
   3.2.1

> Findbugs warning caused by HDFS-12487
> -
>
> Key: HDFS-14598
> URL: https://issues.apache.org/jira/browse/HDFS-14598
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: diskbalancer
>Reporter: Wei-Chiu Chuang
>Assignee: He Xiaoqiao
>Priority: Minor
>  Labels: newbie
> Fix For: 3.3.0, 3.2.1, 3.1.3
>
> Attachments: HDFS-14598.001.patch
>
>
> https://builds.apache.org/job/PreCommit-HDFS-Build/27038/artifact/out/branch-findbugs-hadoop-hdfs-project_hadoop-hdfs-warnings.html
> {noformat}
> Redundant nullcheck of block, which is known to be non-null in 
> org.apache.hadoop.hdfs.server.datanode.DiskBalancer$DiskBalancerMover.getBlockToCopy(FsVolumeSpi$BlockIterator,
>  DiskBalancerWorkItem)
> Bug type RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE (click for details) 
> In class org.apache.hadoop.hdfs.server.datanode.DiskBalancer$DiskBalancerMover
> In method 
> org.apache.hadoop.hdfs.server.datanode.DiskBalancer$DiskBalancerMover.getBlockToCopy(FsVolumeSpi$BlockIterator,
>  DiskBalancerWorkItem)
> Value loaded from block
> Return value of 
> org.apache.hadoop.hdfs.server.datanode.fsdataset.FsVolumeSpi$BlockIterator.nextBlock()
>  of type org.apache.hadoop.hdfs.protocol.ExtendedBlock
> Redundant null check at DiskBalancer.java:[line 912]
> {noformat}



--
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] [Work logged] (HDDS-1723) Create new OzoneManagerLock class

2019-06-24 Thread ASF GitHub Bot (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDDS-1723?focusedWorklogId=266316=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-266316
 ]

ASF GitHub Bot logged work on HDDS-1723:


Author: ASF GitHub Bot
Created on: 25/Jun/19 04:27
Start Date: 25/Jun/19 04:27
Worklog Time Spent: 10m 
  Work Description: bharatviswa504 commented on pull request #1006: 
HDDS-1723. Create new OzoneManagerLock class.
URL: https://github.com/apache/hadoop/pull/1006#discussion_r297000862
 
 

 ##
 File path: 
hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/lock/OzoneManagerLock.java
 ##
 @@ -0,0 +1,336 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.ozone.om.lock;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.ozone.lock.LockManager;
+
+/**
+ * Provides different locks to handle concurrency in OzoneMaster.
+ * We also maintain lock hierarchy, based on the weight.
+ *
+ * 
+ *   
+ *   
+ *  WEIGHT   LOCK 
+ *   
+ *   
+ *  0   S3 Bucket Lock 
+ *   
+ *   
+ *  1   Volume Lock 
+ *   
+ *   
+ *  2   Bucket Lock 
+ *   
+ *   
+ *  3   User Lock 
+ *   
+ *   
+ *  4   S3 Secret Lock
+ *   
+ *   
+ *  5   Prefix Lock 
+ *   
+ * 
+ *
+ * One cannot obtain a lower weight lock while holding a lock with higher
+ * weight. The other way around is possible. 
+ * 
+ * 
+ * For example:
+ * 
+ * {@literal ->} acquire volume lock (will work)
+ *   {@literal +->} acquire bucket lock (will work)
+ * {@literal +-->} acquire s3 bucket lock (will throw Exception)
+ * 
+ * 
+ */
+
+public class OzoneManagerLock {
+
+  private static final Logger LOG =
+  LoggerFactory.getLogger(OzoneManagerLock.class);
+
+  private final LockManager manager;
+  private final ThreadLocal lockSet = ThreadLocal.withInitial(
+  () -> Short.valueOf((short)0));
+
+
+  /**
+   * Creates new OzoneManagerLock instance.
+   * @param conf Configuration object
+   */
+  public OzoneManagerLock(Configuration conf) {
+manager = new LockManager<>(conf);
+  }
+
+  /**
+   * Acquire lock on resource.
+   *
+   * For S3_Bucket, VOLUME, BUCKET type resource, same thread acquiring lock
+   * again is allowed.
+   *
+   * For USER, PREFIX, S3_SECRET type resource, same thread acquiring lock
+   * again is not allowed.
+   *
+   * Special Note for UserLock: Single thread can acquire single user lock/
+   * multi user lock. But not both at the same time.
+   * @param resourceName - Resource name on which user want to acquire lock.
+   * @param resource - Type of the resource.
+   */
+  public void acquireLock(String resourceName, Resource resource) {
+if (!resource.canLock(lockSet.get())) {
+  String errorMessage = getErrorMessage(resource);
+  LOG.error(errorMessage);
+  throw new RuntimeException(errorMessage);
+} else {
+  manager.lock(resourceName);
+  lockSet.set(resource.setLock(lockSet.get()));
+}
+  }
+
+  private String getErrorMessage(Resource resource) {
+return "Thread '" + Thread.currentThread().getName() + "' cannot " +
+"acquire " + resource.name + " lock while holding " +
+getCurrentLocks().toString() + " lock(s).";
+
+  }
+
+  private List getCurrentLocks() {
+List currentLocks = new ArrayList<>();
+int i=0;
+short lockSetVal = lockSet.get();
+for (Resource value : Resource.values()) {
+  if (value.isLevelLocked(lockSetVal)) {
+currentLocks.add(value.getName());
+  }
+}
+return currentLocks;
+  }
+
+  /**
+   * Acquire lock on multiple users.
+   * @param oldUserResource
+   * @param newUserResource
+   */
+  public void acquireMultiUserLock(String oldUserResource,
+  String newUserResource) {
+Resource resource = Resource.USER;
+if (!resource.canLock(lockSet.get())) {
+  String errorMessage = getErrorMessage(resource);
+  LOG.error(errorMessage);
+  throw new RuntimeException(errorMessage);
+} else {
+  // When 

[jira] [Work logged] (HDDS-1723) Create new OzoneManagerLock class

2019-06-24 Thread ASF GitHub Bot (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDDS-1723?focusedWorklogId=266315=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-266315
 ]

ASF GitHub Bot logged work on HDDS-1723:


Author: ASF GitHub Bot
Created on: 25/Jun/19 04:24
Start Date: 25/Jun/19 04:24
Worklog Time Spent: 10m 
  Work Description: bharatviswa504 commented on pull request #1006: 
HDDS-1723. Create new OzoneManagerLock class.
URL: https://github.com/apache/hadoop/pull/1006#discussion_r297000862
 
 

 ##
 File path: 
hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/lock/OzoneManagerLock.java
 ##
 @@ -0,0 +1,336 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.ozone.om.lock;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.ozone.lock.LockManager;
+
+/**
+ * Provides different locks to handle concurrency in OzoneMaster.
+ * We also maintain lock hierarchy, based on the weight.
+ *
+ * 
+ *   
+ *   
+ *  WEIGHT   LOCK 
+ *   
+ *   
+ *  0   S3 Bucket Lock 
+ *   
+ *   
+ *  1   Volume Lock 
+ *   
+ *   
+ *  2   Bucket Lock 
+ *   
+ *   
+ *  3   User Lock 
+ *   
+ *   
+ *  4   S3 Secret Lock
+ *   
+ *   
+ *  5   Prefix Lock 
+ *   
+ * 
+ *
+ * One cannot obtain a lower weight lock while holding a lock with higher
+ * weight. The other way around is possible. 
+ * 
+ * 
+ * For example:
+ * 
+ * {@literal ->} acquire volume lock (will work)
+ *   {@literal +->} acquire bucket lock (will work)
+ * {@literal +-->} acquire s3 bucket lock (will throw Exception)
+ * 
+ * 
+ */
+
+public class OzoneManagerLock {
+
+  private static final Logger LOG =
+  LoggerFactory.getLogger(OzoneManagerLock.class);
+
+  private final LockManager manager;
+  private final ThreadLocal lockSet = ThreadLocal.withInitial(
+  () -> Short.valueOf((short)0));
+
+
+  /**
+   * Creates new OzoneManagerLock instance.
+   * @param conf Configuration object
+   */
+  public OzoneManagerLock(Configuration conf) {
+manager = new LockManager<>(conf);
+  }
+
+  /**
+   * Acquire lock on resource.
+   *
+   * For S3_Bucket, VOLUME, BUCKET type resource, same thread acquiring lock
+   * again is allowed.
+   *
+   * For USER, PREFIX, S3_SECRET type resource, same thread acquiring lock
+   * again is not allowed.
+   *
+   * Special Note for UserLock: Single thread can acquire single user lock/
+   * multi user lock. But not both at the same time.
+   * @param resourceName - Resource name on which user want to acquire lock.
+   * @param resource - Type of the resource.
+   */
+  public void acquireLock(String resourceName, Resource resource) {
+if (!resource.canLock(lockSet.get())) {
+  String errorMessage = getErrorMessage(resource);
+  LOG.error(errorMessage);
+  throw new RuntimeException(errorMessage);
+} else {
+  manager.lock(resourceName);
+  lockSet.set(resource.setLock(lockSet.get()));
+}
+  }
+
+  private String getErrorMessage(Resource resource) {
+return "Thread '" + Thread.currentThread().getName() + "' cannot " +
+"acquire " + resource.name + " lock while holding " +
+getCurrentLocks().toString() + " lock(s).";
+
+  }
+
+  private List getCurrentLocks() {
+List currentLocks = new ArrayList<>();
+int i=0;
+short lockSetVal = lockSet.get();
+for (Resource value : Resource.values()) {
+  if (value.isLevelLocked(lockSetVal)) {
+currentLocks.add(value.getName());
+  }
+}
+return currentLocks;
+  }
+
+  /**
+   * Acquire lock on multiple users.
+   * @param oldUserResource
+   * @param newUserResource
+   */
+  public void acquireMultiUserLock(String oldUserResource,
+  String newUserResource) {
+Resource resource = Resource.USER;
+if (!resource.canLock(lockSet.get())) {
+  String errorMessage = getErrorMessage(resource);
+  LOG.error(errorMessage);
+  throw new RuntimeException(errorMessage);
+} else {
+  // When 

[jira] [Work logged] (HDDS-1723) Create new OzoneManagerLock class

2019-06-24 Thread ASF GitHub Bot (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDDS-1723?focusedWorklogId=266313=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-266313
 ]

ASF GitHub Bot logged work on HDDS-1723:


Author: ASF GitHub Bot
Created on: 25/Jun/19 04:22
Start Date: 25/Jun/19 04:22
Worklog Time Spent: 10m 
  Work Description: bharatviswa504 commented on pull request #1006: 
HDDS-1723. Create new OzoneManagerLock class.
URL: https://github.com/apache/hadoop/pull/1006#discussion_r297000650
 
 

 ##
 File path: 
hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/lock/OzoneManagerLock.java
 ##
 @@ -0,0 +1,336 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.ozone.om.lock;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.ozone.lock.LockManager;
+
+/**
+ * Provides different locks to handle concurrency in OzoneMaster.
+ * We also maintain lock hierarchy, based on the weight.
+ *
+ * 
+ *   
+ *   
+ *  WEIGHT   LOCK 
+ *   
+ *   
+ *  0   S3 Bucket Lock 
+ *   
+ *   
+ *  1   Volume Lock 
+ *   
+ *   
+ *  2   Bucket Lock 
+ *   
+ *   
+ *  3   User Lock 
+ *   
+ *   
+ *  4   S3 Secret Lock
+ *   
+ *   
+ *  5   Prefix Lock 
+ *   
+ * 
+ *
+ * One cannot obtain a lower weight lock while holding a lock with higher
+ * weight. The other way around is possible. 
+ * 
+ * 
+ * For example:
+ * 
+ * {@literal ->} acquire volume lock (will work)
+ *   {@literal +->} acquire bucket lock (will work)
+ * {@literal +-->} acquire s3 bucket lock (will throw Exception)
+ * 
+ * 
+ */
+
+public class OzoneManagerLock {
+
+  private static final Logger LOG =
+  LoggerFactory.getLogger(OzoneManagerLock.class);
+
+  private final LockManager manager;
+  private final ThreadLocal lockSet = ThreadLocal.withInitial(
+  () -> Short.valueOf((short)0));
+
+
+  /**
+   * Creates new OzoneManagerLock instance.
+   * @param conf Configuration object
+   */
+  public OzoneManagerLock(Configuration conf) {
+manager = new LockManager<>(conf);
+  }
+
+  /**
+   * Acquire lock on resource.
+   *
+   * For S3_Bucket, VOLUME, BUCKET type resource, same thread acquiring lock
+   * again is allowed.
+   *
+   * For USER, PREFIX, S3_SECRET type resource, same thread acquiring lock
+   * again is not allowed.
+   *
+   * Special Note for UserLock: Single thread can acquire single user lock/
+   * multi user lock. But not both at the same time.
+   * @param resourceName - Resource name on which user want to acquire lock.
+   * @param resource - Type of the resource.
+   */
+  public void acquireLock(String resourceName, Resource resource) {
+if (!resource.canLock(lockSet.get())) {
+  String errorMessage = getErrorMessage(resource);
+  LOG.error(errorMessage);
+  throw new RuntimeException(errorMessage);
+} else {
+  manager.lock(resourceName);
+  lockSet.set(resource.setLock(lockSet.get()));
+}
+  }
+
+  private String getErrorMessage(Resource resource) {
+return "Thread '" + Thread.currentThread().getName() + "' cannot " +
+"acquire " + resource.name + " lock while holding " +
+getCurrentLocks().toString() + " lock(s).";
+
+  }
+
+  private List getCurrentLocks() {
+List currentLocks = new ArrayList<>();
+int i=0;
+short lockSetVal = lockSet.get();
+for (Resource value : Resource.values()) {
+  if (value.isLevelLocked(lockSetVal)) {
+currentLocks.add(value.getName());
+  }
+}
+return currentLocks;
+  }
+
+  /**
+   * Acquire lock on multiple users.
+   * @param oldUserResource
+   * @param newUserResource
+   */
+  public void acquireMultiUserLock(String oldUserResource,
+  String newUserResource) {
+Resource resource = Resource.USER;
+if (!resource.canLock(lockSet.get())) {
+  String errorMessage = getErrorMessage(resource);
+  LOG.error(errorMessage);
+  throw new RuntimeException(errorMessage);
+} else {
+  // When 

[jira] [Updated] (HDFS-14247) Repeat adding node description into network topology

2019-06-24 Thread Wei-Chiu Chuang (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-14247?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Wei-Chiu Chuang updated HDFS-14247:
---
Fix Version/s: 3.1.3
   2.9.3
   3.2.1
   2.8.6
   3.0.4
   2.10.0

> Repeat adding node description into network topology
> 
>
> Key: HDFS-14247
> URL: https://issues.apache.org/jira/browse/HDFS-14247
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: datanode
>Affects Versions: 3.3.0
>Reporter: HuangTao
>Assignee: HuangTao
>Priority: Minor
> Fix For: 2.10.0, 3.0.4, 3.3.0, 2.8.6, 3.2.1, 2.9.3, 3.1.3
>
> Attachments: HDFS-14247.001.patch
>
>
> I find there is a duplicate code to add nodeDescr to networktopology in the 
> DatanodeManager.java#registerDatanode.
> It firstly call networktopology.add(nodeDescr), and then call  
> addDatanode(nodeDescr) to add nodeDescr again



--
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-13694) Making md5 computing being in parallel with image loading

2019-06-24 Thread Hadoop QA (JIRA)


[ 
https://issues.apache.org/jira/browse/HDFS-13694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16871981#comment-16871981
 ] 

Hadoop QA commented on HDFS-13694:
--

| (x) *{color:red}-1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue}  0m 
25s{color} | {color:blue} Docker mode activated. {color} |
|| || || || {color:brown} Prechecks {color} ||
| {color:green}+1{color} | {color:green} dupname {color} | {color:green}  0m  
0s{color} | {color:green} No case conflicting files found. {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} 19m 
39s{color} | {color:green} trunk passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green}  1m  
3s{color} | {color:green} trunk passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green}  0m 
45s{color} | {color:green} trunk passed {color} |
| {color:green}+1{color} | {color:green} mvnsite {color} | {color:green}  1m 
12s{color} | {color:green} trunk passed {color} |
| {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 
13m 31s{color} | {color:green} branch has no errors when building and testing 
our client artifacts. {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green}  0m 
50s{color} | {color:green} trunk passed {color} |
| {color:blue}0{color} | {color:blue} spotbugs {color} | {color:blue}  2m 
56s{color} | {color:blue} Used deprecated FindBugs config; considering 
switching to SpotBugs. {color} |
| {color:red}-1{color} | {color:red} findbugs {color} | {color:red}  2m 
54s{color} | {color:red} hadoop-hdfs-project/hadoop-hdfs in trunk has 1 extant 
findbugs warnings. {color} |
|| || || || {color:brown} Patch Compile Tests {color} ||
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green}  1m 
 4s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green}  1m  
0s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javac {color} | {color:green}  1m  
0s{color} | {color:green} the patch passed {color} |
| {color:orange}-0{color} | {color:orange} checkstyle {color} | {color:orange}  
0m 38s{color} | {color:orange} hadoop-hdfs-project/hadoop-hdfs: The patch 
generated 1 new + 28 unchanged - 0 fixed = 29 total (was 28) {color} |
| {color:green}+1{color} | {color:green} mvnsite {color} | {color:green}  1m 
11s{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} 
12m 45s{color} | {color:green} patch has no errors when building and testing 
our client artifacts. {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green}  0m 
49s{color} | {color:green} the patch passed {color} |
| {color:red}-1{color} | {color:red} findbugs {color} | {color:red}  3m  
6s{color} | {color:red} hadoop-hdfs-project/hadoop-hdfs generated 1 new + 1 
unchanged - 0 fixed = 2 total (was 1) {color} |
|| || || || {color:brown} Other Tests {color} ||
| {color:red}-1{color} | {color:red} unit {color} | {color:red} 86m 39s{color} 
| {color:red} hadoop-hdfs in the patch failed. {color} |
| {color:green}+1{color} | {color:green} asflicense {color} | {color:green}  1m 
 0s{color} | {color:green} The patch does not generate ASF License warnings. 
{color} |
| {color:black}{color} | {color:black} {color} | {color:black}149m 38s{color} | 
{color:black} {color} |
\\
\\
|| Reason || Tests ||
| FindBugs | module:hadoop-hdfs-project/hadoop-hdfs |
|  |  Should 
org.apache.hadoop.hdfs.server.namenode.FSImageFormatProtobuf$Loader$DigestThread
 be a _static_ inner class?  At FSImageFormatProtobuf.java:inner class?  At 
FSImageFormatProtobuf.java:[lines 176-203] |
| Failed junit tests | hadoop.hdfs.server.diskbalancer.TestDiskBalancer |
|   | hadoop.hdfs.web.TestWebHdfsTimeouts |
\\
\\
|| Subsystem || Report/Notes ||
| Docker | Client=17.05.0-ce Server=17.05.0-ce base: 
https://builds.apache.org/job/hadoop-multibranch/job/PR-1010/1/artifact/out/Dockerfile
 |
| GITHUB PR | https://github.com/apache/hadoop/pull/1010 |
| JIRA Issue | 

[jira] [Updated] (HDFS-12172) Reduce EZ lookup overhead

2019-06-24 Thread Wei-Chiu Chuang (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-12172?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Wei-Chiu Chuang updated HDFS-12172:
---
Attachment: HDFS-12172.004.patch

> Reduce EZ lookup overhead
> -
>
> Key: HDFS-12172
> URL: https://issues.apache.org/jira/browse/HDFS-12172
> Project: Hadoop HDFS
>  Issue Type: Improvement
>Affects Versions: 2.7.0
>Reporter: Daryn Sharp
>Assignee: Daryn Sharp
>Priority: Major
> Attachments: HDFS-12172.002.patch, HDFS-12172.003.patch, 
> HDFS-12172.004.patch, HDFS-12172.01.patch, HDFS-12172.patch
>
>
> A number of inefficiencies exist in EZ lookups.  These are amplified by 
> frequent operations like list status.  Once one encryption zone exists, all 
> operations take the performance penalty.
> Ex. Operations should not perform redundant lookups.  EZ path reconstruction 
> should be lazy since it's not required in the common case.  Renames do not 
> need to reallocate new IIPs to check parent dirs for EZ.



--
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-13470) RBF: Add Browse the Filesystem button to the UI

2019-06-24 Thread Hadoop QA (JIRA)


[ 
https://issues.apache.org/jira/browse/HDFS-13470?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16871965#comment-16871965
 ] 

Hadoop QA commented on HDFS-13470:
--

| (x) *{color:red}-1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue}  0m 
13s{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:brown} trunk Compile Tests {color} ||
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 16m 
35s{color} | {color:green} trunk passed {color} |
| {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 
26m 29s{color} | {color:green} branch has no errors when building and testing 
our client artifacts. {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:red}-1{color} | {color:red} whitespace {color} | {color:red}  0m  
0s{color} | {color:red} The patch 35 line(s) with tabs. {color} |
| {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 
11m 13s{color} | {color:green} patch has no errors when building and testing 
our client artifacts. {color} |
|| || || || {color:brown} Other Tests {color} ||
| {color:green}+1{color} | {color:green} asflicense {color} | {color:green}  0m 
21s{color} | {color:green} The patch does not generate ASF License warnings. 
{color} |
| {color:black}{color} | {color:black} {color} | {color:black} 39m 14s{color} | 
{color:black} {color} |
\\
\\
|| Subsystem || Report/Notes ||
| Docker | Client=17.05.0-ce Server=17.05.0-ce Image:yetus/hadoop:bdbca0e |
| JIRA Issue | HDFS-13470 |
| JIRA Patch URL | 
https://issues.apache.org/jira/secure/attachment/12919518/HDFS-13470.000.patch |
| Optional Tests |  dupname  asflicense  shadedclient  |
| uname | Linux 0bb5e3819c2f 4.4.0-139-generic #165-Ubuntu SMP Wed Oct 24 
10:58:50 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux |
| Build tool | maven |
| Personality | /testptch/patchprocess/precommit/personality/provided.sh |
| git revision | trunk / 041e7a7 |
| maven | version: Apache Maven 3.3.9 |
| whitespace | 
https://builds.apache.org/job/PreCommit-HDFS-Build/27065/artifact/out/whitespace-tabs.txt
 |
| Max. process+thread count | 449 (vs. ulimit of 1) |
| modules | C: hadoop-hdfs-project/hadoop-hdfs-rbf U: 
hadoop-hdfs-project/hadoop-hdfs-rbf |
| Console output | 
https://builds.apache.org/job/PreCommit-HDFS-Build/27065/console |
| Powered by | Apache Yetus 0.8.0   http://yetus.apache.org |


This message was automatically generated.



> RBF: Add Browse the Filesystem button to the UI
> ---
>
> Key: HDFS-13470
> URL: https://issues.apache.org/jira/browse/HDFS-13470
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Íñigo Goiri
>Assignee: Íñigo Goiri
>Priority: Major
> Attachments: HDFS-13470.000.patch
>
>
> After HDFS-12512 added WebHDFS, we can add the support to browse the 
> filesystem to the UI.



--
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] [Updated] (HDFS-13694) Making md5 computing being in parallel with image loading

2019-06-24 Thread Lisheng Sun (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-13694?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Lisheng Sun updated HDFS-13694:
---
Attachment: HDFS-13694-004.patch

> Making md5 computing being in parallel with image loading
> -
>
> Key: HDFS-13694
> URL: https://issues.apache.org/jira/browse/HDFS-13694
> Project: Hadoop HDFS
>  Issue Type: Improvement
>Reporter: zhouyingchao
>Assignee: Lisheng Sun
>Priority: Major
> Attachments: HDFS-13694-001.patch, HDFS-13694-002.patch, 
> HDFS-13694-003.patch, HDFS-13694-004.patch
>
>
> During namenode image loading, it firstly compute the md5 and then load the 
> image. Actually these two steps can be in parallel.



--
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-13495) RBF: Support Router Admin REST API

2019-06-24 Thread Mohammad Arshad (JIRA)


[ 
https://issues.apache.org/jira/browse/HDFS-13495?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16871953#comment-16871953
 ] 

Mohammad Arshad commented on HDFS-13495:


I moved to some other work. If any body interested can take this JIRA. 

> RBF: Support Router Admin REST API
> --
>
> Key: HDFS-13495
> URL: https://issues.apache.org/jira/browse/HDFS-13495
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Mohammad Arshad
>Assignee: Mohammad Arshad
>Priority: Major
>  Labels: RBF
>
> This JIRA intends to add REST API support for all admin commands. Router 
> Admin REST APIs can be useful in managing the Routers from a central 
> management layer tool. 



--
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] [Assigned] (HDFS-13495) RBF: Support Router Admin REST API

2019-06-24 Thread Mohammad Arshad (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-13495?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mohammad Arshad reassigned HDFS-13495:
--

Assignee: (was: Mohammad Arshad)

> RBF: Support Router Admin REST API
> --
>
> Key: HDFS-13495
> URL: https://issues.apache.org/jira/browse/HDFS-13495
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Mohammad Arshad
>Priority: Major
>  Labels: RBF
>
> This JIRA intends to add REST API support for all admin commands. Router 
> Admin REST APIs can be useful in managing the Routers from a central 
> management layer tool. 



--
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-13245) RBF: State store DBMS implementation

2019-06-24 Thread Hadoop QA (JIRA)


[ 
https://issues.apache.org/jira/browse/HDFS-13245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16871946#comment-16871946
 ] 

Hadoop QA commented on HDFS-13245:
--

| (x) *{color:red}-1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue}  0m  
0s{color} | {color:blue} Docker mode activated. {color} |
| {color:red}-1{color} | {color:red} patch {color} | {color:red}  0m 13s{color} 
| {color:red} HDFS-13245 does not apply to trunk. Rebase required? Wrong 
Branch? See https://wiki.apache.org/hadoop/HowToContribute for help. {color} |
\\
\\
|| Subsystem || Report/Notes ||
| JIRA Issue | HDFS-13245 |
| JIRA Patch URL | 
https://issues.apache.org/jira/secure/attachment/12923649/HDFS-13245.012.patch |
| Console output | 
https://builds.apache.org/job/PreCommit-HDFS-Build/27067/console |
| Powered by | Apache Yetus 0.8.0   http://yetus.apache.org |


This message was automatically generated.



> RBF: State store DBMS implementation
> 
>
> Key: HDFS-13245
> URL: https://issues.apache.org/jira/browse/HDFS-13245
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs
>Reporter: maobaolong
>Assignee: Yiran Wu
>Priority: Major
> Attachments: HDFS-13245.001.patch, HDFS-13245.002.patch, 
> HDFS-13245.003.patch, HDFS-13245.004.patch, HDFS-13245.005.patch, 
> HDFS-13245.006.patch, HDFS-13245.007.patch, HDFS-13245.008.patch, 
> HDFS-13245.009.patch, HDFS-13245.010.patch, HDFS-13245.011.patch, 
> HDFS-13245.012.patch
>
>
> Add a DBMS implementation for the State Store.



--
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-13507) RBF: Remove update functionality from routeradmin's add cmd

2019-06-24 Thread Hadoop QA (JIRA)


[ 
https://issues.apache.org/jira/browse/HDFS-13507?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16871947#comment-16871947
 ] 

Hadoop QA commented on HDFS-13507:
--

| (x) *{color:red}-1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue}  0m  
0s{color} | {color:blue} Docker mode activated. {color} |
| {color:red}-1{color} | {color:red} patch {color} | {color:red}  0m  7s{color} 
| {color:red} HDFS-13507 does not apply to HDFS-13891. Rebase required? Wrong 
Branch? See https://wiki.apache.org/hadoop/HowToContribute for help. {color} |
\\
\\
|| Subsystem || Report/Notes ||
| JIRA Issue | HDFS-13507 |
| JIRA Patch URL | 
https://issues.apache.org/jira/secure/attachment/12954870/HDFS-13507-HDFS-13891.004.patch
 |
| Console output | 
https://builds.apache.org/job/PreCommit-HDFS-Build/27066/console |
| Powered by | Apache Yetus 0.8.0   http://yetus.apache.org |


This message was automatically generated.



> RBF: Remove update functionality from routeradmin's add cmd
> ---
>
> Key: HDFS-13507
> URL: https://issues.apache.org/jira/browse/HDFS-13507
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Wei Yan
>Assignee: Gang Li
>Priority: Minor
>  Labels: incompatible
> Attachments: HDFS-13507-HDFS-13891.003.patch, 
> HDFS-13507-HDFS-13891.004.patch, HDFS-13507.000.patch, HDFS-13507.001.patch, 
> HDFS-13507.002.patch
>
>
> Follow up the discussion in HDFS-13326. We should remove the "update" 
> functionality from routeradmin's add cmd, to make it consistent with RPC 
> calls.
> Note that: this is an incompatible change.



--
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-14090) RBF: Improved isolation for downstream name nodes.

2019-06-24 Thread Yiqun Lin (JIRA)


[ 
https://issues.apache.org/jira/browse/HDFS-14090?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16871940#comment-16871940
 ] 

Yiqun Lin commented on HDFS-14090:
--

Hi [~crh], some further review comments for the latest patch:
 * Following log is not correct described
{noformat}
+  private void releasePermit(String nsId, UserGroupInformation ugi, Method m) {
+if (fairnessManager != null) {
+  fairnessManager.releasePermission(nsId);
+  LOG.trace("Permission denied for ugi: {} for method: {}",
+  ugi, m.getName());
+}
+  }
{noformat}

 * Can we rename the unit test method 
{{TestRouterFairnessManager#testHandlerAllocation1, testHandlerAllocation2..}} 
to the more clear names? Actually when I first looked the name of this, I 
didn't know what's the error case of this :D.
 * I don't think we have covered all the handler assignments cases. Can we add 
the new unit test for dedicated namespace handler assignment and then do the 
handler count verification?

> RBF: Improved isolation for downstream name nodes.
> --
>
> Key: HDFS-14090
> URL: https://issues.apache.org/jira/browse/HDFS-14090
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: CR Hota
>Assignee: CR Hota
>Priority: Major
> Attachments: HDFS-14090-HDFS-13891.001.patch, 
> HDFS-14090-HDFS-13891.002.patch, HDFS-14090-HDFS-13891.003.patch, 
> HDFS-14090-HDFS-13891.004.patch, HDFS-14090-HDFS-13891.005.patch, RBF_ 
> Isolation design.pdf
>
>
> Router is a gateway to underlying name nodes. Gateway architectures, should 
> help minimize impact of clients connecting to healthy clusters vs unhealthy 
> clusters.
> For example - If there are 2 name nodes downstream, and one of them is 
> heavily loaded with calls spiking rpc queue times, due to back pressure the 
> same with start reflecting on the router. As a result of this, clients 
> connecting to healthy/faster name nodes will also slow down as same rpc queue 
> is maintained for all calls at the router layer. Essentially the same IPC 
> thread pool is used by router to connect to all name nodes.
> Currently router uses one single rpc queue for all calls. Lets discuss how we 
> can change the architecture and add some throttling logic for 
> unhealthy/slow/overloaded name nodes.
> One way could be to read from current call queue, immediately identify 
> downstream name node and maintain a separate queue for each underlying name 
> node. Another simpler way is to maintain some sort of rate limiter configured 
> for each name node and let routers drop/reject/send error requests after 
> certain threshold. 
> This won’t be a simple change as router’s ‘Server’ layer would need redesign 
> and implementation. Currently this layer is the same as name node.
> Opening this ticket to discuss, design and implement this feature.
>  



--
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] [Work logged] (HDDS-1723) Create new OzoneManagerLock class

2019-06-24 Thread ASF GitHub Bot (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDDS-1723?focusedWorklogId=266294=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-266294
 ]

ASF GitHub Bot logged work on HDDS-1723:


Author: ASF GitHub Bot
Created on: 25/Jun/19 02:45
Start Date: 25/Jun/19 02:45
Worklog Time Spent: 10m 
  Work Description: anuengineer commented on pull request #1006: HDDS-1723. 
Create new OzoneManagerLock class.
URL: https://github.com/apache/hadoop/pull/1006#discussion_r296983712
 
 

 ##
 File path: 
hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/lock/OzoneManagerLock.java
 ##
 @@ -0,0 +1,336 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.ozone.om.lock;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.ozone.lock.LockManager;
+
+/**
+ * Provides different locks to handle concurrency in OzoneMaster.
+ * We also maintain lock hierarchy, based on the weight.
+ *
+ * 
+ *   
+ *   
+ *  WEIGHT   LOCK 
+ *   
+ *   
+ *  0   S3 Bucket Lock 
+ *   
+ *   
+ *  1   Volume Lock 
+ *   
+ *   
+ *  2   Bucket Lock 
+ *   
+ *   
+ *  3   User Lock 
+ *   
+ *   
+ *  4   S3 Secret Lock
+ *   
+ *   
+ *  5   Prefix Lock 
+ *   
+ * 
+ *
+ * One cannot obtain a lower weight lock while holding a lock with higher
+ * weight. The other way around is possible. 
+ * 
+ * 
+ * For example:
+ * 
+ * {@literal ->} acquire volume lock (will work)
+ *   {@literal +->} acquire bucket lock (will work)
+ * {@literal +-->} acquire s3 bucket lock (will throw Exception)
+ * 
+ * 
+ */
+
+public class OzoneManagerLock {
+
+  private static final Logger LOG =
+  LoggerFactory.getLogger(OzoneManagerLock.class);
+
+  private final LockManager manager;
+  private final ThreadLocal lockSet = ThreadLocal.withInitial(
+  () -> Short.valueOf((short)0));
+
+
+  /**
+   * Creates new OzoneManagerLock instance.
+   * @param conf Configuration object
+   */
+  public OzoneManagerLock(Configuration conf) {
+manager = new LockManager<>(conf);
+  }
+
+  /**
+   * Acquire lock on resource.
+   *
+   * For S3_Bucket, VOLUME, BUCKET type resource, same thread acquiring lock
+   * again is allowed.
+   *
+   * For USER, PREFIX, S3_SECRET type resource, same thread acquiring lock
+   * again is not allowed.
+   *
+   * Special Note for UserLock: Single thread can acquire single user lock/
+   * multi user lock. But not both at the same time.
+   * @param resourceName - Resource name on which user want to acquire lock.
+   * @param resource - Type of the resource.
+   */
+  public void acquireLock(String resourceName, Resource resource) {
+if (!resource.canLock(lockSet.get())) {
+  String errorMessage = getErrorMessage(resource);
+  LOG.error(errorMessage);
+  throw new RuntimeException(errorMessage);
+} else {
+  manager.lock(resourceName);
+  lockSet.set(resource.setLock(lockSet.get()));
+}
+  }
+
+  private String getErrorMessage(Resource resource) {
+return "Thread '" + Thread.currentThread().getName() + "' cannot " +
+"acquire " + resource.name + " lock while holding " +
+getCurrentLocks().toString() + " lock(s).";
+
+  }
+
+  private List getCurrentLocks() {
+List currentLocks = new ArrayList<>();
+int i=0;
+short lockSetVal = lockSet.get();
+for (Resource value : Resource.values()) {
+  if (value.isLevelLocked(lockSetVal)) {
+currentLocks.add(value.getName());
+  }
+}
+return currentLocks;
+  }
+
+  /**
+   * Acquire lock on multiple users.
+   * @param oldUserResource
+   * @param newUserResource
+   */
+  public void acquireMultiUserLock(String oldUserResource,
+  String newUserResource) {
+Resource resource = Resource.USER;
+if (!resource.canLock(lockSet.get())) {
+  String errorMessage = getErrorMessage(resource);
+  LOG.error(errorMessage);
+  throw new RuntimeException(errorMessage);
+} else {
+  // When acquiring 

[jira] [Work logged] (HDDS-1723) Create new OzoneManagerLock class

2019-06-24 Thread ASF GitHub Bot (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDDS-1723?focusedWorklogId=266295=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-266295
 ]

ASF GitHub Bot logged work on HDDS-1723:


Author: ASF GitHub Bot
Created on: 25/Jun/19 02:45
Start Date: 25/Jun/19 02:45
Worklog Time Spent: 10m 
  Work Description: anuengineer commented on pull request #1006: HDDS-1723. 
Create new OzoneManagerLock class.
URL: https://github.com/apache/hadoop/pull/1006#discussion_r296984019
 
 

 ##
 File path: 
hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/lock/OzoneManagerLock.java
 ##
 @@ -0,0 +1,336 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.ozone.om.lock;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.ozone.lock.LockManager;
+
+/**
+ * Provides different locks to handle concurrency in OzoneMaster.
+ * We also maintain lock hierarchy, based on the weight.
+ *
+ * 
+ *   
+ *   
+ *  WEIGHT   LOCK 
+ *   
+ *   
+ *  0   S3 Bucket Lock 
+ *   
+ *   
+ *  1   Volume Lock 
+ *   
+ *   
+ *  2   Bucket Lock 
+ *   
+ *   
+ *  3   User Lock 
+ *   
+ *   
+ *  4   S3 Secret Lock
+ *   
+ *   
+ *  5   Prefix Lock 
+ *   
+ * 
+ *
+ * One cannot obtain a lower weight lock while holding a lock with higher
+ * weight. The other way around is possible. 
+ * 
+ * 
+ * For example:
+ * 
+ * {@literal ->} acquire volume lock (will work)
+ *   {@literal +->} acquire bucket lock (will work)
+ * {@literal +-->} acquire s3 bucket lock (will throw Exception)
+ * 
+ * 
+ */
+
+public class OzoneManagerLock {
+
+  private static final Logger LOG =
+  LoggerFactory.getLogger(OzoneManagerLock.class);
+
+  private final LockManager manager;
+  private final ThreadLocal lockSet = ThreadLocal.withInitial(
+  () -> Short.valueOf((short)0));
+
+
+  /**
+   * Creates new OzoneManagerLock instance.
+   * @param conf Configuration object
+   */
+  public OzoneManagerLock(Configuration conf) {
+manager = new LockManager<>(conf);
+  }
+
+  /**
+   * Acquire lock on resource.
+   *
+   * For S3_Bucket, VOLUME, BUCKET type resource, same thread acquiring lock
+   * again is allowed.
+   *
+   * For USER, PREFIX, S3_SECRET type resource, same thread acquiring lock
+   * again is not allowed.
+   *
+   * Special Note for UserLock: Single thread can acquire single user lock/
+   * multi user lock. But not both at the same time.
+   * @param resourceName - Resource name on which user want to acquire lock.
+   * @param resource - Type of the resource.
+   */
+  public void acquireLock(String resourceName, Resource resource) {
+if (!resource.canLock(lockSet.get())) {
+  String errorMessage = getErrorMessage(resource);
+  LOG.error(errorMessage);
+  throw new RuntimeException(errorMessage);
+} else {
+  manager.lock(resourceName);
+  lockSet.set(resource.setLock(lockSet.get()));
+}
+  }
+
+  private String getErrorMessage(Resource resource) {
+return "Thread '" + Thread.currentThread().getName() + "' cannot " +
+"acquire " + resource.name + " lock while holding " +
+getCurrentLocks().toString() + " lock(s).";
+
+  }
+
+  private List getCurrentLocks() {
+List currentLocks = new ArrayList<>();
+int i=0;
+short lockSetVal = lockSet.get();
+for (Resource value : Resource.values()) {
+  if (value.isLevelLocked(lockSetVal)) {
+currentLocks.add(value.getName());
+  }
+}
+return currentLocks;
+  }
+
+  /**
+   * Acquire lock on multiple users.
+   * @param oldUserResource
+   * @param newUserResource
+   */
+  public void acquireMultiUserLock(String oldUserResource,
+  String newUserResource) {
+Resource resource = Resource.USER;
+if (!resource.canLock(lockSet.get())) {
+  String errorMessage = getErrorMessage(resource);
+  LOG.error(errorMessage);
+  throw new RuntimeException(errorMessage);
+} else {
+  // When acquiring 

[jira] [Work logged] (HDDS-1723) Create new OzoneManagerLock class

2019-06-24 Thread ASF GitHub Bot (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDDS-1723?focusedWorklogId=266298=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-266298
 ]

ASF GitHub Bot logged work on HDDS-1723:


Author: ASF GitHub Bot
Created on: 25/Jun/19 02:45
Start Date: 25/Jun/19 02:45
Worklog Time Spent: 10m 
  Work Description: anuengineer commented on pull request #1006: HDDS-1723. 
Create new OzoneManagerLock class.
URL: https://github.com/apache/hadoop/pull/1006#discussion_r296986201
 
 

 ##
 File path: 
hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/lock/OzoneManagerLock.java
 ##
 @@ -0,0 +1,336 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.ozone.om.lock;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.ozone.lock.LockManager;
+
+/**
+ * Provides different locks to handle concurrency in OzoneMaster.
+ * We also maintain lock hierarchy, based on the weight.
+ *
+ * 
+ *   
+ *   
+ *  WEIGHT   LOCK 
+ *   
+ *   
+ *  0   S3 Bucket Lock 
+ *   
+ *   
+ *  1   Volume Lock 
+ *   
+ *   
+ *  2   Bucket Lock 
+ *   
+ *   
+ *  3   User Lock 
+ *   
+ *   
+ *  4   S3 Secret Lock
+ *   
+ *   
+ *  5   Prefix Lock 
+ *   
+ * 
+ *
+ * One cannot obtain a lower weight lock while holding a lock with higher
+ * weight. The other way around is possible. 
+ * 
+ * 
+ * For example:
+ * 
+ * {@literal ->} acquire volume lock (will work)
+ *   {@literal +->} acquire bucket lock (will work)
+ * {@literal +-->} acquire s3 bucket lock (will throw Exception)
+ * 
+ * 
+ */
+
+public class OzoneManagerLock {
+
+  private static final Logger LOG =
+  LoggerFactory.getLogger(OzoneManagerLock.class);
+
+  private final LockManager manager;
+  private final ThreadLocal lockSet = ThreadLocal.withInitial(
+  () -> Short.valueOf((short)0));
+
+
+  /**
+   * Creates new OzoneManagerLock instance.
+   * @param conf Configuration object
+   */
+  public OzoneManagerLock(Configuration conf) {
+manager = new LockManager<>(conf);
+  }
+
+  /**
+   * Acquire lock on resource.
+   *
+   * For S3_Bucket, VOLUME, BUCKET type resource, same thread acquiring lock
+   * again is allowed.
+   *
+   * For USER, PREFIX, S3_SECRET type resource, same thread acquiring lock
+   * again is not allowed.
+   *
+   * Special Note for UserLock: Single thread can acquire single user lock/
+   * multi user lock. But not both at the same time.
+   * @param resourceName - Resource name on which user want to acquire lock.
+   * @param resource - Type of the resource.
+   */
+  public void acquireLock(String resourceName, Resource resource) {
+if (!resource.canLock(lockSet.get())) {
+  String errorMessage = getErrorMessage(resource);
+  LOG.error(errorMessage);
+  throw new RuntimeException(errorMessage);
+} else {
+  manager.lock(resourceName);
+  lockSet.set(resource.setLock(lockSet.get()));
+}
+  }
+
+  private String getErrorMessage(Resource resource) {
+return "Thread '" + Thread.currentThread().getName() + "' cannot " +
+"acquire " + resource.name + " lock while holding " +
+getCurrentLocks().toString() + " lock(s).";
+
+  }
+
+  private List getCurrentLocks() {
+List currentLocks = new ArrayList<>();
+int i=0;
+short lockSetVal = lockSet.get();
+for (Resource value : Resource.values()) {
+  if (value.isLevelLocked(lockSetVal)) {
+currentLocks.add(value.getName());
+  }
+}
+return currentLocks;
+  }
+
+  /**
+   * Acquire lock on multiple users.
+   * @param oldUserResource
+   * @param newUserResource
+   */
+  public void acquireMultiUserLock(String oldUserResource,
+  String newUserResource) {
+Resource resource = Resource.USER;
+if (!resource.canLock(lockSet.get())) {
+  String errorMessage = getErrorMessage(resource);
+  LOG.error(errorMessage);
+  throw new RuntimeException(errorMessage);
+} else {
+  // When acquiring 

[jira] [Work logged] (HDDS-1723) Create new OzoneManagerLock class

2019-06-24 Thread ASF GitHub Bot (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDDS-1723?focusedWorklogId=266297=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-266297
 ]

ASF GitHub Bot logged work on HDDS-1723:


Author: ASF GitHub Bot
Created on: 25/Jun/19 02:45
Start Date: 25/Jun/19 02:45
Worklog Time Spent: 10m 
  Work Description: anuengineer commented on pull request #1006: HDDS-1723. 
Create new OzoneManagerLock class.
URL: https://github.com/apache/hadoop/pull/1006#discussion_r296984611
 
 

 ##
 File path: 
hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/lock/OzoneManagerLock.java
 ##
 @@ -0,0 +1,336 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.ozone.om.lock;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.ozone.lock.LockManager;
+
+/**
+ * Provides different locks to handle concurrency in OzoneMaster.
+ * We also maintain lock hierarchy, based on the weight.
+ *
+ * 
+ *   
+ *   
+ *  WEIGHT   LOCK 
+ *   
+ *   
+ *  0   S3 Bucket Lock 
+ *   
+ *   
+ *  1   Volume Lock 
+ *   
+ *   
+ *  2   Bucket Lock 
+ *   
+ *   
+ *  3   User Lock 
+ *   
+ *   
+ *  4   S3 Secret Lock
+ *   
+ *   
+ *  5   Prefix Lock 
+ *   
+ * 
+ *
+ * One cannot obtain a lower weight lock while holding a lock with higher
+ * weight. The other way around is possible. 
+ * 
+ * 
+ * For example:
+ * 
+ * {@literal ->} acquire volume lock (will work)
+ *   {@literal +->} acquire bucket lock (will work)
+ * {@literal +-->} acquire s3 bucket lock (will throw Exception)
+ * 
+ * 
+ */
+
+public class OzoneManagerLock {
+
+  private static final Logger LOG =
+  LoggerFactory.getLogger(OzoneManagerLock.class);
+
+  private final LockManager manager;
+  private final ThreadLocal lockSet = ThreadLocal.withInitial(
+  () -> Short.valueOf((short)0));
+
+
+  /**
+   * Creates new OzoneManagerLock instance.
+   * @param conf Configuration object
+   */
+  public OzoneManagerLock(Configuration conf) {
+manager = new LockManager<>(conf);
+  }
+
+  /**
+   * Acquire lock on resource.
+   *
+   * For S3_Bucket, VOLUME, BUCKET type resource, same thread acquiring lock
+   * again is allowed.
+   *
+   * For USER, PREFIX, S3_SECRET type resource, same thread acquiring lock
+   * again is not allowed.
+   *
+   * Special Note for UserLock: Single thread can acquire single user lock/
+   * multi user lock. But not both at the same time.
+   * @param resourceName - Resource name on which user want to acquire lock.
+   * @param resource - Type of the resource.
+   */
+  public void acquireLock(String resourceName, Resource resource) {
+if (!resource.canLock(lockSet.get())) {
+  String errorMessage = getErrorMessage(resource);
+  LOG.error(errorMessage);
+  throw new RuntimeException(errorMessage);
+} else {
+  manager.lock(resourceName);
+  lockSet.set(resource.setLock(lockSet.get()));
+}
+  }
+
+  private String getErrorMessage(Resource resource) {
+return "Thread '" + Thread.currentThread().getName() + "' cannot " +
+"acquire " + resource.name + " lock while holding " +
+getCurrentLocks().toString() + " lock(s).";
+
+  }
+
+  private List getCurrentLocks() {
+List currentLocks = new ArrayList<>();
+int i=0;
+short lockSetVal = lockSet.get();
+for (Resource value : Resource.values()) {
+  if (value.isLevelLocked(lockSetVal)) {
+currentLocks.add(value.getName());
+  }
+}
+return currentLocks;
+  }
+
+  /**
+   * Acquire lock on multiple users.
+   * @param oldUserResource
+   * @param newUserResource
+   */
+  public void acquireMultiUserLock(String oldUserResource,
+  String newUserResource) {
+Resource resource = Resource.USER;
+if (!resource.canLock(lockSet.get())) {
+  String errorMessage = getErrorMessage(resource);
+  LOG.error(errorMessage);
+  throw new RuntimeException(errorMessage);
+} else {
+  // When acquiring 

[jira] [Work logged] (HDDS-1723) Create new OzoneManagerLock class

2019-06-24 Thread ASF GitHub Bot (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDDS-1723?focusedWorklogId=266296=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-266296
 ]

ASF GitHub Bot logged work on HDDS-1723:


Author: ASF GitHub Bot
Created on: 25/Jun/19 02:45
Start Date: 25/Jun/19 02:45
Worklog Time Spent: 10m 
  Work Description: anuengineer commented on pull request #1006: HDDS-1723. 
Create new OzoneManagerLock class.
URL: https://github.com/apache/hadoop/pull/1006#discussion_r296984587
 
 

 ##
 File path: 
hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/lock/OzoneManagerLock.java
 ##
 @@ -0,0 +1,336 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.ozone.om.lock;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.ozone.lock.LockManager;
+
+/**
+ * Provides different locks to handle concurrency in OzoneMaster.
+ * We also maintain lock hierarchy, based on the weight.
+ *
+ * 
+ *   
+ *   
+ *  WEIGHT   LOCK 
+ *   
+ *   
+ *  0   S3 Bucket Lock 
+ *   
+ *   
+ *  1   Volume Lock 
+ *   
+ *   
+ *  2   Bucket Lock 
+ *   
+ *   
+ *  3   User Lock 
+ *   
+ *   
+ *  4   S3 Secret Lock
+ *   
+ *   
+ *  5   Prefix Lock 
+ *   
+ * 
+ *
+ * One cannot obtain a lower weight lock while holding a lock with higher
+ * weight. The other way around is possible. 
+ * 
+ * 
+ * For example:
+ * 
+ * {@literal ->} acquire volume lock (will work)
+ *   {@literal +->} acquire bucket lock (will work)
+ * {@literal +-->} acquire s3 bucket lock (will throw Exception)
+ * 
+ * 
+ */
+
+public class OzoneManagerLock {
+
+  private static final Logger LOG =
+  LoggerFactory.getLogger(OzoneManagerLock.class);
+
+  private final LockManager manager;
+  private final ThreadLocal lockSet = ThreadLocal.withInitial(
+  () -> Short.valueOf((short)0));
+
+
+  /**
+   * Creates new OzoneManagerLock instance.
+   * @param conf Configuration object
+   */
+  public OzoneManagerLock(Configuration conf) {
+manager = new LockManager<>(conf);
+  }
+
+  /**
+   * Acquire lock on resource.
+   *
+   * For S3_Bucket, VOLUME, BUCKET type resource, same thread acquiring lock
+   * again is allowed.
+   *
+   * For USER, PREFIX, S3_SECRET type resource, same thread acquiring lock
+   * again is not allowed.
+   *
+   * Special Note for UserLock: Single thread can acquire single user lock/
+   * multi user lock. But not both at the same time.
+   * @param resourceName - Resource name on which user want to acquire lock.
+   * @param resource - Type of the resource.
+   */
+  public void acquireLock(String resourceName, Resource resource) {
+if (!resource.canLock(lockSet.get())) {
+  String errorMessage = getErrorMessage(resource);
+  LOG.error(errorMessage);
+  throw new RuntimeException(errorMessage);
+} else {
+  manager.lock(resourceName);
+  lockSet.set(resource.setLock(lockSet.get()));
+}
+  }
+
+  private String getErrorMessage(Resource resource) {
+return "Thread '" + Thread.currentThread().getName() + "' cannot " +
+"acquire " + resource.name + " lock while holding " +
+getCurrentLocks().toString() + " lock(s).";
+
+  }
+
+  private List getCurrentLocks() {
+List currentLocks = new ArrayList<>();
+int i=0;
+short lockSetVal = lockSet.get();
+for (Resource value : Resource.values()) {
+  if (value.isLevelLocked(lockSetVal)) {
+currentLocks.add(value.getName());
+  }
+}
+return currentLocks;
+  }
+
+  /**
+   * Acquire lock on multiple users.
+   * @param oldUserResource
+   * @param newUserResource
+   */
+  public void acquireMultiUserLock(String oldUserResource,
+  String newUserResource) {
+Resource resource = Resource.USER;
+if (!resource.canLock(lockSet.get())) {
+  String errorMessage = getErrorMessage(resource);
+  LOG.error(errorMessage);
+  throw new RuntimeException(errorMessage);
+} else {
+  // When acquiring 

[jira] [Updated] (HDFS-14044) RBF: NamenodeHeartbeat test cases around jmx parameters

2019-06-24 Thread Brahma Reddy Battula (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-14044?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brahma Reddy Battula updated HDFS-14044:

Parent Issue: HDFS-14603  (was: HDFS-13891)

> RBF: NamenodeHeartbeat test cases around jmx parameters
> ---
>
> Key: HDFS-14044
> URL: https://issues.apache.org/jira/browse/HDFS-14044
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: CR Hota
>Assignee: CR Hota
>Priority: Major
>
> NamenodeHeartbeat service get downstream name node report via jmx. This part 
> of the code should have better tests. Tests around unavailability of certain 
> params, backyard compatibility of downstream namenode version vs router 
> version etc.



--
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] [Updated] (HDFS-13989) RBF: Add FSCK to the Router

2019-06-24 Thread Brahma Reddy Battula (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-13989?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brahma Reddy Battula updated HDFS-13989:

Parent Issue: HDFS-14603  (was: HDFS-13891)

> RBF: Add FSCK to the Router
> ---
>
> Key: HDFS-13989
> URL: https://issues.apache.org/jira/browse/HDFS-13989
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Íñigo Goiri
>Assignee: Íñigo Goiri
>Priority: Major
> Attachments: HDFS-13989.001.patch
>
>
> The namenode supports FSCK.
> The Router should be able to forward FSCK to the right Namenode and aggregate 
> the results.



--
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] [Updated] (HDFS-13912) RBF: Add methods to RouterAdmin to set order, read only, and chown

2019-06-24 Thread Brahma Reddy Battula (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-13912?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brahma Reddy Battula updated HDFS-13912:

Parent Issue: HDFS-14603  (was: HDFS-13891)

> RBF: Add methods to RouterAdmin to set order, read only, and chown
> --
>
> Key: HDFS-13912
> URL: https://issues.apache.org/jira/browse/HDFS-13912
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Ayush Saxena
>Assignee: Ayush Saxena
>Priority: Major
> Attachments: HDFS-13912-01.patch, HDFS-13912-02.patch
>
>
> Presently there is methods for only quotas for an existing mount entries.
> Similarly it can be added for the other remaining parameters those even are 
> dynamic and requires changes. 



--
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] [Updated] (HDFS-13577) RBF: Failed mount point operations, returns wrong exit code.

2019-06-24 Thread Brahma Reddy Battula (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-13577?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brahma Reddy Battula updated HDFS-13577:

Parent Issue: HDFS-14603  (was: HDFS-13891)

> RBF: Failed mount point operations, returns wrong exit code.
> 
>
> Key: HDFS-13577
> URL: https://issues.apache.org/jira/browse/HDFS-13577
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Y. SREENIVASULU REDDY
>Assignee: Dibyendu Karmakar
>Priority: Major
>  Labels: RBF
>
> If client is performed add mount point with some special character, mount 
> point add is failed.
> And prints the message like
> {noformat}
> 18/05/17 09:58:34 DEBUG ipc.ProtobufRpcEngine: Call: addMountTableEntry took 
> 19ms Cannot add mount point /testSpecialCharMountPointCreation/test/
> {noformat}
> In the above case it should return the exist code is non zero value.
> {code:java|title=RouterAdmin.java|borderStyle=solid}
> Exception debugException = null;
> exitCode = 0;
> try {
> if ("-add".equals(cmd)) {
> if (addMount(argv, i)) {
> System.out.println("Successfully added mount point " + argv[i]);
> }
> {code}
> we should handle this kind of cases also.



--
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] [Updated] (HDFS-13633) RBF: Synchronous way to create RPC client connections to NN

2019-06-24 Thread Brahma Reddy Battula (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-13633?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brahma Reddy Battula updated HDFS-13633:

Parent Issue: HDFS-14603  (was: HDFS-13891)

> RBF: Synchronous way to create RPC client connections to NN
> ---
>
> Key: HDFS-13633
> URL: https://issues.apache.org/jira/browse/HDFS-13633
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: federation
>Reporter: CR Hota
>Assignee: CR Hota
>Priority: Major
>
> Currently the router code does the following.
>  # IPC handler thread gets a connection from the pool, even if the connection 
> is NOT usable.
>  # At the same time the IPC thread also submits a request to connection 
> creator thread for adding a new connection to the pool asynchronously.
>  # The new connection is NOT utilized by the IPC threads that get back an 
> unusable connection.
> With this approach burst behaviors of clients, fill up the pool without 
> necessarily using the connections. Also the approach is indeterministic.
> We propose a flag that can allow router admins to control the behavior of 
> getting connections by the IPC handler threads. The flag would allow to 
> toggle ON/OFF asynchronous vs synchronous way of connection creation.
> In the new model, if a connection is unusable, IPC handler thread would go 
> ahead and create a connection and add to the pool and utilize it 
> subsequently. It would still utilize the unusable connection if the pool is 
> full.
>  



--
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] [Updated] (HDFS-13219) RBF: Cluster information on Router is not correct when the Federation shares datanodes

2019-06-24 Thread Brahma Reddy Battula (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-13219?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brahma Reddy Battula updated HDFS-13219:

Parent Issue: HDFS-14603  (was: HDFS-13891)

> RBF: Cluster information on Router is not correct when the Federation shares 
> datanodes
> --
>
> Key: HDFS-13219
> URL: https://issues.apache.org/jira/browse/HDFS-13219
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Affects Versions: 2.9.0
>Reporter: Tao Jie
>Priority: Major
> Attachments: screenshot-1.png, screenshot-2.png, screenshot-3.png, 
> screenshot-4.png, screenshot-5.png
>
>
> Now summary information on Router website aggregates summary of each 
> nameservice. However in a typical federation cluster deployment, datanodes 
> are shared among nameservices. Consider we have 2 namespaces and 100 
> datanodes in one cluster. 100 datanodes are available for each namespace, but 
> we see 200 datanodes on the router website. So does other information such as 
> {{Total capacity}}, {{Remaining capacity}}.



--
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] [Updated] (HDFS-13254) RBF: Cannot mv/cp file cross namespace

2019-06-24 Thread Brahma Reddy Battula (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-13254?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brahma Reddy Battula updated HDFS-13254:

Parent Issue: HDFS-14603  (was: HDFS-13891)

> RBF: Cannot mv/cp file cross namespace
> --
>
> Key: HDFS-13254
> URL: https://issues.apache.org/jira/browse/HDFS-13254
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Wu Weiwei
>Priority: Major
>
> When I try to mv a file from a namespace to another, the client return an 
> error.
>  
> Do we have any plan to support cp/mv file cross namespace?



--
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] [Updated] (HDFS-13469) RBF: Support InodeID in the Router

2019-06-24 Thread Brahma Reddy Battula (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-13469?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brahma Reddy Battula updated HDFS-13469:

Parent Issue: HDFS-14603  (was: HDFS-13891)

> RBF: Support InodeID in the Router
> --
>
> Key: HDFS-13469
> URL: https://issues.apache.org/jira/browse/HDFS-13469
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Íñigo Goiri
>Priority: Major
>
> The Namenode supports identifying files through inode identifiers.
> Currently the Router does not handle this properly, we need to add this 
> functionality.



--
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] [Updated] (HDFS-13270) RBF: Router audit logger

2019-06-24 Thread Brahma Reddy Battula (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-13270?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brahma Reddy Battula updated HDFS-13270:

Parent Issue: HDFS-14603  (was: HDFS-13891)

> RBF: Router audit logger
> 
>
> Key: HDFS-13270
> URL: https://issues.apache.org/jira/browse/HDFS-13270
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs
>Affects Versions: 3.2.0
>Reporter: maobaolong
>Priority: Major
>
> We can use router auditlogger to log the client info and cmd, because the 
> FSNamesystem#Auditlogger's log think the client are all from router.



--
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] [Updated] (HDFS-13248) RBF: Namenode need to choose block location for the client

2019-06-24 Thread Brahma Reddy Battula (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-13248?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brahma Reddy Battula updated HDFS-13248:

Parent Issue: HDFS-14603  (was: HDFS-13891)

> RBF: Namenode need to choose block location for the client
> --
>
> Key: HDFS-13248
> URL: https://issues.apache.org/jira/browse/HDFS-13248
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Wu Weiwei
>Assignee: Íñigo Goiri
>Priority: Major
> Attachments: HDFS-13248.000.patch, HDFS-13248.001.patch, 
> HDFS-13248.002.patch, HDFS-13248.003.patch, HDFS-13248.004.patch, 
> HDFS-13248.005.patch, HDFS-Router-Data-Locality.odt, RBF Data Locality 
> Design.pdf, clientMachine-call-path.jpeg, debug-info-1.jpeg, debug-info-2.jpeg
>
>
> When execute a put operation via router, the NameNode will choose block 
> location for the router, not for the real client. This will affect the file's 
> locality.
> I think on both NameNode and Router, we should add a new addBlock method, or 
> add a parameter for the current addBlock method, to pass the real client 
> information.



--
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] [Updated] (HDFS-13274) RBF: Extend RouterRpcClient to use multiple sockets

2019-06-24 Thread Brahma Reddy Battula (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-13274?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brahma Reddy Battula updated HDFS-13274:

Parent Issue: HDFS-14603  (was: HDFS-13891)

> RBF: Extend RouterRpcClient to use multiple sockets
> ---
>
> Key: HDFS-13274
> URL: https://issues.apache.org/jira/browse/HDFS-13274
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Íñigo Goiri
>Assignee: Íñigo Goiri
>Priority: Major
>
> HADOOP-13144 introduces the ability to create multiple connections for the 
> same user and use different sockets. The RouterRpcClient should use this 
> approach to get a better throughput.



--
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] [Updated] (HDFS-13245) RBF: State store DBMS implementation

2019-06-24 Thread Brahma Reddy Battula (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-13245?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brahma Reddy Battula updated HDFS-13245:

Parent Issue: HDFS-14603  (was: HDFS-13891)

> RBF: State store DBMS implementation
> 
>
> Key: HDFS-13245
> URL: https://issues.apache.org/jira/browse/HDFS-13245
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs
>Reporter: maobaolong
>Assignee: Yiran Wu
>Priority: Major
> Attachments: HDFS-13245.001.patch, HDFS-13245.002.patch, 
> HDFS-13245.003.patch, HDFS-13245.004.patch, HDFS-13245.005.patch, 
> HDFS-13245.006.patch, HDFS-13245.007.patch, HDFS-13245.008.patch, 
> HDFS-13245.009.patch, HDFS-13245.010.patch, HDFS-13245.011.patch, 
> HDFS-13245.012.patch
>
>
> Add a DBMS implementation for the State Store.



--
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-14598) Findbugs warning caused by HDFS-12487

2019-06-24 Thread Hudson (JIRA)


[ 
https://issues.apache.org/jira/browse/HDFS-14598?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16871933#comment-16871933
 ] 

Hudson commented on HDFS-14598:
---

SUCCESS: Integrated in Jenkins build Hadoop-trunk-Commit #16818 (See 
[https://builds.apache.org/job/Hadoop-trunk-Commit/16818/])
HDFS-14598. Findbugs warning caused by HDFS-12487. Contributed by He 
(aengineer: rev 041e7a7dee4a17714f31952dc6364c77a65b1b73)
* (edit) 
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DiskBalancer.java


> Findbugs warning caused by HDFS-12487
> -
>
> Key: HDFS-14598
> URL: https://issues.apache.org/jira/browse/HDFS-14598
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: diskbalancer
>Reporter: Wei-Chiu Chuang
>Assignee: He Xiaoqiao
>Priority: Minor
>  Labels: newbie
> Fix For: 3.3.0
>
> Attachments: HDFS-14598.001.patch
>
>
> https://builds.apache.org/job/PreCommit-HDFS-Build/27038/artifact/out/branch-findbugs-hadoop-hdfs-project_hadoop-hdfs-warnings.html
> {noformat}
> Redundant nullcheck of block, which is known to be non-null in 
> org.apache.hadoop.hdfs.server.datanode.DiskBalancer$DiskBalancerMover.getBlockToCopy(FsVolumeSpi$BlockIterator,
>  DiskBalancerWorkItem)
> Bug type RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE (click for details) 
> In class org.apache.hadoop.hdfs.server.datanode.DiskBalancer$DiskBalancerMover
> In method 
> org.apache.hadoop.hdfs.server.datanode.DiskBalancer$DiskBalancerMover.getBlockToCopy(FsVolumeSpi$BlockIterator,
>  DiskBalancerWorkItem)
> Value loaded from block
> Return value of 
> org.apache.hadoop.hdfs.server.datanode.fsdataset.FsVolumeSpi$BlockIterator.nextBlock()
>  of type org.apache.hadoop.hdfs.protocol.ExtendedBlock
> Redundant null check at DiskBalancer.java:[line 912]
> {noformat}



--
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] [Updated] (HDFS-13278) RBF: Correct the logic of mount validate to avoid the bad mountPoint

2019-06-24 Thread Brahma Reddy Battula (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-13278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brahma Reddy Battula updated HDFS-13278:

Parent Issue: HDFS-14603  (was: HDFS-13891)

> RBF: Correct the logic of mount validate to avoid the bad mountPoint
> 
>
> Key: HDFS-13278
> URL: https://issues.apache.org/jira/browse/HDFS-13278
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs
>Affects Versions: 3.2.0
>Reporter: maobaolong
>Priority: Major
>  Labels: RBF
>
> Correct the logic of mount validate to avoid the bad mountPoint.



--
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-12487) FsDatasetSpi.isValidBlock() lacks null pointer check inside and neither do the callers

2019-06-24 Thread Hudson (JIRA)


[ 
https://issues.apache.org/jira/browse/HDFS-12487?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16871934#comment-16871934
 ] 

Hudson commented on HDFS-12487:
---

SUCCESS: Integrated in Jenkins build Hadoop-trunk-Commit #16818 (See 
[https://builds.apache.org/job/Hadoop-trunk-Commit/16818/])
HDFS-14598. Findbugs warning caused by HDFS-12487. Contributed by He 
(aengineer: rev 041e7a7dee4a17714f31952dc6364c77a65b1b73)
* (edit) 
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DiskBalancer.java


> FsDatasetSpi.isValidBlock() lacks null pointer check inside and neither do 
> the callers
> --
>
> Key: HDFS-12487
> URL: https://issues.apache.org/jira/browse/HDFS-12487
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: balancer  mover, diskbalancer
>Affects Versions: 3.0.0
> Environment: CentOS 6.8 x64
> CPU:4 core
> Memory:16GB
> Hadoop: Release 3.0.0-alpha4
>Reporter: liumi
>Assignee: liumi
>Priority: Major
> Fix For: 3.3.0, 3.2.1, 3.1.3
>
> Attachments: HDFS-12487.002.patch, HDFS-12487.003.patch
>
>   Original Estimate: 0h
>  Remaining Estimate: 0h
>
> BlockIteratorImpl.nextBlock() will look for the blocks in the source volume, 
> if there are no blocks any more, it will return null up to 
> DiskBalancer.getBlockToCopy(). However, the DiskBalancer.getBlockToCopy() 
> will check whether it's a valid block.
> When I look into the FsDatasetSpi.isValidBlock(), I find that it doesn't 
> check the null pointer! In fact, we firstly need to check whether it's null 
> or not, or exception will occur.
> This bug is hard to find, because the DiskBalancer hardly copy all the data 
> of one volume to others. Even if some times we may copy all the data of one 
> volume to other volumes, when the bug occurs, the copy process has already 
> done.
> However, when we try to copy all the data of two or more volumes to other 
> volumes in more than one step, the thread will be shut down, which is caused 
> by the bug above.
> The bug can fixed by two ways:
> 1)Before the call of FsDatasetSpi.isValidBlock(), we check the null pointer
> 2)Check the null pointer inside the implementation of 
> FsDatasetSpi.isValidBlock()



--
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] [Updated] (HDFS-13470) RBF: Add Browse the Filesystem button to the UI

2019-06-24 Thread Brahma Reddy Battula (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-13470?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brahma Reddy Battula updated HDFS-13470:

Parent Issue: HDFS-14603  (was: HDFS-13891)

> RBF: Add Browse the Filesystem button to the UI
> ---
>
> Key: HDFS-13470
> URL: https://issues.apache.org/jira/browse/HDFS-13470
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Íñigo Goiri
>Assignee: Íñigo Goiri
>Priority: Major
> Attachments: HDFS-13470.000.patch
>
>
> After HDFS-12512 added WebHDFS, we can add the support to browse the 
> filesystem to the UI.



--
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] [Updated] (HDFS-13495) RBF: Support Router Admin REST API

2019-06-24 Thread Brahma Reddy Battula (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-13495?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brahma Reddy Battula updated HDFS-13495:

Parent Issue: HDFS-14603  (was: HDFS-13891)

> RBF: Support Router Admin REST API
> --
>
> Key: HDFS-13495
> URL: https://issues.apache.org/jira/browse/HDFS-13495
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Mohammad Arshad
>Assignee: Mohammad Arshad
>Priority: Major
>  Labels: RBF
>
> This JIRA intends to add REST API support for all admin commands. Router 
> Admin REST APIs can be useful in managing the Routers from a central 
> management layer tool. 



--
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] [Updated] (HDFS-13507) RBF: Remove update functionality from routeradmin's add cmd

2019-06-24 Thread Brahma Reddy Battula (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-13507?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brahma Reddy Battula updated HDFS-13507:

Parent Issue: HDFS-14603  (was: HDFS-13891)

> RBF: Remove update functionality from routeradmin's add cmd
> ---
>
> Key: HDFS-13507
> URL: https://issues.apache.org/jira/browse/HDFS-13507
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Wei Yan
>Assignee: Gang Li
>Priority: Minor
>  Labels: incompatible
> Attachments: HDFS-13507-HDFS-13891.003.patch, 
> HDFS-13507-HDFS-13891.004.patch, HDFS-13507.000.patch, HDFS-13507.001.patch, 
> HDFS-13507.002.patch
>
>
> Follow up the discussion in HDFS-13326. We should remove the "update" 
> functionality from routeradmin's add cmd, to make it consistent with RPC 
> calls.
> Note that: this is an incompatible change.



--
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] [Updated] (HDFS-13576) RBF: Add destination path length validation for add/update mount entry

2019-06-24 Thread Brahma Reddy Battula (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-13576?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brahma Reddy Battula updated HDFS-13576:

Parent Issue: HDFS-14603  (was: HDFS-13891)

> RBF: Add destination path length validation for add/update mount entry
> --
>
> Key: HDFS-13576
> URL: https://issues.apache.org/jira/browse/HDFS-13576
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Dibyendu Karmakar
>Assignee: Ayush Saxena
>Priority: Minor
>
> Currently there is no validation to check destination path length while 
> adding or updating mount entry. But while trying to create directory using 
> this mount entry 
> {noformat}
> RemoteException(org.apache.hadoop.hdfs.protocol.FSLimitException$PathComponentTooLongException){noformat}
> is thrown with exception message as 
> {noformat}
> "maximum path component name limit of ... directory / is 
> exceeded: limit=255 length=1817"{noformat}
>  



--
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] [Updated] (HDFS-13506) RBF: Create destination directory when adding mount entry using router admin cmds.

2019-06-24 Thread Brahma Reddy Battula (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-13506?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brahma Reddy Battula updated HDFS-13506:

Parent Issue: HDFS-14603  (was: HDFS-13891)

> RBF: Create destination directory when adding mount entry using router admin 
> cmds.
> --
>
> Key: HDFS-13506
> URL: https://issues.apache.org/jira/browse/HDFS-13506
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Dibyendu Karmakar
>Assignee: Dibyendu Karmakar
>Priority: Major
>
> Currently there is no option to create destination when adding mount entry. 
> User has to create the destination separately.
> In router admin -add command we can add an option -createDest to create the 
> destination for the mount entry.



--
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-12345) Scale testing HDFS NameNode with real metadata and workloads (Dynamometer)

2019-06-24 Thread Yiqun Lin (JIRA)


[ 
https://issues.apache.org/jira/browse/HDFS-12345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16871931#comment-16871931
 ] 

Yiqun Lin commented on HDFS-12345:
--

Thanks for cleaning up the patches, [~xkrogen]!
 I am also +1 for this. Looks nice to see this in the hadoop tool. I didn't see 
the doc of the Dynamometer, we need to document this to let more users know 
more of this tool.

> Scale testing HDFS NameNode with real metadata and workloads (Dynamometer)
> --
>
> Key: HDFS-12345
> URL: https://issues.apache.org/jira/browse/HDFS-12345
> Project: Hadoop HDFS
>  Issue Type: New Feature
>  Components: namenode, test
>Reporter: Zhe Zhang
>Assignee: Erik Krogen
>Priority: Major
> Attachments: HDFS-12345.000.patch, HDFS-12345.001.patch, 
> HDFS-12345.002.patch, HDFS-12345.003.patch, HDFS-12345.004.patch, 
> HDFS-12345.005.patch, HDFS-12345.006.patch, HDFS-12345.007.patch, 
> HDFS-12345.008.patch, HDFS-12345.009.patch
>
>
> Dynamometer has now been open sourced on our [GitHub 
> page|https://github.com/linkedin/dynamometer]. Read more at our [recent blog 
> post|https://engineering.linkedin.com/blog/2018/02/dynamometer--scale-testing-hdfs-on-minimal-hardware-with-maximum].
> To encourage getting the tool into the open for others to use as quickly as 
> possible, we went through our standard open sourcing process of releasing on 
> GitHub. However we are interested in the possibility of donating this to 
> Apache as part of Hadoop itself and would appreciate feedback on whether or 
> not this is something that would be supported by the community.
> Also of note, previous [discussions on the dev mail 
> lists|http://mail-archives.apache.org/mod_mbox/hadoop-hdfs-dev/201707.mbox/%3c98fceffa-faff-4cf1-a14d-4faab6567...@gmail.com%3e]



--
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] (HDDS-1672) Improve locking in OzoneManager

2019-06-24 Thread Bharat Viswanadham (JIRA)


[ 
https://issues.apache.org/jira/browse/HDDS-1672?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16871930#comment-16871930
 ] 

Bharat Viswanadham commented on HDDS-1672:
--

Canceled the patch. As we are coming up with new OzoneManagerLock.java. Once 
HDDS-1723 gets checked in, will work on this, using new API's implemented in 
HDDS-1723.

> Improve locking in OzoneManager
> ---
>
> Key: HDDS-1672
> URL: https://issues.apache.org/jira/browse/HDDS-1672
> Project: Hadoop Distributed Data Store
>  Issue Type: Improvement
>  Components: Ozone Manager
>Affects Versions: 0.4.0
>Reporter: Bharat Viswanadham
>Assignee: Bharat Viswanadham
>Priority: Major
>  Labels: pull-request-available
> Attachments: Ozone Locks in OM.pdf
>
>  Time Spent: 7h 10m
>  Remaining Estimate: 0h
>
> In this Jira, we shall follow the new lock ordering. In this way, in volume 
> requests we can solve the issue of acquire/release/reacquire problem. And few 
> bugs in the current implementation of S3Bucket/Volume operations.
>  
> Currently after acquiring volume lock, we cannot acquire user lock. 
> This is causing an issue in Volume request implementation, 
> acquire/release/reacquire volume lock.
>  
> Case of Delete Volume Request: 
>  # Acquire volume lock.
>  # Get Volume Info from DB
>  # Release Volume lock. (We are releasing the lock, because while acquiring 
> volume lock, we cannot acquire user lock0
>  # Get owner from volume Info read from DB
>  # Acquire owner lock
>  # Acquire volume lock
>  # Do delete logic
>  # release volume lock
>  # release user lock
>  
> We can avoid this acquire/release/reacquire lock issue by making volume lock 
> as low weight. 
>  
> In this way, the above deleteVolume request will change as below
>  # Acquire volume lock
>  # Get Volume Info from DB
>  # Get owner from volume Info read from DB
>  # Acquire owner lock
>  # Do delete logic
>  # release owner lock
>  # release volume lock. 
> Same issue is seen with SetOwner for Volume request also.
> During HDDS-1620 [~arp] brought up this issue. 
> I am proposing the above solution to solve this issue. Any other 
> idea/suggestions are welcome.
> This also resolves a bug in setOwner for Volume request.



--
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] [Updated] (HDDS-1672) Improve locking in OzoneManager

2019-06-24 Thread Bharat Viswanadham (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDDS-1672?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Bharat Viswanadham updated HDDS-1672:
-
Status: Open  (was: Patch Available)

> Improve locking in OzoneManager
> ---
>
> Key: HDDS-1672
> URL: https://issues.apache.org/jira/browse/HDDS-1672
> Project: Hadoop Distributed Data Store
>  Issue Type: Improvement
>  Components: Ozone Manager
>Affects Versions: 0.4.0
>Reporter: Bharat Viswanadham
>Assignee: Bharat Viswanadham
>Priority: Major
>  Labels: pull-request-available
> Attachments: Ozone Locks in OM.pdf
>
>  Time Spent: 7h 10m
>  Remaining Estimate: 0h
>
> In this Jira, we shall follow the new lock ordering. In this way, in volume 
> requests we can solve the issue of acquire/release/reacquire problem. And few 
> bugs in the current implementation of S3Bucket/Volume operations.
>  
> Currently after acquiring volume lock, we cannot acquire user lock. 
> This is causing an issue in Volume request implementation, 
> acquire/release/reacquire volume lock.
>  
> Case of Delete Volume Request: 
>  # Acquire volume lock.
>  # Get Volume Info from DB
>  # Release Volume lock. (We are releasing the lock, because while acquiring 
> volume lock, we cannot acquire user lock0
>  # Get owner from volume Info read from DB
>  # Acquire owner lock
>  # Acquire volume lock
>  # Do delete logic
>  # release volume lock
>  # release user lock
>  
> We can avoid this acquire/release/reacquire lock issue by making volume lock 
> as low weight. 
>  
> In this way, the above deleteVolume request will change as below
>  # Acquire volume lock
>  # Get Volume Info from DB
>  # Get owner from volume Info read from DB
>  # Acquire owner lock
>  # Do delete logic
>  # release owner lock
>  # release volume lock. 
> Same issue is seen with SetOwner for Volume request also.
> During HDDS-1620 [~arp] brought up this issue. 
> I am proposing the above solution to solve this issue. Any other 
> idea/suggestions are welcome.
> This also resolves a bug in setOwner for Volume request.



--
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] [Work logged] (HDDS-1723) Create new OzoneManagerLock class

2019-06-24 Thread ASF GitHub Bot (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDDS-1723?focusedWorklogId=266282=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-266282
 ]

ASF GitHub Bot logged work on HDDS-1723:


Author: ASF GitHub Bot
Created on: 25/Jun/19 02:14
Start Date: 25/Jun/19 02:14
Worklog Time Spent: 10m 
  Work Description: bharatviswa504 commented on issue #1006: HDDS-1723. 
Create new OzoneManagerLock class.
URL: https://github.com/apache/hadoop/pull/1006#issuecomment-505250084
 
 
   Test failures are not related to this patch.
 

This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
---

Worklog Id: (was: 266282)
Time Spent: 4h  (was: 3h 50m)

> Create new OzoneManagerLock class
> -
>
> Key: HDDS-1723
> URL: https://issues.apache.org/jira/browse/HDDS-1723
> Project: Hadoop Distributed Data Store
>  Issue Type: Improvement
>  Components: Ozone Manager
>Reporter: Bharat Viswanadham
>Assignee: Bharat Viswanadham
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 4h
>  Remaining Estimate: 0h
>
> This Jira is to use bit manipulation, instead of hashmap in OzoneManager lock 
> logic. And also this Jira follows the locking order based on the document 
> attached to HDDS-1672 jira.
> This Jira is created based on [~anu] comment during review of HDDS-1672.
> Not a suggestion for this patch. But more of a question, should we just 
> maintain a bitset here, and just flip that bit up and down to see if the lock 
> is held. Or we can just maintain 32 bit integer, and we can easily find if a 
> lock is held by Xoring with the correct mask. I feel that might be super 
> efficient. [@nandakumar131|https://github.com/nandakumar131] . But as I said 
> let us not do that in this patch.
>  
> This Jira will add new class, integration of this new class into code will be 
> done in a new jira. 
> Clean up of old code also will be done in new jira.



--
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-14598) Findbugs warning caused by HDFS-12487

2019-06-24 Thread Anu Engineer (JIRA)


[ 
https://issues.apache.org/jira/browse/HDFS-14598?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16871927#comment-16871927
 ] 

Anu Engineer commented on HDFS-14598:
-

[~jojochuang] Please let me know if you would like this to be backported. 

I do see the other patch went into other branches.

 
{quote}Pushed to trunk, branch-3.2 and branch-3.1
Thanks [~liumihust] for the contribution and [~anu] for review!
{quote}
 

> Findbugs warning caused by HDFS-12487
> -
>
> Key: HDFS-14598
> URL: https://issues.apache.org/jira/browse/HDFS-14598
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: diskbalancer
>Reporter: Wei-Chiu Chuang
>Assignee: He Xiaoqiao
>Priority: Minor
>  Labels: newbie
> Fix For: 3.3.0
>
> Attachments: HDFS-14598.001.patch
>
>
> https://builds.apache.org/job/PreCommit-HDFS-Build/27038/artifact/out/branch-findbugs-hadoop-hdfs-project_hadoop-hdfs-warnings.html
> {noformat}
> Redundant nullcheck of block, which is known to be non-null in 
> org.apache.hadoop.hdfs.server.datanode.DiskBalancer$DiskBalancerMover.getBlockToCopy(FsVolumeSpi$BlockIterator,
>  DiskBalancerWorkItem)
> Bug type RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE (click for details) 
> In class org.apache.hadoop.hdfs.server.datanode.DiskBalancer$DiskBalancerMover
> In method 
> org.apache.hadoop.hdfs.server.datanode.DiskBalancer$DiskBalancerMover.getBlockToCopy(FsVolumeSpi$BlockIterator,
>  DiskBalancerWorkItem)
> Value loaded from block
> Return value of 
> org.apache.hadoop.hdfs.server.datanode.fsdataset.FsVolumeSpi$BlockIterator.nextBlock()
>  of type org.apache.hadoop.hdfs.protocol.ExtendedBlock
> Redundant null check at DiskBalancer.java:[line 912]
> {noformat}



--
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] [Updated] (HDFS-14598) Findbugs warning caused by HDFS-12487

2019-06-24 Thread Anu Engineer (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-14598?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Anu Engineer updated HDFS-14598:

   Resolution: Fixed
 Hadoop Flags: Reviewed
Fix Version/s: 3.3.0
   Status: Resolved  (was: Patch Available)

[~jojochuang] Thanks for filing the issue. [~hexiaoqiao] Thank you for the 
contribution. I have committed this patch to the trunk.

> Findbugs warning caused by HDFS-12487
> -
>
> Key: HDFS-14598
> URL: https://issues.apache.org/jira/browse/HDFS-14598
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: diskbalancer
>Reporter: Wei-Chiu Chuang
>Assignee: He Xiaoqiao
>Priority: Minor
>  Labels: newbie
> Fix For: 3.3.0
>
> Attachments: HDFS-14598.001.patch
>
>
> https://builds.apache.org/job/PreCommit-HDFS-Build/27038/artifact/out/branch-findbugs-hadoop-hdfs-project_hadoop-hdfs-warnings.html
> {noformat}
> Redundant nullcheck of block, which is known to be non-null in 
> org.apache.hadoop.hdfs.server.datanode.DiskBalancer$DiskBalancerMover.getBlockToCopy(FsVolumeSpi$BlockIterator,
>  DiskBalancerWorkItem)
> Bug type RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE (click for details) 
> In class org.apache.hadoop.hdfs.server.datanode.DiskBalancer$DiskBalancerMover
> In method 
> org.apache.hadoop.hdfs.server.datanode.DiskBalancer$DiskBalancerMover.getBlockToCopy(FsVolumeSpi$BlockIterator,
>  DiskBalancerWorkItem)
> Value loaded from block
> Return value of 
> org.apache.hadoop.hdfs.server.datanode.fsdataset.FsVolumeSpi$BlockIterator.nextBlock()
>  of type org.apache.hadoop.hdfs.protocol.ExtendedBlock
> Redundant null check at DiskBalancer.java:[line 912]
> {noformat}



--
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-14541) When evictableMmapped or evictable size is zero, do not throw NoSuchElementException

2019-06-24 Thread JIRA


[ 
https://issues.apache.org/jira/browse/HDFS-14541?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16871922#comment-16871922
 ] 

Íñigo Goiri commented on HDFS-14541:


Cherry-picked to branch-3.2, branch-3.1, branch-3.0, branch-2, and branch-2.9.

>  When evictableMmapped or evictable size is zero, do not throw 
> NoSuchElementException
> -
>
> Key: HDFS-14541
> URL: https://issues.apache.org/jira/browse/HDFS-14541
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: hdfs-client, performance
>Reporter: Zheng Hu
>Assignee: Lisheng Sun
>Priority: Major
> Fix For: 2.10.0, 3.0.4, 3.3.0, 3.2.1, 2.9.3, 3.1.3
>
> Attachments: HDFS-14541.000.patch, HDFS-14541.001.patch, 
> HDFS-14541.002.patch, after-QPS.png, after-cpu-flame-graph.svg, 
> after-heap-flame-graph.svg, async-prof-pid-94152-alloc-2.svg, 
> async-prof-pid-94152-cpu-1.svg, before-QPS.png, before-cpu-flame-graph.svg, 
> before-heap-flame-graph.svg
>
>
> Our XiaoMi HBase team are evaluating the performence improvement of 
> HBASE-21879,  and we have few CPU flame graph  & heap flame graph by using 
> async-profiler,  and find that there're some performence issues in DFSClient  
> . 
> See the attached two flame graphs, we can conclude that the try catch block 
> in ShortCircuitCache#trimEvictionMaps  has some serious perf problem , we 
> should remove the try catch from DFSClient. 
> {code}
>   /**
>* Trim the eviction lists.
>*/
>   private void trimEvictionMaps() {
> long now = Time.monotonicNow();
> demoteOldEvictableMmaped(now);
> while (true) {
>   long evictableSize = evictable.size();
>   long evictableMmappedSize = evictableMmapped.size();
>   if (evictableSize + evictableMmappedSize <= maxTotalSize) {
> return;
>   }
>   ShortCircuitReplica replica;
>   try {
> if (evictableSize == 0) {
>   replica = (ShortCircuitReplica)evictableMmapped.get(evictableMmapped
>   .firstKey());
> } else {
>   replica = (ShortCircuitReplica)evictable.get(evictable.firstKey());
> }
>   } catch (NoSuchElementException e) {
> break;
>   }
>   if (LOG.isTraceEnabled()) {
> LOG.trace(this + ": trimEvictionMaps is purging " + replica +
> StringUtils.getStackTrace(Thread.currentThread()));
>   }
>   purge(replica);
> }
>   }
> {code}
> Our Xiaomi HDFS Team member [~leosun08] will prepare patch for this issue.  



--
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] [Updated] (HDFS-14541) When evictableMmapped or evictable size is zero, do not throw NoSuchElementException

2019-06-24 Thread JIRA


 [ 
https://issues.apache.org/jira/browse/HDFS-14541?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Íñigo Goiri updated HDFS-14541:
---
Fix Version/s: 3.1.3
   2.9.3
   3.2.1
   3.0.4
   2.10.0

>  When evictableMmapped or evictable size is zero, do not throw 
> NoSuchElementException
> -
>
> Key: HDFS-14541
> URL: https://issues.apache.org/jira/browse/HDFS-14541
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: hdfs-client, performance
>Reporter: Zheng Hu
>Assignee: Lisheng Sun
>Priority: Major
> Fix For: 2.10.0, 3.0.4, 3.3.0, 3.2.1, 2.9.3, 3.1.3
>
> Attachments: HDFS-14541.000.patch, HDFS-14541.001.patch, 
> HDFS-14541.002.patch, after-QPS.png, after-cpu-flame-graph.svg, 
> after-heap-flame-graph.svg, async-prof-pid-94152-alloc-2.svg, 
> async-prof-pid-94152-cpu-1.svg, before-QPS.png, before-cpu-flame-graph.svg, 
> before-heap-flame-graph.svg
>
>
> Our XiaoMi HBase team are evaluating the performence improvement of 
> HBASE-21879,  and we have few CPU flame graph  & heap flame graph by using 
> async-profiler,  and find that there're some performence issues in DFSClient  
> . 
> See the attached two flame graphs, we can conclude that the try catch block 
> in ShortCircuitCache#trimEvictionMaps  has some serious perf problem , we 
> should remove the try catch from DFSClient. 
> {code}
>   /**
>* Trim the eviction lists.
>*/
>   private void trimEvictionMaps() {
> long now = Time.monotonicNow();
> demoteOldEvictableMmaped(now);
> while (true) {
>   long evictableSize = evictable.size();
>   long evictableMmappedSize = evictableMmapped.size();
>   if (evictableSize + evictableMmappedSize <= maxTotalSize) {
> return;
>   }
>   ShortCircuitReplica replica;
>   try {
> if (evictableSize == 0) {
>   replica = (ShortCircuitReplica)evictableMmapped.get(evictableMmapped
>   .firstKey());
> } else {
>   replica = (ShortCircuitReplica)evictable.get(evictable.firstKey());
> }
>   } catch (NoSuchElementException e) {
> break;
>   }
>   if (LOG.isTraceEnabled()) {
> LOG.trace(this + ": trimEvictionMaps is purging " + replica +
> StringUtils.getStackTrace(Thread.currentThread()));
>   }
>   purge(replica);
> }
>   }
> {code}
> Our Xiaomi HDFS Team member [~leosun08] will prepare patch for this issue.  



--
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] [Comment Edited] (HDFS-14586) Trash missing delete the folder which near timeout checkpoint

2019-06-24 Thread hu yongfa (JIRA)


[ 
https://issues.apache.org/jira/browse/HDFS-14586?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16871919#comment-16871919
 ] 

hu yongfa edited comment on HDFS-14586 at 6/25/19 2:00 AM:
---

[~hexiaoqiao]  thanks for your good idea, the new patch is available, it keep 
the Date(now) aligned with deletionInterval before loop.

and the new patch is based on branch trunk.


was (Author: huyongfa):
[~hexiaoqiao]  thanks for your good idea, the new patch is available, it keep 
the Date(now) aligned with deletionInterval before loop.

and the new patch is based on branch trunk.

[^HDFS-14586.001.patch]

> Trash missing delete the folder which near timeout checkpoint
> -
>
> Key: HDFS-14586
> URL: https://issues.apache.org/jira/browse/HDFS-14586
> Project: Hadoop HDFS
>  Issue Type: Bug
>Reporter: hu yongfa
>Assignee: hu yongfa
>Priority: Major
> Attachments: HDFS-14586.001.patch
>
>
> when trash timeout checkpoint coming, trash will delete the old folder first, 
> then create a new checkpoint folder.
> as the delete action may spend a long time, such as 2 minutes, so the new 
> checkpoint folder created late.
> at the next trash timeout checkpoint, trash will skip delete the new 
> checkpoint folder, because the new checkpoint folder is 
> less than a checkpoint interval.



--
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] [Updated] (HDFS-14586) Trash missing delete the folder which near timeout checkpoint

2019-06-24 Thread hu yongfa (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-14586?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

hu yongfa updated HDFS-14586:
-
Attachment: (was: HDFS-14586.001.patch)

> Trash missing delete the folder which near timeout checkpoint
> -
>
> Key: HDFS-14586
> URL: https://issues.apache.org/jira/browse/HDFS-14586
> Project: Hadoop HDFS
>  Issue Type: Bug
>Reporter: hu yongfa
>Assignee: hu yongfa
>Priority: Major
> Attachments: HDFS-14586.001.patch
>
>
> when trash timeout checkpoint coming, trash will delete the old folder first, 
> then create a new checkpoint folder.
> as the delete action may spend a long time, such as 2 minutes, so the new 
> checkpoint folder created late.
> at the next trash timeout checkpoint, trash will skip delete the new 
> checkpoint folder, because the new checkpoint folder is 
> less than a checkpoint interval.



--
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] [Updated] (HDFS-14586) Trash missing delete the folder which near timeout checkpoint

2019-06-24 Thread hu yongfa (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-14586?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

hu yongfa updated HDFS-14586:
-
Attachment: HDFS-14586.001.patch

> Trash missing delete the folder which near timeout checkpoint
> -
>
> Key: HDFS-14586
> URL: https://issues.apache.org/jira/browse/HDFS-14586
> Project: Hadoop HDFS
>  Issue Type: Bug
>Reporter: hu yongfa
>Assignee: hu yongfa
>Priority: Major
> Attachments: HDFS-14586.001.patch
>
>
> when trash timeout checkpoint coming, trash will delete the old folder first, 
> then create a new checkpoint folder.
> as the delete action may spend a long time, such as 2 minutes, so the new 
> checkpoint folder created late.
> at the next trash timeout checkpoint, trash will skip delete the new 
> checkpoint folder, because the new checkpoint folder is 
> less than a checkpoint interval.



--
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] [Updated] (HDFS-14586) Trash missing delete the folder which near timeout checkpoint

2019-06-24 Thread hu yongfa (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-14586?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

hu yongfa updated HDFS-14586:
-
Attachment: (was: HDFS-14586.001.patch)

> Trash missing delete the folder which near timeout checkpoint
> -
>
> Key: HDFS-14586
> URL: https://issues.apache.org/jira/browse/HDFS-14586
> Project: Hadoop HDFS
>  Issue Type: Bug
>Reporter: hu yongfa
>Assignee: hu yongfa
>Priority: Major
> Attachments: HDFS-14586.001.patch
>
>
> when trash timeout checkpoint coming, trash will delete the old folder first, 
> then create a new checkpoint folder.
> as the delete action may spend a long time, such as 2 minutes, so the new 
> checkpoint folder created late.
> at the next trash timeout checkpoint, trash will skip delete the new 
> checkpoint folder, because the new checkpoint folder is 
> less than a checkpoint interval.



--
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-14586) Trash missing delete the folder which near timeout checkpoint

2019-06-24 Thread hu yongfa (JIRA)


[ 
https://issues.apache.org/jira/browse/HDFS-14586?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16871919#comment-16871919
 ] 

hu yongfa commented on HDFS-14586:
--

[~hexiaoqiao]  thanks for your good idea, the new patch is available, it keep 
the Date(now) aligned with deletionInterval before loop.

and the new patch is based on branch trunk.

[^HDFS-14586.001.patch]

> Trash missing delete the folder which near timeout checkpoint
> -
>
> Key: HDFS-14586
> URL: https://issues.apache.org/jira/browse/HDFS-14586
> Project: Hadoop HDFS
>  Issue Type: Bug
>Reporter: hu yongfa
>Assignee: hu yongfa
>Priority: Major
> Attachments: HDFS-14586.001.patch, HDFS-14586.001.patch
>
>
> when trash timeout checkpoint coming, trash will delete the old folder first, 
> then create a new checkpoint folder.
> as the delete action may spend a long time, such as 2 minutes, so the new 
> checkpoint folder created late.
> at the next trash timeout checkpoint, trash will skip delete the new 
> checkpoint folder, because the new checkpoint folder is 
> less than a checkpoint interval.



--
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] [Updated] (HDFS-14586) Trash missing delete the folder which near timeout checkpoint

2019-06-24 Thread hu yongfa (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-14586?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

hu yongfa updated HDFS-14586:
-
Attachment: HDFS-14586.001.patch

> Trash missing delete the folder which near timeout checkpoint
> -
>
> Key: HDFS-14586
> URL: https://issues.apache.org/jira/browse/HDFS-14586
> Project: Hadoop HDFS
>  Issue Type: Bug
>Reporter: hu yongfa
>Assignee: hu yongfa
>Priority: Major
> Attachments: HDFS-14586.001.patch, HDFS-14586.001.patch
>
>
> when trash timeout checkpoint coming, trash will delete the old folder first, 
> then create a new checkpoint folder.
> as the delete action may spend a long time, such as 2 minutes, so the new 
> checkpoint folder created late.
> at the next trash timeout checkpoint, trash will skip delete the new 
> checkpoint folder, because the new checkpoint folder is 
> less than a checkpoint interval.



--
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-14541) When evictableMmapped or evictable size is zero, do not throw NoSuchElementException

2019-06-24 Thread Duo Zhang (JIRA)


[ 
https://issues.apache.org/jira/browse/HDFS-14541?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16871916#comment-16871916
 ] 

Duo Zhang commented on HDFS-14541:
--

The default option is what you selected last time, so after you click the 
'squash and merge' once it will be the default for you in the future :)

>  When evictableMmapped or evictable size is zero, do not throw 
> NoSuchElementException
> -
>
> Key: HDFS-14541
> URL: https://issues.apache.org/jira/browse/HDFS-14541
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: hdfs-client, performance
>Reporter: Zheng Hu
>Assignee: Lisheng Sun
>Priority: Major
> Fix For: 3.3.0
>
> Attachments: HDFS-14541.000.patch, HDFS-14541.001.patch, 
> HDFS-14541.002.patch, after-QPS.png, after-cpu-flame-graph.svg, 
> after-heap-flame-graph.svg, async-prof-pid-94152-alloc-2.svg, 
> async-prof-pid-94152-cpu-1.svg, before-QPS.png, before-cpu-flame-graph.svg, 
> before-heap-flame-graph.svg
>
>
> Our XiaoMi HBase team are evaluating the performence improvement of 
> HBASE-21879,  and we have few CPU flame graph  & heap flame graph by using 
> async-profiler,  and find that there're some performence issues in DFSClient  
> . 
> See the attached two flame graphs, we can conclude that the try catch block 
> in ShortCircuitCache#trimEvictionMaps  has some serious perf problem , we 
> should remove the try catch from DFSClient. 
> {code}
>   /**
>* Trim the eviction lists.
>*/
>   private void trimEvictionMaps() {
> long now = Time.monotonicNow();
> demoteOldEvictableMmaped(now);
> while (true) {
>   long evictableSize = evictable.size();
>   long evictableMmappedSize = evictableMmapped.size();
>   if (evictableSize + evictableMmappedSize <= maxTotalSize) {
> return;
>   }
>   ShortCircuitReplica replica;
>   try {
> if (evictableSize == 0) {
>   replica = (ShortCircuitReplica)evictableMmapped.get(evictableMmapped
>   .firstKey());
> } else {
>   replica = (ShortCircuitReplica)evictable.get(evictable.firstKey());
> }
>   } catch (NoSuchElementException e) {
> break;
>   }
>   if (LOG.isTraceEnabled()) {
> LOG.trace(this + ": trimEvictionMaps is purging " + replica +
> StringUtils.getStackTrace(Thread.currentThread()));
>   }
>   purge(replica);
> }
>   }
> {code}
> Our Xiaomi HDFS Team member [~leosun08] will prepare patch for this issue.  



--
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-14541) When evictableMmapped or evictable size is zero, do not throw NoSuchElementException

2019-06-24 Thread JIRA


[ 
https://issues.apache.org/jira/browse/HDFS-14541?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16871914#comment-16871914
 ] 

Íñigo Goiri commented on HDFS-14541:


I just saw that the default was 'create a merge commit'.
I'll commit by hand to the other branches.
Let's make 'squash and merge the default.

>  When evictableMmapped or evictable size is zero, do not throw 
> NoSuchElementException
> -
>
> Key: HDFS-14541
> URL: https://issues.apache.org/jira/browse/HDFS-14541
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: hdfs-client, performance
>Reporter: Zheng Hu
>Assignee: Lisheng Sun
>Priority: Major
> Fix For: 3.3.0
>
> Attachments: HDFS-14541.000.patch, HDFS-14541.001.patch, 
> HDFS-14541.002.patch, after-QPS.png, after-cpu-flame-graph.svg, 
> after-heap-flame-graph.svg, async-prof-pid-94152-alloc-2.svg, 
> async-prof-pid-94152-cpu-1.svg, before-QPS.png, before-cpu-flame-graph.svg, 
> before-heap-flame-graph.svg
>
>
> Our XiaoMi HBase team are evaluating the performence improvement of 
> HBASE-21879,  and we have few CPU flame graph  & heap flame graph by using 
> async-profiler,  and find that there're some performence issues in DFSClient  
> . 
> See the attached two flame graphs, we can conclude that the try catch block 
> in ShortCircuitCache#trimEvictionMaps  has some serious perf problem , we 
> should remove the try catch from DFSClient. 
> {code}
>   /**
>* Trim the eviction lists.
>*/
>   private void trimEvictionMaps() {
> long now = Time.monotonicNow();
> demoteOldEvictableMmaped(now);
> while (true) {
>   long evictableSize = evictable.size();
>   long evictableMmappedSize = evictableMmapped.size();
>   if (evictableSize + evictableMmappedSize <= maxTotalSize) {
> return;
>   }
>   ShortCircuitReplica replica;
>   try {
> if (evictableSize == 0) {
>   replica = (ShortCircuitReplica)evictableMmapped.get(evictableMmapped
>   .firstKey());
> } else {
>   replica = (ShortCircuitReplica)evictable.get(evictable.firstKey());
> }
>   } catch (NoSuchElementException e) {
> break;
>   }
>   if (LOG.isTraceEnabled()) {
> LOG.trace(this + ": trimEvictionMaps is purging " + replica +
> StringUtils.getStackTrace(Thread.currentThread()));
>   }
>   purge(replica);
> }
>   }
> {code}
> Our Xiaomi HDFS Team member [~leosun08] will prepare patch for this issue.  



--
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] [Updated] (HDFS-13694) Making md5 computing being in parallel with image loading

2019-06-24 Thread Lisheng Sun (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-13694?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Lisheng Sun updated HDFS-13694:
---
Attachment: HDFS-13694-003.patch

> Making md5 computing being in parallel with image loading
> -
>
> Key: HDFS-13694
> URL: https://issues.apache.org/jira/browse/HDFS-13694
> Project: Hadoop HDFS
>  Issue Type: Improvement
>Reporter: zhouyingchao
>Assignee: Lisheng Sun
>Priority: Major
> Attachments: HDFS-13694-001.patch, HDFS-13694-002.patch, 
> HDFS-13694-003.patch
>
>
> During namenode image loading, it firstly compute the md5 and then load the 
> image. Actually these two steps can be in parallel.



--
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] [Updated] (HDFS-14541) When evictableMmapped or evictable size is zero, do not throw NoSuchElementException

2019-06-24 Thread Duo Zhang (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDFS-14541?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Duo Zhang updated HDFS-14541:
-
Component/s: performance
 hdfs-client

>  When evictableMmapped or evictable size is zero, do not throw 
> NoSuchElementException
> -
>
> Key: HDFS-14541
> URL: https://issues.apache.org/jira/browse/HDFS-14541
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: hdfs-client, performance
>Reporter: Zheng Hu
>Assignee: Lisheng Sun
>Priority: Major
> Fix For: 3.3.0
>
> Attachments: HDFS-14541.000.patch, HDFS-14541.001.patch, 
> HDFS-14541.002.patch, after-QPS.png, after-cpu-flame-graph.svg, 
> after-heap-flame-graph.svg, async-prof-pid-94152-alloc-2.svg, 
> async-prof-pid-94152-cpu-1.svg, before-QPS.png, before-cpu-flame-graph.svg, 
> before-heap-flame-graph.svg
>
>
> Our XiaoMi HBase team are evaluating the performence improvement of 
> HBASE-21879,  and we have few CPU flame graph  & heap flame graph by using 
> async-profiler,  and find that there're some performence issues in DFSClient  
> . 
> See the attached two flame graphs, we can conclude that the try catch block 
> in ShortCircuitCache#trimEvictionMaps  has some serious perf problem , we 
> should remove the try catch from DFSClient. 
> {code}
>   /**
>* Trim the eviction lists.
>*/
>   private void trimEvictionMaps() {
> long now = Time.monotonicNow();
> demoteOldEvictableMmaped(now);
> while (true) {
>   long evictableSize = evictable.size();
>   long evictableMmappedSize = evictableMmapped.size();
>   if (evictableSize + evictableMmappedSize <= maxTotalSize) {
> return;
>   }
>   ShortCircuitReplica replica;
>   try {
> if (evictableSize == 0) {
>   replica = (ShortCircuitReplica)evictableMmapped.get(evictableMmapped
>   .firstKey());
> } else {
>   replica = (ShortCircuitReplica)evictable.get(evictable.firstKey());
> }
>   } catch (NoSuchElementException e) {
> break;
>   }
>   if (LOG.isTraceEnabled()) {
> LOG.trace(this + ": trimEvictionMaps is purging " + replica +
> StringUtils.getStackTrace(Thread.currentThread()));
>   }
>   purge(replica);
> }
>   }
> {code}
> Our Xiaomi HDFS Team member [~leosun08] will prepare patch for this issue.  



--
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-14541) When evictableMmapped or evictable size is zero, do not throw NoSuchElementException

2019-06-24 Thread Duo Zhang (JIRA)


[ 
https://issues.apache.org/jira/browse/HDFS-14541?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16871911#comment-16871911
 ] 

Duo Zhang commented on HDFS-14541:
--

You should use 'squash and merge' or 'rebase and merge', instead of 'create a 
merge commit'. And I think we should file an issue at INFRA to disable the 
'create a merge commit' button...

And I think should go into all branches effected? Not only trunk?

Thanks [~jojochuang] [~elgoiri].

>  When evictableMmapped or evictable size is zero, do not throw 
> NoSuchElementException
> -
>
> Key: HDFS-14541
> URL: https://issues.apache.org/jira/browse/HDFS-14541
> Project: Hadoop HDFS
>  Issue Type: Bug
>Reporter: Zheng Hu
>Assignee: Lisheng Sun
>Priority: Major
> Fix For: 3.3.0
>
> Attachments: HDFS-14541.000.patch, HDFS-14541.001.patch, 
> HDFS-14541.002.patch, after-QPS.png, after-cpu-flame-graph.svg, 
> after-heap-flame-graph.svg, async-prof-pid-94152-alloc-2.svg, 
> async-prof-pid-94152-cpu-1.svg, before-QPS.png, before-cpu-flame-graph.svg, 
> before-heap-flame-graph.svg
>
>
> Our XiaoMi HBase team are evaluating the performence improvement of 
> HBASE-21879,  and we have few CPU flame graph  & heap flame graph by using 
> async-profiler,  and find that there're some performence issues in DFSClient  
> . 
> See the attached two flame graphs, we can conclude that the try catch block 
> in ShortCircuitCache#trimEvictionMaps  has some serious perf problem , we 
> should remove the try catch from DFSClient. 
> {code}
>   /**
>* Trim the eviction lists.
>*/
>   private void trimEvictionMaps() {
> long now = Time.monotonicNow();
> demoteOldEvictableMmaped(now);
> while (true) {
>   long evictableSize = evictable.size();
>   long evictableMmappedSize = evictableMmapped.size();
>   if (evictableSize + evictableMmappedSize <= maxTotalSize) {
> return;
>   }
>   ShortCircuitReplica replica;
>   try {
> if (evictableSize == 0) {
>   replica = (ShortCircuitReplica)evictableMmapped.get(evictableMmapped
>   .firstKey());
> } else {
>   replica = (ShortCircuitReplica)evictable.get(evictable.firstKey());
> }
>   } catch (NoSuchElementException e) {
> break;
>   }
>   if (LOG.isTraceEnabled()) {
> LOG.trace(this + ": trimEvictionMaps is purging " + replica +
> StringUtils.getStackTrace(Thread.currentThread()));
>   }
>   purge(replica);
> }
>   }
> {code}
> Our Xiaomi HDFS Team member [~leosun08] will prepare patch for this issue.  



--
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] [Work logged] (HDDS-1685) Recon: Add support for "start" query param to containers and containers/{id} endpoints

2019-06-24 Thread ASF GitHub Bot (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDDS-1685?focusedWorklogId=266258=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-266258
 ]

ASF GitHub Bot logged work on HDDS-1685:


Author: ASF GitHub Bot
Created on: 25/Jun/19 01:21
Start Date: 25/Jun/19 01:21
Worklog Time Spent: 10m 
  Work Description: hadoop-yetus commented on issue #987: HDDS-1685. Recon: 
Add support for 'start' query param to containers…
URL: https://github.com/apache/hadoop/pull/987#issuecomment-505239525
 
 
   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | 0 | reexec | 500 | Docker mode activated. |
   ||| _ Prechecks _ |
   | +1 | dupname | 0 | No case conflicting files found. |
   | +1 | @author | 0 | The patch does not contain any @author tags. |
   | +1 | test4tests | 0 | The patch appears to include 2 new or modified test 
files. |
   ||| _ trunk Compile Tests _ |
   | +1 | mvninstall | 496 | trunk passed |
   | +1 | compile | 246 | trunk passed |
   | +1 | checkstyle | 60 | trunk passed |
   | +1 | mvnsite | 0 | trunk passed |
   | +1 | shadedclient | 830 | branch has no errors when building and testing 
our client artifacts. |
   | +1 | javadoc | 148 | trunk passed |
   | 0 | spotbugs | 317 | Used deprecated FindBugs config; considering 
switching to SpotBugs. |
   | +1 | findbugs | 512 | trunk passed |
   ||| _ Patch Compile Tests _ |
   | +1 | mvninstall | 464 | the patch passed |
   | -1 | compile | 88 | hadoop-hdds in the patch failed. |
   | -1 | javac | 88 | hadoop-hdds in the patch failed. |
   | -0 | checkstyle | 34 | hadoop-ozone: The patch generated 3 new + 0 
unchanged - 0 fixed = 3 total (was 0) |
   | +1 | mvnsite | 0 | the patch passed |
   | +1 | whitespace | 0 | The patch has no whitespace issues. |
   | +1 | shadedclient | 671 | patch has no errors when building and testing 
our client artifacts. |
   | +1 | javadoc | 152 | the patch passed |
   | -1 | findbugs | 112 | hadoop-hdds in the patch failed. |
   | -1 | findbugs | 27 | hadoop-ozone in the patch failed. |
   ||| _ Other Tests _ |
   | -1 | unit | 29 | hadoop-hdds in the patch failed. |
   | -1 | unit | 27 | hadoop-ozone in the patch failed. |
   | 0 | asflicense | 28 | ASF License check generated no output? |
   | | | 4756 | |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | Client=17.05.0-ce Server=17.05.0-ce base: 
https://builds.apache.org/job/hadoop-multibranch/job/PR-987/4/artifact/out/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hadoop/pull/987 |
   | Optional Tests | dupname asflicense compile javac javadoc mvninstall 
mvnsite unit shadedclient findbugs checkstyle |
   | uname | Linux d652ac3b24b7 4.4.0-138-generic #164-Ubuntu SMP Tue Oct 2 
17:16:02 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | personality/hadoop.sh |
   | git revision | trunk / 129576f |
   | Default Java | 1.8.0_212 |
   | compile | 
https://builds.apache.org/job/hadoop-multibranch/job/PR-987/4/artifact/out/patch-compile-hadoop-hdds.txt
 |
   | javac | 
https://builds.apache.org/job/hadoop-multibranch/job/PR-987/4/artifact/out/patch-compile-hadoop-hdds.txt
 |
   | checkstyle | 
https://builds.apache.org/job/hadoop-multibranch/job/PR-987/4/artifact/out/diff-checkstyle-hadoop-ozone.txt
 |
   | findbugs | 
https://builds.apache.org/job/hadoop-multibranch/job/PR-987/4/artifact/out/patch-findbugs-hadoop-hdds.txt
 |
   | findbugs | 
https://builds.apache.org/job/hadoop-multibranch/job/PR-987/4/artifact/out/patch-findbugs-hadoop-ozone.txt
 |
   | unit | 
https://builds.apache.org/job/hadoop-multibranch/job/PR-987/4/artifact/out/patch-unit-hadoop-hdds.txt
 |
   | unit | 
https://builds.apache.org/job/hadoop-multibranch/job/PR-987/4/artifact/out/patch-unit-hadoop-ozone.txt
 |
   |  Test Results | 
https://builds.apache.org/job/hadoop-multibranch/job/PR-987/4/testReport/ |
   | Max. process+thread count | 412 (vs. ulimit of 5500) |
   | modules | C: hadoop-ozone/ozone-recon U: hadoop-ozone/ozone-recon |
   | Console output | 
https://builds.apache.org/job/hadoop-multibranch/job/PR-987/4/console |
   | versions | git=2.7.4 maven=3.3.9 findbugs=3.1.0-RC1 |
   | Powered by | Apache Yetus 0.10.0 http://yetus.apache.org |
   
   
   This message was automatically generated.
   
   
 

This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
---

Worklog Id: (was: 266258)
Time Spent: 2h  (was: 1h 50m)

> Recon: Add support for "start" query param to containers and containers/{id} 
> 

[jira] [Commented] (HDFS-13371) NPE for FsServerDefaults.getKeyProviderUri() for clientProtocol communication between 2.7 and 3.X

2019-06-24 Thread Hudson (JIRA)


[ 
https://issues.apache.org/jira/browse/HDFS-13371?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16871905#comment-16871905
 ] 

Hudson commented on HDFS-13371:
---

SUCCESS: Integrated in Jenkins build Hadoop-trunk-Commit #16817 (See 
[https://builds.apache.org/job/Hadoop-trunk-Commit/16817/])
HDFS-13371. NPE for FsServerDefaults.getKeyProviderUri() for (inigoiri: rev 
b76b843c8bd3906aaa5ad633d8a939aebc671907)
* (edit) 
hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/protocolPB/PBHelperClient.java


> NPE for FsServerDefaults.getKeyProviderUri() for clientProtocol communication 
> between 2.7 and 3.X
> -
>
> Key: HDFS-13371
> URL: https://issues.apache.org/jira/browse/HDFS-13371
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 3.1.0, 3.2.0
>Reporter: Sherwood Zheng
>Assignee: Sherwood Zheng
>Priority: Minor
>  Labels: RBF
> Fix For: 3.3.0
>
> Attachments: HDFS-13371.000.patch
>
>
> KeyProviderUri is not available in 2.7 so when 2.7 clients contact with 3.2 
> services, it cannot find the key provider URI and triggers a 
> NullPointerException.



--
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] [Updated] (HDFS-13371) NPE for FsServerDefaults.getKeyProviderUri() for clientProtocol communication between 2.7 and 3.X

2019-06-24 Thread JIRA


 [ 
https://issues.apache.org/jira/browse/HDFS-13371?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Íñigo Goiri updated HDFS-13371:
---
Summary: NPE for FsServerDefaults.getKeyProviderUri() for clientProtocol 
communication between 2.7 and 3.X  (was: NPE for 
FsServerDefaults.getKeyProviderUri() for clientProtocol communication between 
2.7 and 3.2)

> NPE for FsServerDefaults.getKeyProviderUri() for clientProtocol communication 
> between 2.7 and 3.X
> -
>
> Key: HDFS-13371
> URL: https://issues.apache.org/jira/browse/HDFS-13371
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 3.1.0, 3.2.0
>Reporter: Sherwood Zheng
>Assignee: Sherwood Zheng
>Priority: Minor
>  Labels: RBF
> Attachments: HDFS-13371.000.patch
>
>
> KeyProviderUri is not available in 2.7 so when 2.7 clients contact with 3.2 
> services, it cannot find the key provider URI and triggers a 
> NullPointerException.



--
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] [Updated] (HDFS-13371) NPE for FsServerDefaults.getKeyProviderUri() for clientProtocol communication between 2.7 and 3.X

2019-06-24 Thread JIRA


 [ 
https://issues.apache.org/jira/browse/HDFS-13371?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Íñigo Goiri updated HDFS-13371:
---
   Resolution: Fixed
 Hadoop Flags: Reviewed
Fix Version/s: 3.3.0
   Status: Resolved  (was: Patch Available)

> NPE for FsServerDefaults.getKeyProviderUri() for clientProtocol communication 
> between 2.7 and 3.X
> -
>
> Key: HDFS-13371
> URL: https://issues.apache.org/jira/browse/HDFS-13371
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 3.1.0, 3.2.0
>Reporter: Sherwood Zheng
>Assignee: Sherwood Zheng
>Priority: Minor
>  Labels: RBF
> Fix For: 3.3.0
>
> Attachments: HDFS-13371.000.patch
>
>
> KeyProviderUri is not available in 2.7 so when 2.7 clients contact with 3.2 
> services, it cannot find the key provider URI and triggers a 
> NullPointerException.



--
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] [Resolved] (HDFS-14541) When evictableMmapped or evictable size is zero, do not throw NoSuchElementException

2019-06-24 Thread JIRA


 [ 
https://issues.apache.org/jira/browse/HDFS-14541?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Íñigo Goiri resolved HDFS-14541.

   Resolution: Fixed
 Hadoop Flags: Reviewed
Fix Version/s: 3.3.0

>  When evictableMmapped or evictable size is zero, do not throw 
> NoSuchElementException
> -
>
> Key: HDFS-14541
> URL: https://issues.apache.org/jira/browse/HDFS-14541
> Project: Hadoop HDFS
>  Issue Type: Bug
>Reporter: Zheng Hu
>Assignee: Lisheng Sun
>Priority: Major
> Fix For: 3.3.0
>
> Attachments: HDFS-14541.000.patch, HDFS-14541.001.patch, 
> HDFS-14541.002.patch, after-QPS.png, after-cpu-flame-graph.svg, 
> after-heap-flame-graph.svg, async-prof-pid-94152-alloc-2.svg, 
> async-prof-pid-94152-cpu-1.svg, before-QPS.png, before-cpu-flame-graph.svg, 
> before-heap-flame-graph.svg
>
>
> Our XiaoMi HBase team are evaluating the performence improvement of 
> HBASE-21879,  and we have few CPU flame graph  & heap flame graph by using 
> async-profiler,  and find that there're some performence issues in DFSClient  
> . 
> See the attached two flame graphs, we can conclude that the try catch block 
> in ShortCircuitCache#trimEvictionMaps  has some serious perf problem , we 
> should remove the try catch from DFSClient. 
> {code}
>   /**
>* Trim the eviction lists.
>*/
>   private void trimEvictionMaps() {
> long now = Time.monotonicNow();
> demoteOldEvictableMmaped(now);
> while (true) {
>   long evictableSize = evictable.size();
>   long evictableMmappedSize = evictableMmapped.size();
>   if (evictableSize + evictableMmappedSize <= maxTotalSize) {
> return;
>   }
>   ShortCircuitReplica replica;
>   try {
> if (evictableSize == 0) {
>   replica = (ShortCircuitReplica)evictableMmapped.get(evictableMmapped
>   .firstKey());
> } else {
>   replica = (ShortCircuitReplica)evictable.get(evictable.firstKey());
> }
>   } catch (NoSuchElementException e) {
> break;
>   }
>   if (LOG.isTraceEnabled()) {
> LOG.trace(this + ": trimEvictionMaps is purging " + replica +
> StringUtils.getStackTrace(Thread.currentThread()));
>   }
>   purge(replica);
> }
>   }
> {code}
> Our Xiaomi HDFS Team member [~leosun08] will prepare patch for this issue.  



--
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-14541) When evictableMmapped or evictable size is zero, do not throw NoSuchElementException

2019-06-24 Thread JIRA


[ 
https://issues.apache.org/jira/browse/HDFS-14541?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16871899#comment-16871899
 ] 

Íñigo Goiri commented on HDFS-14541:


I did the whole process and merge to trunk.
Unfortunately it added "Merge pull request #977 from leosunli/trunk" to the 
commit message.
It would be nice to have the full guide for merging PRs.

>  When evictableMmapped or evictable size is zero, do not throw 
> NoSuchElementException
> -
>
> Key: HDFS-14541
> URL: https://issues.apache.org/jira/browse/HDFS-14541
> Project: Hadoop HDFS
>  Issue Type: Bug
>Reporter: Zheng Hu
>Assignee: Lisheng Sun
>Priority: Major
> Attachments: HDFS-14541.000.patch, HDFS-14541.001.patch, 
> HDFS-14541.002.patch, after-QPS.png, after-cpu-flame-graph.svg, 
> after-heap-flame-graph.svg, async-prof-pid-94152-alloc-2.svg, 
> async-prof-pid-94152-cpu-1.svg, before-QPS.png, before-cpu-flame-graph.svg, 
> before-heap-flame-graph.svg
>
>
> Our XiaoMi HBase team are evaluating the performence improvement of 
> HBASE-21879,  and we have few CPU flame graph  & heap flame graph by using 
> async-profiler,  and find that there're some performence issues in DFSClient  
> . 
> See the attached two flame graphs, we can conclude that the try catch block 
> in ShortCircuitCache#trimEvictionMaps  has some serious perf problem , we 
> should remove the try catch from DFSClient. 
> {code}
>   /**
>* Trim the eviction lists.
>*/
>   private void trimEvictionMaps() {
> long now = Time.monotonicNow();
> demoteOldEvictableMmaped(now);
> while (true) {
>   long evictableSize = evictable.size();
>   long evictableMmappedSize = evictableMmapped.size();
>   if (evictableSize + evictableMmappedSize <= maxTotalSize) {
> return;
>   }
>   ShortCircuitReplica replica;
>   try {
> if (evictableSize == 0) {
>   replica = (ShortCircuitReplica)evictableMmapped.get(evictableMmapped
>   .firstKey());
> } else {
>   replica = (ShortCircuitReplica)evictable.get(evictable.firstKey());
> }
>   } catch (NoSuchElementException e) {
> break;
>   }
>   if (LOG.isTraceEnabled()) {
> LOG.trace(this + ": trimEvictionMaps is purging " + replica +
> StringUtils.getStackTrace(Thread.currentThread()));
>   }
>   purge(replica);
> }
>   }
> {code}
> Our Xiaomi HDFS Team member [~leosun08] will prepare patch for this issue.  



--
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] [Updated] (HDFS-14541) When evictableMmapped or evictable size is zero, do not throw NoSuchElementException

2019-06-24 Thread JIRA


 [ 
https://issues.apache.org/jira/browse/HDFS-14541?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Íñigo Goiri updated HDFS-14541:
---
Summary:  When evictableMmapped or evictable size is zero, do not throw 
NoSuchElementException  (was: ShortCircuitReplica#unref cost about 6% cpu and 
6% heap allocation because of the frequent thrown NoSuchElementException  in 
our HBase benchmark)

>  When evictableMmapped or evictable size is zero, do not throw 
> NoSuchElementException
> -
>
> Key: HDFS-14541
> URL: https://issues.apache.org/jira/browse/HDFS-14541
> Project: Hadoop HDFS
>  Issue Type: Bug
>Reporter: Zheng Hu
>Assignee: Lisheng Sun
>Priority: Major
> Attachments: HDFS-14541.000.patch, HDFS-14541.001.patch, 
> HDFS-14541.002.patch, after-QPS.png, after-cpu-flame-graph.svg, 
> after-heap-flame-graph.svg, async-prof-pid-94152-alloc-2.svg, 
> async-prof-pid-94152-cpu-1.svg, before-QPS.png, before-cpu-flame-graph.svg, 
> before-heap-flame-graph.svg
>
>
> Our XiaoMi HBase team are evaluating the performence improvement of 
> HBASE-21879,  and we have few CPU flame graph  & heap flame graph by using 
> async-profiler,  and find that there're some performence issues in DFSClient  
> . 
> See the attached two flame graphs, we can conclude that the try catch block 
> in ShortCircuitCache#trimEvictionMaps  has some serious perf problem , we 
> should remove the try catch from DFSClient. 
> {code}
>   /**
>* Trim the eviction lists.
>*/
>   private void trimEvictionMaps() {
> long now = Time.monotonicNow();
> demoteOldEvictableMmaped(now);
> while (true) {
>   long evictableSize = evictable.size();
>   long evictableMmappedSize = evictableMmapped.size();
>   if (evictableSize + evictableMmappedSize <= maxTotalSize) {
> return;
>   }
>   ShortCircuitReplica replica;
>   try {
> if (evictableSize == 0) {
>   replica = (ShortCircuitReplica)evictableMmapped.get(evictableMmapped
>   .firstKey());
> } else {
>   replica = (ShortCircuitReplica)evictable.get(evictable.firstKey());
> }
>   } catch (NoSuchElementException e) {
> break;
>   }
>   if (LOG.isTraceEnabled()) {
> LOG.trace(this + ": trimEvictionMaps is purging " + replica +
> StringUtils.getStackTrace(Thread.currentThread()));
>   }
>   purge(replica);
> }
>   }
> {code}
> Our Xiaomi HDFS Team member [~leosun08] will prepare patch for this issue.  



--
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] [Work logged] (HDDS-1651) Create a http.policy config for Ozone

2019-06-24 Thread ASF GitHub Bot (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDDS-1651?focusedWorklogId=266234=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-266234
 ]

ASF GitHub Bot logged work on HDDS-1651:


Author: ASF GitHub Bot
Created on: 25/Jun/19 00:28
Start Date: 25/Jun/19 00:28
Worklog Time Spent: 10m 
  Work Description: bharatviswa504 commented on pull request #930: 
HDDS-1651. Create a http.policy config for Ozone
URL: https://github.com/apache/hadoop/pull/930#discussion_r295128201
 
 

 ##
 File path: 
hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/HddsUtils.java
 ##
 @@ -31,6 +31,7 @@
 import java.util.Optional;
 import java.util.TimeZone;
 
+import org.apache.hadoop.HadoopIllegalArgumentException;
 
 Review comment:
   Minor: Unused import.
 

This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
---

Worklog Id: (was: 266234)
Time Spent: 3h  (was: 2h 50m)

> Create a http.policy config for Ozone
> -
>
> Key: HDDS-1651
> URL: https://issues.apache.org/jira/browse/HDDS-1651
> Project: Hadoop Distributed Data Store
>  Issue Type: Bug
>Reporter: Hanisha Koneru
>Assignee: Shweta
>Priority: Major
>  Labels: newbie, pull-request-available
>  Time Spent: 3h
>  Remaining Estimate: 0h
>
> Ozone currently uses dfs.http.policy for HTTP policy. Ozone should have its 
> own ozone.http.policy configuration and if undefined, then fallback to 
> dfs.http.policy.



--
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] [Work logged] (HDDS-1651) Create a http.policy config for Ozone

2019-06-24 Thread ASF GitHub Bot (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDDS-1651?focusedWorklogId=266232=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-266232
 ]

ASF GitHub Bot logged work on HDDS-1651:


Author: ASF GitHub Bot
Created on: 25/Jun/19 00:28
Start Date: 25/Jun/19 00:28
Worklog Time Spent: 10m 
  Work Description: bharatviswa504 commented on issue #930: HDDS-1651. 
Create a http.policy config for Ozone
URL: https://github.com/apache/hadoop/pull/930#issuecomment-505229785
 
 
   Hi,
   I have a question:
   What is the reason to create a new http policy for ozone? Because when https 
is enabled, some of the additional config like key store location we still use 
dfs.https.server.keystore.resource. 
   
   I feel ozone can also re-use the hdfs config. In this way, we don't miss the 
code changes where HTTP policy is being used, like OzoneManagerSnapShotProvider 
which uses still DFSUtils.getHttpPolicy.
   
   And also we use to create HttpServer2.Builder builder with below code. That 
again uses dfs.http.policy. So, this is the reason we need to set 
ozone.http.policy to dfs.http.policy to make it work. So, I feel to avoid all 
these, we can use dfs.http.policy as before. Let me know your thoughts on this.
   ```
 builder = DFSUtil.httpServerTemplateForNNAndJN(conf, this.httpAddress,
 this.httpsAddress, name, getSpnegoPrincipal(), getKeytabFile());
   ```
 

This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
---

Worklog Id: (was: 266232)
Time Spent: 2h 50m  (was: 2h 40m)

> Create a http.policy config for Ozone
> -
>
> Key: HDDS-1651
> URL: https://issues.apache.org/jira/browse/HDDS-1651
> Project: Hadoop Distributed Data Store
>  Issue Type: Bug
>Reporter: Hanisha Koneru
>Assignee: Shweta
>Priority: Major
>  Labels: newbie, pull-request-available
>  Time Spent: 2h 50m
>  Remaining Estimate: 0h
>
> Ozone currently uses dfs.http.policy for HTTP policy. Ozone should have its 
> own ozone.http.policy configuration and if undefined, then fallback to 
> dfs.http.policy.



--
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] [Work logged] (HDDS-1651) Create a http.policy config for Ozone

2019-06-24 Thread ASF GitHub Bot (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDDS-1651?focusedWorklogId=266231=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-266231
 ]

ASF GitHub Bot logged work on HDDS-1651:


Author: ASF GitHub Bot
Created on: 25/Jun/19 00:26
Start Date: 25/Jun/19 00:26
Worklog Time Spent: 10m 
  Work Description: bharatviswa504 commented on issue #930: HDDS-1651. 
Create a http.policy config for Ozone
URL: https://github.com/apache/hadoop/pull/930#issuecomment-505229785
 
 
   Hi,
   I have a question:
   is there a reason to create a new http policy for config. Because when https 
is enabled, some of the additional config like key store location we use 
dfs.https.server.keystore.resource. 
   
   I feel ozone can also re-use the hdfs config. In this way, we don't miss the 
code changes where HTTP policy is being used, like OzoneManagerSnapShotProvider 
which uses still DFSUtils.getHttpPolicy.
   And also we use to create HttpServer2.Builder builder with below code. That 
again uses dfs.http.policy. So, this is the reason we need to set 
ozone.http.policy to dfs.http.policy to make it work. So, I feel to avoid all 
these, we can use dfs.http.policy as before. Let me know your thoughts on this.
   ```
 builder = DFSUtil.httpServerTemplateForNNAndJN(conf, this.httpAddress,
 this.httpsAddress, name, getSpnegoPrincipal(), getKeytabFile());
   ```
 

This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
---

Worklog Id: (was: 266231)
Time Spent: 2h 40m  (was: 2.5h)

> Create a http.policy config for Ozone
> -
>
> Key: HDDS-1651
> URL: https://issues.apache.org/jira/browse/HDDS-1651
> Project: Hadoop Distributed Data Store
>  Issue Type: Bug
>Reporter: Hanisha Koneru
>Assignee: Shweta
>Priority: Major
>  Labels: newbie, pull-request-available
>  Time Spent: 2h 40m
>  Remaining Estimate: 0h
>
> Ozone currently uses dfs.http.policy for HTTP policy. Ozone should have its 
> own ozone.http.policy configuration and if undefined, then fallback to 
> dfs.http.policy.



--
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] [Work logged] (HDDS-1723) Create new OzoneManagerLock class

2019-06-24 Thread ASF GitHub Bot (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDDS-1723?focusedWorklogId=266228=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-266228
 ]

ASF GitHub Bot logged work on HDDS-1723:


Author: ASF GitHub Bot
Created on: 25/Jun/19 00:20
Start Date: 25/Jun/19 00:20
Worklog Time Spent: 10m 
  Work Description: hadoop-yetus commented on issue #1006: HDDS-1723. 
Create new OzoneManagerLock class.
URL: https://github.com/apache/hadoop/pull/1006#issuecomment-505228694
 
 
   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | 0 | reexec | 893 | Docker mode activated. |
   ||| _ Prechecks _ |
   | +1 | dupname | 0 | No case conflicting files found. |
   | +1 | @author | 0 | The patch does not contain any @author tags. |
   | +1 | test4tests | 0 | The patch appears to include 2 new or modified test 
files. |
   ||| _ trunk Compile Tests _ |
   | 0 | mvndep | 64 | Maven dependency ordering for branch |
   | +1 | mvninstall | 475 | trunk passed |
   | +1 | compile | 243 | trunk passed |
   | +1 | checkstyle | 67 | trunk passed |
   | +1 | mvnsite | 0 | trunk passed |
   | +1 | shadedclient | 892 | branch has no errors when building and testing 
our client artifacts. |
   | +1 | javadoc | 154 | trunk passed |
   | 0 | spotbugs | 306 | Used deprecated FindBugs config; considering 
switching to SpotBugs. |
   | +1 | findbugs | 491 | trunk passed |
   ||| _ Patch Compile Tests _ |
   | 0 | mvndep | 29 | Maven dependency ordering for patch |
   | +1 | mvninstall | 421 | the patch passed |
   | +1 | compile | 247 | the patch passed |
   | +1 | javac | 247 | the patch passed |
   | +1 | checkstyle | 72 | the patch passed |
   | +1 | mvnsite | 0 | the patch passed |
   | +1 | whitespace | 1 | The patch has no whitespace issues. |
   | +1 | shadedclient | 686 | patch has no errors when building and testing 
our client artifacts. |
   | +1 | javadoc | 149 | the patch passed |
   | +1 | findbugs | 505 | the patch passed |
   ||| _ Other Tests _ |
   | +1 | unit | 262 | hadoop-hdds in the patch passed. |
   | -1 | unit | 1710 | hadoop-ozone in the patch failed. |
   | +1 | asflicense | 40 | The patch does not generate ASF License warnings. |
   | | | 7548 | |
   
   
   | Reason | Tests |
   |---:|:--|
   | Failed junit tests | hadoop.ozone.client.rpc.TestCommitWatcher |
   |   | hadoop.ozone.om.TestOzoneManager |
   |   | hadoop.ozone.client.rpc.TestBCSID |
   |   | hadoop.ozone.client.rpc.TestOzoneRpcClient |
   |   | hadoop.ozone.client.rpc.TestOzoneRpcClientWithRatis |
   |   | hadoop.ozone.om.TestOzoneManagerHA |
   |   | hadoop.ozone.client.rpc.TestOzoneAtRestEncryption |
   |   | hadoop.ozone.client.rpc.TestOzoneClientRetriesOnException |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | Client=18.09.5 Server=18.09.5 base: 
https://builds.apache.org/job/hadoop-multibranch/job/PR-1006/10/artifact/out/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hadoop/pull/1006 |
   | Optional Tests | dupname asflicense compile javac javadoc mvninstall 
mvnsite unit shadedclient findbugs checkstyle |
   | uname | Linux 95409dcc34c1 4.15.0-48-generic #51-Ubuntu SMP Wed Apr 3 
08:28:49 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | personality/hadoop.sh |
   | git revision | trunk / 129576f |
   | Default Java | 1.8.0_212 |
   | unit | 
https://builds.apache.org/job/hadoop-multibranch/job/PR-1006/10/artifact/out/patch-unit-hadoop-ozone.txt
 |
   |  Test Results | 
https://builds.apache.org/job/hadoop-multibranch/job/PR-1006/10/testReport/ |
   | Max. process+thread count | 5389 (vs. ulimit of 5500) |
   | modules | C: hadoop-hdds/common hadoop-ozone/common U: . |
   | Console output | 
https://builds.apache.org/job/hadoop-multibranch/job/PR-1006/10/console |
   | versions | git=2.7.4 maven=3.3.9 findbugs=3.1.0-RC1 |
   | Powered by | Apache Yetus 0.10.0 http://yetus.apache.org |
   
   
   This message was automatically generated.
   
   
 

This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
---

Worklog Id: (was: 266228)
Time Spent: 3h 50m  (was: 3h 40m)

> Create new OzoneManagerLock class
> -
>
> Key: HDDS-1723
> URL: https://issues.apache.org/jira/browse/HDDS-1723
> Project: Hadoop Distributed Data Store
>  Issue Type: Improvement
>  Components: Ozone Manager
>Reporter: Bharat Viswanadham
>Assignee: Bharat 

[jira] [Work logged] (HDDS-1617) Restructure the code layout for Ozone Manager

2019-06-24 Thread ASF GitHub Bot (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDDS-1617?focusedWorklogId=266224=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-266224
 ]

ASF GitHub Bot logged work on HDDS-1617:


Author: ASF GitHub Bot
Created on: 25/Jun/19 00:07
Start Date: 25/Jun/19 00:07
Worklog Time Spent: 10m 
  Work Description: hadoop-yetus commented on issue #880: HDDS-1617. 
Restructure the code layout for Ozone Manager
URL: https://github.com/apache/hadoop/pull/880#issuecomment-505226258
 
 
   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | 0 | reexec | 30 | Docker mode activated. |
   ||| _ Prechecks _ |
   | +1 | dupname | 7 | No case conflicting files found. |
   | +1 | @author | 0 | The patch does not contain any @author tags. |
   | +1 | test4tests | 0 | The patch appears to include 42 new or modified test 
files. |
   ||| _ trunk Compile Tests _ |
   | 0 | mvndep | 65 | Maven dependency ordering for branch |
   | +1 | mvninstall | 469 | trunk passed |
   | +1 | compile | 243 | trunk passed |
   | +1 | checkstyle | 75 | trunk passed |
   | +1 | mvnsite | 0 | trunk passed |
   | +1 | shadedclient | 858 | branch has no errors when building and testing 
our client artifacts. |
   | +1 | javadoc | 161 | trunk passed |
   | 0 | spotbugs | 309 | Used deprecated FindBugs config; considering 
switching to SpotBugs. |
   | +1 | findbugs | 500 | trunk passed |
   ||| _ Patch Compile Tests _ |
   | 0 | mvndep | 29 | Maven dependency ordering for patch |
   | +1 | mvninstall | 429 | the patch passed |
   | +1 | compile | 263 | the patch passed |
   | +1 | cc | 263 | the patch passed |
   | +1 | javac | 263 | the patch passed |
   | -0 | checkstyle | 42 | hadoop-ozone: The patch generated 11 new + 0 
unchanged - 0 fixed = 11 total (was 0) |
   | +1 | mvnsite | 0 | the patch passed |
   | +1 | whitespace | 1 | The patch has no whitespace issues. |
   | +1 | shadedclient | 667 | patch has no errors when building and testing 
our client artifacts. |
   | +1 | javadoc | 160 | the patch passed |
   | +1 | findbugs | 518 | the patch passed |
   ||| _ Other Tests _ |
   | +1 | unit | 242 | hadoop-hdds in the patch passed. |
   | -1 | unit | 1095 | hadoop-ozone in the patch failed. |
   | +1 | asflicense | 43 | The patch does not generate ASF License warnings. |
   | | | 6121 | |
   
   
   | Reason | Tests |
   |---:|:--|
   | Failed junit tests | hadoop.ozone.client.rpc.TestOzoneRpcClient |
   |   | hadoop.ozone.client.rpc.TestOzoneAtRestEncryption |
   |   | hadoop.ozone.client.rpc.TestSecureOzoneRpcClient |
   |   | hadoop.ozone.TestMiniOzoneCluster |
   |   | hadoop.ozone.om.TestMultipleContainerReadWrite |
   |   | hadoop.ozone.client.rpc.TestOzoneRpcClientWithRatis |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | Client=17.05.0-ce Server=17.05.0-ce base: 
https://builds.apache.org/job/hadoop-multibranch/job/PR-880/2/artifact/out/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hadoop/pull/880 |
   | Optional Tests | dupname asflicense compile javac javadoc mvninstall 
mvnsite unit shadedclient findbugs checkstyle cc |
   | uname | Linux 5cc20d5333f3 4.4.0-139-generic #165-Ubuntu SMP Wed Oct 24 
10:58:50 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | personality/hadoop.sh |
   | git revision | trunk / 129576f |
   | Default Java | 1.8.0_212 |
   | checkstyle | 
https://builds.apache.org/job/hadoop-multibranch/job/PR-880/2/artifact/out/diff-checkstyle-hadoop-ozone.txt
 |
   | unit | 
https://builds.apache.org/job/hadoop-multibranch/job/PR-880/2/artifact/out/patch-unit-hadoop-ozone.txt
 |
   |  Test Results | 
https://builds.apache.org/job/hadoop-multibranch/job/PR-880/2/testReport/ |
   | Max. process+thread count | 5068 (vs. ulimit of 5500) |
   | modules | C: hadoop-hdds/common hadoop-ozone/common 
hadoop-ozone/integration-test hadoop-ozone/ozone-manager 
hadoop-ozone/ozone-recon hadoop-ozone/ozonefs hadoop-ozone/tools U: . |
   | Console output | 
https://builds.apache.org/job/hadoop-multibranch/job/PR-880/2/console |
   | versions | git=2.7.4 maven=3.3.9 findbugs=3.1.0-RC1 |
   | Powered by | Apache Yetus 0.10.0 http://yetus.apache.org |
   
   
   This message was automatically generated.
   
   
 

This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
---

Worklog Id: (was: 266224)
Time Spent: 2h 20m  (was: 2h 10m)

> Restructure the code layout for Ozone Manager
> -
>
>   

[jira] [Commented] (HDFS-13984) getFileInfo of libhdfs call NameNode#getFileStatus twice

2019-06-24 Thread Sahil Takiar (JIRA)


[ 
https://issues.apache.org/jira/browse/HDFS-13984?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16871888#comment-16871888
 ] 

Sahil Takiar commented on HDFS-13984:
-

Yeah, this makes sense to me.

[~yangjiandan]do you have plans to continue working on this?

A few comments:
 * Use {{javaObjectIsOfClass}} in {{jni_helper.h}}
 * The {{FileNotFoundException}} needs to be freed before returning null

> getFileInfo of libhdfs call NameNode#getFileStatus twice
> 
>
> Key: HDFS-13984
> URL: https://issues.apache.org/jira/browse/HDFS-13984
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: libhdfs
>Reporter: Jiandan Yang 
>Assignee: Jiandan Yang 
>Priority: Major
> Attachments: HDFS-13984.001.patch, HDFS-13984.002.patch, 
> HDFS-13984.003.patch
>
>
> getFileInfo in hdfs.c calls *FileSystem#exists* first, then calls 
> *FileSystem#getFileStatus*.  
> *FileSystem#exists* also call *FileSystem#getFileStatus*, just as follows:
> {code:java}
>   public boolean exists(Path f) throws IOException {
> try {
>   return getFileStatus(f) != null;
> } catch (FileNotFoundException e) {
>   return false;
> }
>   }
> {code}
> and finally this leads to call NameNodeRpcServer#getFileInfo twice.
> Actually we can implement by calling once.



--
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] [Work logged] (HDDS-1709) TestScmSafeNode is flaky

2019-06-24 Thread ASF GitHub Bot (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDDS-1709?focusedWorklogId=266220=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-266220
 ]

ASF GitHub Bot logged work on HDDS-1709:


Author: ASF GitHub Bot
Created on: 24/Jun/19 23:51
Start Date: 24/Jun/19 23:51
Worklog Time Spent: 10m 
  Work Description: bharatviswa504 commented on issue #993: HDDS-1709. 
TestScmSafeNode is flaky
URL: https://github.com/apache/hadoop/pull/993#issuecomment-505223323
 
 
   Thank You @elek for reporting and fixing the issue.
   +1 LGTM. Can you take care of checkstyle issue during the commit?
 

This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
---

Worklog Id: (was: 266220)
Time Spent: 0.5h  (was: 20m)

> TestScmSafeNode is flaky
> 
>
> Key: HDDS-1709
> URL: https://issues.apache.org/jira/browse/HDDS-1709
> Project: Hadoop Distributed Data Store
>  Issue Type: Bug
>  Components: SCM, test
>Reporter: Elek, Marton
>Assignee: Elek, Marton
>Priority: Critical
>  Labels: pull-request-available
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> org.apache.hadoop.ozone.om.TestScmSafeMode.testSCMSafeMode is failed at last 
> night with the following error:
> {code:java}
> java.lang.AssertionError at org.junit.Assert.fail(Assert.java:86) at 
> org.junit.Assert.assertTrue(Assert.java:41) at 
> org.junit.Assert.assertTrue(Assert.java:52) at 
> org.apache.hadoop.ozone.om.TestScmSafeMode.testSCMSafeMode(TestScmSafeMode.java:285)
>  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  at java.lang.reflect.Method.invoke(Method.java:498) at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
>  at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>  at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
>  at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
>  at 
> org.junit.internal.runners.statements.FailOnTimeout$StatementThread.run(FailOnTimeout.java:74){code}
> Locally it can be tested but it's very easy to reproduce by adding an 
> additional sleep DataNodeSafeModeRule:
> {code:java}
> +++ 
> b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/safemode/DataNodeSafeModeRule.java
> @@ -63,7 +63,11 @@ protected boolean validate() {
>  
>    @Override
>    protected void process(NodeRegistrationContainerReport reportsProto) {
> -
> +    try {
> +  Thread.sleep(3000);
> +    } catch (InterruptedException e) {
> +  e.printStackTrace();
> +    }{code}
> This is a clear race condition:
> DatanodeSafeModeRule and ContainerSafeModeRule are processing the same events 
> but it can be possible (in case of an accidental sleep) that the container 
> safe mode rule is done, but DatanodeSafeModeRule didn't process the new event 
> (yet).
> As a result the test execution will continue:
> {code:java}
> GenericTestUtils
> .waitFor(() -> scm.getCurrentContainerThreshold() == 1.0, 100, 2);
> {code}
> (This line is waiting ONLY for the ContainerSafeModeRule).
> The fix is easy, let's wait for the processing of all the async events:
> {code:java}
> EventQueue eventQueue =
> (EventQueue) cluster.getStorageContainerManager().getEventQueue();
> eventQueue.processAll(5000L);{code}
> As we are sure that the events are already sent to the EventQueue (because we 
> have the previous waitFor), it should be enough.



--
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] [Work logged] (HDDS-1666) Improve logic in openKey when allocating block

2019-06-24 Thread ASF GitHub Bot (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDDS-1666?focusedWorklogId=266219=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-266219
 ]

ASF GitHub Bot logged work on HDDS-1666:


Author: ASF GitHub Bot
Created on: 24/Jun/19 23:50
Start Date: 24/Jun/19 23:50
Worklog Time Spent: 10m 
  Work Description: hadoop-yetus commented on issue #943: HDDS-1666. Issue 
in openKey when allocating block.
URL: https://github.com/apache/hadoop/pull/943#issuecomment-505223055
 
 
   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | 0 | reexec | 30 | Docker mode activated. |
   ||| _ Prechecks _ |
   | +1 | dupname | 0 | No case conflicting files found. |
   | +1 | @author | 0 | The patch does not contain any @author tags. |
   | -1 | test4tests | 0 | 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. |
   ||| _ trunk Compile Tests _ |
   | +1 | mvninstall | 471 | trunk passed |
   | +1 | compile | 241 | trunk passed |
   | +1 | checkstyle | 61 | trunk passed |
   | +1 | mvnsite | 0 | trunk passed |
   | +1 | shadedclient | 787 | branch has no errors when building and testing 
our client artifacts. |
   | +1 | javadoc | 149 | trunk passed |
   | 0 | spotbugs | 345 | Used deprecated FindBugs config; considering 
switching to SpotBugs. |
   | +1 | findbugs | 558 | trunk passed |
   ||| _ Patch Compile Tests _ |
   | +1 | mvninstall | 464 | the patch passed |
   | +1 | compile | 256 | the patch passed |
   | +1 | javac | 256 | the patch passed |
   | +1 | checkstyle | 65 | the patch passed |
   | +1 | mvnsite | 0 | the patch passed |
   | +1 | whitespace | 0 | The patch has no whitespace issues. |
   | +1 | shadedclient | 658 | patch has no errors when building and testing 
our client artifacts. |
   | +1 | javadoc | 159 | the patch passed |
   | +1 | findbugs | 586 | the patch passed |
   ||| _ Other Tests _ |
   | +1 | unit | 248 | hadoop-hdds in the patch passed. |
   | -1 | unit | 1689 | hadoop-ozone in the patch failed. |
   | +1 | asflicense | 36 | The patch does not generate ASF License warnings. |
   | | | 6585 | |
   
   
   | Reason | Tests |
   |---:|:--|
   | Failed junit tests | hadoop.ozone.client.rpc.TestOzoneRpcClientWithRatis |
   |   | hadoop.ozone.client.rpc.TestOzoneAtRestEncryption |
   |   | hadoop.ozone.web.client.TestKeys |
   |   | hadoop.ozone.client.rpc.TestOzoneRpcClient |
   |   | hadoop.ozone.client.rpc.TestSecureOzoneRpcClient |
   |   | hadoop.ozone.om.TestKeyManagerImpl |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | Client=17.05.0-ce Server=17.05.0-ce base: 
https://builds.apache.org/job/hadoop-multibranch/job/PR-943/2/artifact/out/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hadoop/pull/943 |
   | Optional Tests | dupname asflicense compile javac javadoc mvninstall 
mvnsite unit shadedclient findbugs checkstyle |
   | uname | Linux cd17417896f4 4.4.0-138-generic #164-Ubuntu SMP Tue Oct 2 
17:16:02 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | personality/hadoop.sh |
   | git revision | trunk / 129576f |
   | Default Java | 1.8.0_212 |
   | unit | 
https://builds.apache.org/job/hadoop-multibranch/job/PR-943/2/artifact/out/patch-unit-hadoop-ozone.txt
 |
   |  Test Results | 
https://builds.apache.org/job/hadoop-multibranch/job/PR-943/2/testReport/ |
   | Max. process+thread count | 4169 (vs. ulimit of 5500) |
   | modules | C: hadoop-ozone/ozone-manager U: hadoop-ozone/ozone-manager |
   | Console output | 
https://builds.apache.org/job/hadoop-multibranch/job/PR-943/2/console |
   | versions | git=2.7.4 maven=3.3.9 findbugs=3.1.0-RC1 |
   | Powered by | Apache Yetus 0.10.0 http://yetus.apache.org |
   
   
   This message was automatically generated.
   
   
 

This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
---

Worklog Id: (was: 266219)
Time Spent: 0.5h  (was: 20m)

> Improve logic in openKey when allocating block
> --
>
> Key: HDDS-1666
> URL: https://issues.apache.org/jira/browse/HDDS-1666
> Project: Hadoop Distributed Data Store
>  Issue Type: Bug
>Reporter: Bharat Viswanadham
>Assignee: Bharat Viswanadham
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 

[jira] [Updated] (HDDS-1696) RocksDB use separate Write-ahead-log location for RocksDB.

2019-06-24 Thread ASF GitHub Bot (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDDS-1696?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated HDDS-1696:
-
Labels: pull-request-available  (was: )

> RocksDB use separate Write-ahead-log location for RocksDB.
> --
>
> Key: HDDS-1696
> URL: https://issues.apache.org/jira/browse/HDDS-1696
> Project: Hadoop Distributed Data Store
>  Issue Type: Bug
>Reporter: Bharat Viswanadham
>Assignee: Bharat Viswanadham
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 1h 40m
>  Remaining Estimate: 0h
>
> This will help on production systems where WAL logs and db actual data files 
> will be in a different location. During compaction, it will not affect actual 
> writes.
>  
> Suggested by [~msingh]



--
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] [Work logged] (HDDS-1696) RocksDB use separate Write-ahead-log location for RocksDB.

2019-06-24 Thread ASF GitHub Bot (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDDS-1696?focusedWorklogId=266214=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-266214
 ]

ASF GitHub Bot logged work on HDDS-1696:


Author: ASF GitHub Bot
Created on: 24/Jun/19 23:31
Start Date: 24/Jun/19 23:31
Worklog Time Spent: 10m 
  Work Description: bharatviswa504 commented on pull request #981: 
HDDS-1696. RocksDB use separate Write-ahead-log location for OM RocksDB.
URL: https://github.com/apache/hadoop/pull/981
 
 
   
 

This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
---

Worklog Id: (was: 266214)
Time Spent: 2h  (was: 1h 50m)

> RocksDB use separate Write-ahead-log location for RocksDB.
> --
>
> Key: HDDS-1696
> URL: https://issues.apache.org/jira/browse/HDDS-1696
> Project: Hadoop Distributed Data Store
>  Issue Type: Bug
>Reporter: Bharat Viswanadham
>Assignee: Bharat Viswanadham
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 2h
>  Remaining Estimate: 0h
>
> This will help on production systems where WAL logs and db actual data files 
> will be in a different location. During compaction, it will not affect actual 
> writes.
>  
> Suggested by [~msingh]



--
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] [Work logged] (HDDS-1723) Create new OzoneManagerLock class

2019-06-24 Thread ASF GitHub Bot (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDDS-1723?focusedWorklogId=266212=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-266212
 ]

ASF GitHub Bot logged work on HDDS-1723:


Author: ASF GitHub Bot
Created on: 24/Jun/19 23:31
Start Date: 24/Jun/19 23:31
Worklog Time Spent: 10m 
  Work Description: hadoop-yetus commented on issue #1006: HDDS-1723. 
Create new OzoneManagerLock class.
URL: https://github.com/apache/hadoop/pull/1006#issuecomment-505219271
 
 
   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | 0 | reexec | 29 | Docker mode activated. |
   ||| _ Prechecks _ |
   | +1 | dupname | 1 | No case conflicting files found. |
   | +1 | @author | 0 | The patch does not contain any @author tags. |
   | +1 | test4tests | 0 | The patch appears to include 2 new or modified test 
files. |
   ||| _ trunk Compile Tests _ |
   | 0 | mvndep | 20 | Maven dependency ordering for branch |
   | +1 | mvninstall | 449 | trunk passed |
   | +1 | compile | 241 | trunk passed |
   | +1 | checkstyle | 63 | trunk passed |
   | +1 | mvnsite | 0 | trunk passed |
   | +1 | shadedclient | 784 | branch has no errors when building and testing 
our client artifacts. |
   | +1 | javadoc | 141 | trunk passed |
   | 0 | spotbugs | 312 | Used deprecated FindBugs config; considering 
switching to SpotBugs. |
   | +1 | findbugs | 497 | trunk passed |
   ||| _ Patch Compile Tests _ |
   | 0 | mvndep | 28 | Maven dependency ordering for patch |
   | +1 | mvninstall | 412 | the patch passed |
   | +1 | compile | 238 | the patch passed |
   | +1 | javac | 238 | the patch passed |
   | -0 | checkstyle | 36 | hadoop-ozone: The patch generated 1 new + 0 
unchanged - 0 fixed = 1 total (was 0) |
   | +1 | mvnsite | 0 | the patch passed |
   | +1 | whitespace | 0 | The patch has no whitespace issues. |
   | +1 | shadedclient | 611 | patch has no errors when building and testing 
our client artifacts. |
   | +1 | javadoc | 159 | the patch passed |
   | +1 | findbugs | 531 | the patch passed |
   ||| _ Other Tests _ |
   | +1 | unit | 233 | hadoop-hdds in the patch passed. |
   | -1 | unit | 1058 | hadoop-ozone in the patch failed. |
   | +1 | asflicense | 49 | The patch does not generate ASF License warnings. |
   | | | 5743 | |
   
   
   | Reason | Tests |
   |---:|:--|
   | Failed junit tests | 
hadoop.ozone.client.rpc.TestOzoneClientRetriesOnException |
   |   | hadoop.ozone.client.rpc.TestOzoneRpcClient |
   |   | hadoop.ozone.client.rpc.TestOzoneRpcClientWithRatis |
   |   | hadoop.ozone.client.rpc.TestSecureOzoneRpcClient |
   |   | hadoop.ozone.client.rpc.TestOzoneAtRestEncryption |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | Client=17.05.0-ce Server=17.05.0-ce base: 
https://builds.apache.org/job/hadoop-multibranch/job/PR-1006/9/artifact/out/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hadoop/pull/1006 |
   | Optional Tests | dupname asflicense compile javac javadoc mvninstall 
mvnsite unit shadedclient findbugs checkstyle |
   | uname | Linux b89d15c3ec24 4.4.0-138-generic #164-Ubuntu SMP Tue Oct 2 
17:16:02 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | personality/hadoop.sh |
   | git revision | trunk / 129576f |
   | Default Java | 1.8.0_212 |
   | checkstyle | 
https://builds.apache.org/job/hadoop-multibranch/job/PR-1006/9/artifact/out/diff-checkstyle-hadoop-ozone.txt
 |
   | unit | 
https://builds.apache.org/job/hadoop-multibranch/job/PR-1006/9/artifact/out/patch-unit-hadoop-ozone.txt
 |
   |  Test Results | 
https://builds.apache.org/job/hadoop-multibranch/job/PR-1006/9/testReport/ |
   | Max. process+thread count | 4563 (vs. ulimit of 5500) |
   | modules | C: hadoop-hdds/common hadoop-ozone/common U: . |
   | Console output | 
https://builds.apache.org/job/hadoop-multibranch/job/PR-1006/9/console |
   | versions | git=2.7.4 maven=3.3.9 findbugs=3.1.0-RC1 |
   | Powered by | Apache Yetus 0.10.0 http://yetus.apache.org |
   
   
   This message was automatically generated.
   
   
 

This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
---

Worklog Id: (was: 266212)
Time Spent: 3h 40m  (was: 3.5h)

> Create new OzoneManagerLock class
> -
>
> Key: HDDS-1723
> URL: https://issues.apache.org/jira/browse/HDDS-1723
> Project: Hadoop Distributed Data Store
>  Issue Type: Improvement
>  Components: Ozone Manager
>   

[jira] [Work logged] (HDDS-1696) RocksDB use separate Write-ahead-log location for RocksDB.

2019-06-24 Thread ASF GitHub Bot (JIRA)


 [ 
https://issues.apache.org/jira/browse/HDDS-1696?focusedWorklogId=266213=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-266213
 ]

ASF GitHub Bot logged work on HDDS-1696:


Author: ASF GitHub Bot
Created on: 24/Jun/19 23:31
Start Date: 24/Jun/19 23:31
Worklog Time Spent: 10m 
  Work Description: bharatviswa504 commented on issue #981: HDDS-1696. 
RocksDB use separate Write-ahead-log location for OM RocksDB.
URL: https://github.com/apache/hadoop/pull/981#issuecomment-505219413
 
 
   Closing this, as there is a way to pass a .ini file and read the values and 
set the required rocksdb.
   Thank You @anuengineer and @arp7 for the info.
 

This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
---

Worklog Id: (was: 266213)
Time Spent: 1h 50m  (was: 1h 40m)

> RocksDB use separate Write-ahead-log location for RocksDB.
> --
>
> Key: HDDS-1696
> URL: https://issues.apache.org/jira/browse/HDDS-1696
> Project: Hadoop Distributed Data Store
>  Issue Type: Bug
>Reporter: Bharat Viswanadham
>Assignee: Bharat Viswanadham
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 1h 50m
>  Remaining Estimate: 0h
>
> This will help on production systems where WAL logs and db actual data files 
> will be in a different location. During compaction, it will not affect actual 
> writes.
>  
> Suggested by [~msingh]



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



  1   2   3   4   >