[jira] [Created] (HDFS-5665) Remove the unnecessary writeLock while initializing CacheManager in FsNameSystem Ctor

2013-12-13 Thread Uma Maheswara Rao G (JIRA)
Uma Maheswara Rao G created HDFS-5665:
-

 Summary: Remove the unnecessary writeLock while initializing 
CacheManager in FsNameSystem Ctor
 Key: HDFS-5665
 URL: https://issues.apache.org/jira/browse/HDFS-5665
 Project: Hadoop HDFS
  Issue Type: Improvement
  Components: namenode
Affects Versions: 2.2.0, 3.0.0
Reporter: Uma Maheswara Rao G
Assignee: Uma Maheswara Rao G


I just saw the below piece of code in Fsnamesystem ctor.

{code}
 writeLock();
  try {
this.cacheManager = new CacheManager(this, conf, blockManager);
  } finally {
writeUnlock();
  }
{code}

It seems unnecessary to keep writeLock here. I am not sure if there is a clear 
reason to keep the lock.




--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5665) Remove the unnecessary writeLock while initializing CacheManager in FsNameSystem Ctor

2013-12-13 Thread Uma Maheswara Rao G (JIRA)

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

Uma Maheswara Rao G commented on HDFS-5665:
---

Feel free to close this JIRA if you have a valid reason.

> Remove the unnecessary writeLock while initializing CacheManager in 
> FsNameSystem Ctor
> -
>
> Key: HDFS-5665
> URL: https://issues.apache.org/jira/browse/HDFS-5665
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: namenode
>Affects Versions: 3.0.0, 2.2.0
>Reporter: Uma Maheswara Rao G
>Assignee: Uma Maheswara Rao G
>
> I just saw the below piece of code in Fsnamesystem ctor.
> {code}
>  writeLock();
>   try {
> this.cacheManager = new CacheManager(this, conf, blockManager);
>   } finally {
> writeUnlock();
>   }
> {code}
> It seems unnecessary to keep writeLock here. I am not sure if there is a 
> clear reason to keep the lock.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5632) Add Snapshot feature to INodeDirectory

2013-12-13 Thread Tsz Wo (Nicholas), SZE (JIRA)

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

Tsz Wo (Nicholas), SZE commented on HDFS-5632:
--

Thanks Jing for picking this up.  Some minor comments on the patch:

- In INodeDirectory.recordModification, add snapshot feature only if 
!shouldRecordInSrcSnapshot(latest).

- DirectoryWithSnapshotFeature.ChildrenDiff does not need to be public.

- DirectoryDiff.getChildrenList can be private.

- We still replace INodeDirectory with INodeDirectorySnapshottable.  So the 
following comment is not accurate.
{code}
+  /** 
+   * Replace the given child with a new child. Note that we no longer need to
+   * replace an normal INodeDirectory or INodeFile into an
+   * INodeDirectoryWithSnapshot or INodeFileUnderConstruction. The only cases
+   * for child replacement is for reference nodes.
+   */
   public void replaceChild(INode oldChild, final INode newChild,
   final INodeMap inodeMap) {
{code}

- In INodeReference.destroyAndCollectBlocks code below, the referred node must 
be with snapshot so that we don't need "if (dir.isWithSnapshot())" but we 
should check precondition in 
DirectoryWithSnapshotFeature.destroyDstSubtree(..).  BTW, the comment needs to 
be updated.  It still refers "INodeDirectoryWithSnapshot".
{code}
   // similarly, if referred is a directory, it must be an
   // INodeDirectoryWithSnapshot
-  INodeDirectoryWithSnapshot sdir = 
-  (INodeDirectoryWithSnapshot) referred;
-  try {
-INodeDirectoryWithSnapshot.destroyDstSubtree(sdir, snapshot, prior,
-collectedBlocks, removedINodes);
-  } catch (QuotaExceededException e) {
-LOG.error("should not exceed quota while snapshot deletion", e);
+  INodeDirectory dir = referred.asDirectory();
+  if (dir.isWithSnapshot()) {
+try {
+  DirectoryWithSnapshotFeature.destroyDstSubtree(dir, snapshot,
+  prior, collectedBlocks, removedINodes);
+} catch (QuotaExceededException e) {
+  LOG.error("should not exceed quota while snapshot deletion", e);
+}
   }
{code}

- In DirectoryWithSnapshotFeature.cleanDeletedINode code below, we probably 
should getDirectoryWithSnapshotFeature() first but not calling 
isWithSnapshot().  Similarly, for destroyDstSubtree.
{code}
+if (dir.isWithSnapshot()) {
+  // delete files/dirs created after prior. Note that these
+  // files/dirs, along with inode, were deleted right after post.
+  DirectoryDiff priorDiff = 
dir.getDirectoryWithSnapshotFeature().getDiffs()
+  .getDiff(prior);
{code}

> Add Snapshot feature to INodeDirectory
> --
>
> Key: HDFS-5632
> URL: https://issues.apache.org/jira/browse/HDFS-5632
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: namenode
>Reporter: Jing Zhao
>Assignee: Jing Zhao
> Attachments: HDFS-5632.000.patch, HDFS-5632.001.patch, 
> HDFS-5632.002.patch
>
>
> We will add snapshot feature to INodeDirectory and remove 
> INodeDirectoryWithSnapshot in this jira.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-2832) Enable support for heterogeneous storages in HDFS

2013-12-13 Thread Hudson (JIRA)

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

Hudson commented on HDFS-2832:
--

FAILURE: Integrated in Hadoop-Yarn-trunk #420 (See 
[https://builds.apache.org/job/Hadoop-Yarn-trunk/420/])
HDFS-2832: Update binary file editsStored for TestOfflineEditsViewer (arp: 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1550364)
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/editsStored
svn merge --reintegrate 
https://svn.apache.org/repos/asf/hadoop/common/branches/HDFS-2832 for merging 
Heterogeneous Storage feature branch (arp: 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1550363)
* /hadoop/common/trunk
* /hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt
* /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/docs
* /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java
* /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/core
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSInputStream.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSOutputStream.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/StorageType.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/BlockListAsLongs.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/ClientProtocol.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/DatanodeID.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/DatanodeInfo.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/LayoutVersion.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/LocatedBlock.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/UnregisteredNodeException.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocolPB/ClientNamenodeProtocolServerSideTranslatorPB.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocolPB/ClientNamenodeProtocolTranslatorPB.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocolPB/DatanodeProtocolClientSideTranslatorPB.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocolPB/DatanodeProtocolServerSideTranslatorPB.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocolPB/InterDatanodeProtocolServerSideTranslatorPB.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocolPB/InterDatanodeProtocolTranslatorPB.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocolPB/PBHelper.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/balancer/Balancer.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockCollection.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockInfo.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockInfoUnderConstruction.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockPlacementPolicy.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockPlacementPolicyDefault.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockPlacementPolicyWithNodeGroup.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlocksMap.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor

[jira] [Commented] (HDFS-5637) try to refeatchToken while local read InvalidToken occurred

2013-12-13 Thread Hudson (JIRA)

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

Hudson commented on HDFS-5637:
--

FAILURE: Integrated in Hadoop-Yarn-trunk #420 (See 
[https://builds.apache.org/job/Hadoop-Yarn-trunk/420/])
HDFS-5637. Try to refeatchToken while local read InvalidToken occurred. (Liang 
Xie via junping_du) (junping_du: 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1550335)
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSInputStream.java


> try to refeatchToken while local read InvalidToken occurred
> ---
>
> Key: HDFS-5637
> URL: https://issues.apache.org/jira/browse/HDFS-5637
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: hdfs-client, security
>Affects Versions: 2.0.5-alpha, 2.2.0
>Reporter: Liang Xie
>Assignee: Liang Xie
> Fix For: 2.4.0
>
> Attachments: HDFS-5637-v2.txt, HDFS-5637.txt
>
>
> we observed several warning logs like below from region server nodes:
> 2013-12-05,13:22:26,042 WARN org.apache.hadoop.hdfs.DFSClient: Failed to 
> connect to /10.2.201.110:11402 for block, add to deadNodes and continue. 
> org.apache.hadoop.security.token.SecretManager$InvalidToken: Block token with 
> block_token_identifier (expiryDate=1386060141977, keyId=-333530248, 
> userId=hbase_srv, blockPoolId=BP-1310313570-10.101.10.66-1373527541386, 
> blockId=-190217754078101701, access modes=[READ]) is expired.
> at 
> org.apache.hadoop.hdfs.security.token.block.BlockTokenSecretManager.checkAccess(BlockTokenSecretManager.java:280)
> at 
> org.apache.hadoop.hdfs.security.token.block.BlockPoolTokenSecretManager.checkAccess(BlockPoolTokenSecretManager.java:88)
> at 
> org.apache.hadoop.hdfs.server.datanode.DataNode.checkBlockToken(DataNode.java:1082)
> at 
> org.apache.hadoop.hdfs.server.datanode.DataNode.getBlockLocalPathInfo(DataNode.java:1033)
> at 
> org.apache.hadoop.hdfs.protocolPB.ClientDatanodeProtocolServerSideTranslatorPB.getBlockLocalPathInfo(ClientDatanodeProtocolServerSideTranslatorPB.java:112)
> at 
> org.apache.hadoop.hdfs.protocol.proto.ClientDatanodeProtocolProtos$ClientDatanodeProtocolService$2.callBlockingMethod(ClientDatanodeProtocolProtos.java:5104)
> at 
> org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:453)
> at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:898)
> at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1693)
> at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1689)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAs(Subject.java:396)
> at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1332)
> at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1687)
> org.apache.hadoop.security.token.SecretManager$InvalidToken: Block token with 
> block_token_identifier (expiryDate=1386060141977, keyId=-333530248, 
> userId=hbase_srv, blockPoolId=BP-1310313570-10.101.10.66-1373527541386, 
> blockId=-190217754078101701, access modes=[READ]) is expired.
> at 
> org.apache.hadoop.hdfs.security.token.block.BlockTokenSecretManager.checkAccess(BlockTokenSecretManager.java:280)
> at 
> org.apache.hadoop.hdfs.security.token.block.BlockPoolTokenSecretManager.checkAccess(BlockPoolTokenSecretManager.java:88)
> at 
> org.apache.hadoop.hdfs.server.datanode.DataNode.checkBlockToken(DataNode.java:1082)
> at 
> org.apache.hadoop.hdfs.server.datanode.DataNode.getBlockLocalPathInfo(DataNode.java:1033)
> at 
> org.apache.hadoop.hdfs.protocolPB.ClientDatanodeProtocolServerSideTranslatorPB.getBlockLocalPathInfo(ClientDatanodeProtocolServerSideTranslatorPB.java:112)
> at 
> org.apache.hadoop.hdfs.protocol.proto.ClientDatanodeProtocolProtos$ClientDatanodeProtocolService$2.callBlockingMethod(ClientDatanodeProtocolProtos.java:5104)
> at 
> org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:453)
> at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:898)
> at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1693)
> at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1689)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAs(Subject.java:396)
> at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1332)
> at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1687)
> at sun.reflect

[jira] [Commented] (HDFS-5652) refactoring/uniforming invalid block token exception handling in DFSInputStream

2013-12-13 Thread Hudson (JIRA)

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

Hudson commented on HDFS-5652:
--

FAILURE: Integrated in Hadoop-Yarn-trunk #420 (See 
[https://builds.apache.org/job/Hadoop-Yarn-trunk/420/])
HDFS-5652. Refactor invalid block token exception handling in DFSInputStream. 
(Liang Xie via junping_du) (junping_du: 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1550620)
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSInputStream.java


> refactoring/uniforming invalid block token exception handling in 
> DFSInputStream
> ---
>
> Key: HDFS-5652
> URL: https://issues.apache.org/jira/browse/HDFS-5652
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: hdfs-client
>Affects Versions: 3.0.0, 2.2.0
>Reporter: Liang Xie
>Assignee: Liang Xie
>Priority: Minor
> Fix For: 2.4.0
>
> Attachments: HDFS-5652.txt
>
>
> See comments from Junping and Colin's from HDFS-5637



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-4201) NPE in BPServiceActor#sendHeartBeat

2013-12-13 Thread Hudson (JIRA)

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

Hudson commented on HDFS-4201:
--

FAILURE: Integrated in Hadoop-Yarn-trunk #420 (See 
[https://builds.apache.org/job/Hadoop-Yarn-trunk/420/])
HDFS-4201. NPE in BPServiceActor#sendHeartBeat (jxiang via cmccabe) (cmccabe: 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1550269)
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BPOfferService.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestBPOfferService.java


> NPE in BPServiceActor#sendHeartBeat
> ---
>
> Key: HDFS-4201
> URL: https://issues.apache.org/jira/browse/HDFS-4201
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: namenode
>Reporter: Eli Collins
>Assignee: Jimmy Xiang
>Priority: Critical
> Fix For: 2.3.0
>
> Attachments: trunk-4201.patch, trunk-4201_v2.patch, 
> trunk-4201_v3.patch
>
>
> Saw the following NPE in a log.
> Think this is likely due to {{dn}} or {{dn.getFSDataset()}} being null, (not 
> {{bpRegistration}}) due to a configuration or local directory failure.
> {code}
> 2012-09-25 04:33:20,782 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: 
> For namenode svsrs00127/11.164.162.226:8020 using DELETEREPORT_INTERVAL of 
> 30 msec  BLOCKREPORT_INTERVAL of 2160msec Initial delay: 0msec; 
> heartBeatInterval=3000
> 2012-09-25 04:33:20,782 ERROR 
> org.apache.hadoop.hdfs.server.datanode.DataNode: Exception in BPOfferService 
> for Block pool BP-1678908700-11.164.162.226-1342785481826 (storage id 
> DS-1031100678-11.164.162.251-5010-1341933415989) service to 
> svsrs00127/11.164.162.226:8020
> java.lang.NullPointerException
> at 
> org.apache.hadoop.hdfs.server.datanode.BPServiceActor.sendHeartBeat(BPServiceActor.java:434)
> at 
> org.apache.hadoop.hdfs.server.datanode.BPServiceActor.offerService(BPServiceActor.java:520)
> at 
> org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:673)
> at java.lang.Thread.run(Thread.java:722)
> {code}



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5647) Merge INodeDirectory.Feature and INodeFile.Feature

2013-12-13 Thread Hudson (JIRA)

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

Hudson commented on HDFS-5647:
--

FAILURE: Integrated in Hadoop-Yarn-trunk #420 (See 
[https://builds.apache.org/job/Hadoop-Yarn-trunk/420/])
HDFS-5647. Merge INodeDirectory.Feature and INodeFile.Feature. Contributed by 
Haohui Mai. (jing9: 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1550469)
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/DirectoryWithQuotaFeature.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FileUnderConstructionFeature.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INodeDirectory.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INodeFile.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INodeWithAdditionalFields.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/snapshot/FileWithSnapshotFeature.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestINodeFile.java


> Merge INodeDirectory.Feature and INodeFile.Feature
> --
>
> Key: HDFS-5647
> URL: https://issues.apache.org/jira/browse/HDFS-5647
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: namenode
>Reporter: Haohui Mai
>Assignee: Haohui Mai
> Fix For: 3.0.0
>
> Attachments: HDFS-5647.000.patch, HDFS-5647.001.patch, 
> HDFS-5647.002.patch, HDFS-5647.003.patch
>
>
> HDFS-4685 implements ACLs for HDFS, which can benefit from the INode features 
> introduced in HDFS-5284. The current code separates the INode feature of 
> INodeFile and INodeDirectory into two different class hierarchies. This 
> hinders the implementation of ACL since ACL is a concept that applies to both 
> INodeFile and INodeDirectory.
> This jira proposes to merge the two class hierarchies (i.e., 
> INodeDirectory.Feature and INodeFile.Feature) to simplify the implementation 
> of ACLs.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5023) TestSnapshotPathINodes.testAllowSnapshot is failing with jdk7

2013-12-13 Thread Hudson (JIRA)

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

Hudson commented on HDFS-5023:
--

FAILURE: Integrated in Hadoop-Yarn-trunk #420 (See 
[https://builds.apache.org/job/Hadoop-Yarn-trunk/420/])
HDFS-5023. TestSnapshotPathINodes.testAllowSnapshot is failing with jdk7 (Mit 
Desai via jeagles) (jeagles: 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1550261)
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSnapshotPathINodes.java


> TestSnapshotPathINodes.testAllowSnapshot is failing with jdk7
> -
>
> Key: HDFS-5023
> URL: https://issues.apache.org/jira/browse/HDFS-5023
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: snapshots, test
>Affects Versions: 3.0.0, 2.4.0
>Reporter: Ravi Prakash
>Assignee: Mit Desai
>  Labels: java7, test
> Fix For: 3.0.0, 2.4.0
>
> Attachments: HDFS-5023.patch, HDFS-5023.patch, HDFS-5023.patch, 
> TEST-org.apache.hadoop.hdfs.server.namenode.TestSnapshotPathINodes.xml, 
> org.apache.hadoop.hdfs.server.namenode.TestSnapshotPathINodes-output.txt
>
>
> The assertion on line 91 is failing. I am using Fedora 19 + JDK7. 



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5647) Merge INodeDirectory.Feature and INodeFile.Feature

2013-12-13 Thread Hudson (JIRA)

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

Hudson commented on HDFS-5647:
--

SUCCESS: Integrated in Hadoop-Hdfs-trunk #1611 (See 
[https://builds.apache.org/job/Hadoop-Hdfs-trunk/1611/])
HDFS-5647. Merge INodeDirectory.Feature and INodeFile.Feature. Contributed by 
Haohui Mai. (jing9: 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1550469)
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/DirectoryWithQuotaFeature.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FileUnderConstructionFeature.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INodeDirectory.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INodeFile.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INodeWithAdditionalFields.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/snapshot/FileWithSnapshotFeature.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestINodeFile.java


> Merge INodeDirectory.Feature and INodeFile.Feature
> --
>
> Key: HDFS-5647
> URL: https://issues.apache.org/jira/browse/HDFS-5647
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: namenode
>Reporter: Haohui Mai
>Assignee: Haohui Mai
> Fix For: 3.0.0
>
> Attachments: HDFS-5647.000.patch, HDFS-5647.001.patch, 
> HDFS-5647.002.patch, HDFS-5647.003.patch
>
>
> HDFS-4685 implements ACLs for HDFS, which can benefit from the INode features 
> introduced in HDFS-5284. The current code separates the INode feature of 
> INodeFile and INodeDirectory into two different class hierarchies. This 
> hinders the implementation of ACL since ACL is a concept that applies to both 
> INodeFile and INodeDirectory.
> This jira proposes to merge the two class hierarchies (i.e., 
> INodeDirectory.Feature and INodeFile.Feature) to simplify the implementation 
> of ACLs.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5652) refactoring/uniforming invalid block token exception handling in DFSInputStream

2013-12-13 Thread Hudson (JIRA)

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

Hudson commented on HDFS-5652:
--

SUCCESS: Integrated in Hadoop-Hdfs-trunk #1611 (See 
[https://builds.apache.org/job/Hadoop-Hdfs-trunk/1611/])
HDFS-5652. Refactor invalid block token exception handling in DFSInputStream. 
(Liang Xie via junping_du) (junping_du: 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1550620)
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSInputStream.java


> refactoring/uniforming invalid block token exception handling in 
> DFSInputStream
> ---
>
> Key: HDFS-5652
> URL: https://issues.apache.org/jira/browse/HDFS-5652
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: hdfs-client
>Affects Versions: 3.0.0, 2.2.0
>Reporter: Liang Xie
>Assignee: Liang Xie
>Priority: Minor
> Fix For: 2.4.0
>
> Attachments: HDFS-5652.txt
>
>
> See comments from Junping and Colin's from HDFS-5637



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5023) TestSnapshotPathINodes.testAllowSnapshot is failing with jdk7

2013-12-13 Thread Hudson (JIRA)

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

Hudson commented on HDFS-5023:
--

FAILURE: Integrated in Hadoop-Mapreduce-trunk #1637 (See 
[https://builds.apache.org/job/Hadoop-Mapreduce-trunk/1637/])
HDFS-5023. TestSnapshotPathINodes.testAllowSnapshot is failing with jdk7 (Mit 
Desai via jeagles) (jeagles: 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1550261)
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSnapshotPathINodes.java


> TestSnapshotPathINodes.testAllowSnapshot is failing with jdk7
> -
>
> Key: HDFS-5023
> URL: https://issues.apache.org/jira/browse/HDFS-5023
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: snapshots, test
>Affects Versions: 3.0.0, 2.4.0
>Reporter: Ravi Prakash
>Assignee: Mit Desai
>  Labels: java7, test
> Fix For: 3.0.0, 2.4.0
>
> Attachments: HDFS-5023.patch, HDFS-5023.patch, HDFS-5023.patch, 
> TEST-org.apache.hadoop.hdfs.server.namenode.TestSnapshotPathINodes.xml, 
> org.apache.hadoop.hdfs.server.namenode.TestSnapshotPathINodes-output.txt
>
>
> The assertion on line 91 is failing. I am using Fedora 19 + JDK7. 



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-2832) Enable support for heterogeneous storages in HDFS

2013-12-13 Thread Hudson (JIRA)

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

Hudson commented on HDFS-2832:
--

FAILURE: Integrated in Hadoop-Mapreduce-trunk #1637 (See 
[https://builds.apache.org/job/Hadoop-Mapreduce-trunk/1637/])
HDFS-2832: Update binary file editsStored for TestOfflineEditsViewer (arp: 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1550364)
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/editsStored
svn merge --reintegrate 
https://svn.apache.org/repos/asf/hadoop/common/branches/HDFS-2832 for merging 
Heterogeneous Storage feature branch (arp: 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1550363)
* /hadoop/common/trunk
* /hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt
* /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/docs
* /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java
* /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/core
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSInputStream.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSOutputStream.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/StorageType.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/BlockListAsLongs.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/ClientProtocol.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/DatanodeID.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/DatanodeInfo.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/LayoutVersion.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/LocatedBlock.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/UnregisteredNodeException.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocolPB/ClientNamenodeProtocolServerSideTranslatorPB.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocolPB/ClientNamenodeProtocolTranslatorPB.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocolPB/DatanodeProtocolClientSideTranslatorPB.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocolPB/DatanodeProtocolServerSideTranslatorPB.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocolPB/InterDatanodeProtocolServerSideTranslatorPB.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocolPB/InterDatanodeProtocolTranslatorPB.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocolPB/PBHelper.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/balancer/Balancer.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockCollection.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockInfo.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockInfoUnderConstruction.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockPlacementPolicy.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockPlacementPolicyDefault.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockPlacementPolicyWithNodeGroup.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlocksMap.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/Datano

[jira] [Commented] (HDFS-5647) Merge INodeDirectory.Feature and INodeFile.Feature

2013-12-13 Thread Hudson (JIRA)

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

Hudson commented on HDFS-5647:
--

FAILURE: Integrated in Hadoop-Mapreduce-trunk #1637 (See 
[https://builds.apache.org/job/Hadoop-Mapreduce-trunk/1637/])
HDFS-5647. Merge INodeDirectory.Feature and INodeFile.Feature. Contributed by 
Haohui Mai. (jing9: 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1550469)
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/DirectoryWithQuotaFeature.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FileUnderConstructionFeature.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INodeDirectory.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INodeFile.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INodeWithAdditionalFields.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/snapshot/FileWithSnapshotFeature.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestINodeFile.java


> Merge INodeDirectory.Feature and INodeFile.Feature
> --
>
> Key: HDFS-5647
> URL: https://issues.apache.org/jira/browse/HDFS-5647
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: namenode
>Reporter: Haohui Mai
>Assignee: Haohui Mai
> Fix For: 3.0.0
>
> Attachments: HDFS-5647.000.patch, HDFS-5647.001.patch, 
> HDFS-5647.002.patch, HDFS-5647.003.patch
>
>
> HDFS-4685 implements ACLs for HDFS, which can benefit from the INode features 
> introduced in HDFS-5284. The current code separates the INode feature of 
> INodeFile and INodeDirectory into two different class hierarchies. This 
> hinders the implementation of ACL since ACL is a concept that applies to both 
> INodeFile and INodeDirectory.
> This jira proposes to merge the two class hierarchies (i.e., 
> INodeDirectory.Feature and INodeFile.Feature) to simplify the implementation 
> of ACLs.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5637) try to refeatchToken while local read InvalidToken occurred

2013-12-13 Thread Hudson (JIRA)

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

Hudson commented on HDFS-5637:
--

FAILURE: Integrated in Hadoop-Mapreduce-trunk #1637 (See 
[https://builds.apache.org/job/Hadoop-Mapreduce-trunk/1637/])
HDFS-5637. Try to refeatchToken while local read InvalidToken occurred. (Liang 
Xie via junping_du) (junping_du: 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1550335)
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSInputStream.java


> try to refeatchToken while local read InvalidToken occurred
> ---
>
> Key: HDFS-5637
> URL: https://issues.apache.org/jira/browse/HDFS-5637
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: hdfs-client, security
>Affects Versions: 2.0.5-alpha, 2.2.0
>Reporter: Liang Xie
>Assignee: Liang Xie
> Fix For: 2.4.0
>
> Attachments: HDFS-5637-v2.txt, HDFS-5637.txt
>
>
> we observed several warning logs like below from region server nodes:
> 2013-12-05,13:22:26,042 WARN org.apache.hadoop.hdfs.DFSClient: Failed to 
> connect to /10.2.201.110:11402 for block, add to deadNodes and continue. 
> org.apache.hadoop.security.token.SecretManager$InvalidToken: Block token with 
> block_token_identifier (expiryDate=1386060141977, keyId=-333530248, 
> userId=hbase_srv, blockPoolId=BP-1310313570-10.101.10.66-1373527541386, 
> blockId=-190217754078101701, access modes=[READ]) is expired.
> at 
> org.apache.hadoop.hdfs.security.token.block.BlockTokenSecretManager.checkAccess(BlockTokenSecretManager.java:280)
> at 
> org.apache.hadoop.hdfs.security.token.block.BlockPoolTokenSecretManager.checkAccess(BlockPoolTokenSecretManager.java:88)
> at 
> org.apache.hadoop.hdfs.server.datanode.DataNode.checkBlockToken(DataNode.java:1082)
> at 
> org.apache.hadoop.hdfs.server.datanode.DataNode.getBlockLocalPathInfo(DataNode.java:1033)
> at 
> org.apache.hadoop.hdfs.protocolPB.ClientDatanodeProtocolServerSideTranslatorPB.getBlockLocalPathInfo(ClientDatanodeProtocolServerSideTranslatorPB.java:112)
> at 
> org.apache.hadoop.hdfs.protocol.proto.ClientDatanodeProtocolProtos$ClientDatanodeProtocolService$2.callBlockingMethod(ClientDatanodeProtocolProtos.java:5104)
> at 
> org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:453)
> at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:898)
> at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1693)
> at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1689)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAs(Subject.java:396)
> at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1332)
> at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1687)
> org.apache.hadoop.security.token.SecretManager$InvalidToken: Block token with 
> block_token_identifier (expiryDate=1386060141977, keyId=-333530248, 
> userId=hbase_srv, blockPoolId=BP-1310313570-10.101.10.66-1373527541386, 
> blockId=-190217754078101701, access modes=[READ]) is expired.
> at 
> org.apache.hadoop.hdfs.security.token.block.BlockTokenSecretManager.checkAccess(BlockTokenSecretManager.java:280)
> at 
> org.apache.hadoop.hdfs.security.token.block.BlockPoolTokenSecretManager.checkAccess(BlockPoolTokenSecretManager.java:88)
> at 
> org.apache.hadoop.hdfs.server.datanode.DataNode.checkBlockToken(DataNode.java:1082)
> at 
> org.apache.hadoop.hdfs.server.datanode.DataNode.getBlockLocalPathInfo(DataNode.java:1033)
> at 
> org.apache.hadoop.hdfs.protocolPB.ClientDatanodeProtocolServerSideTranslatorPB.getBlockLocalPathInfo(ClientDatanodeProtocolServerSideTranslatorPB.java:112)
> at 
> org.apache.hadoop.hdfs.protocol.proto.ClientDatanodeProtocolProtos$ClientDatanodeProtocolService$2.callBlockingMethod(ClientDatanodeProtocolProtos.java:5104)
> at 
> org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:453)
> at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:898)
> at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1693)
> at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1689)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAs(Subject.java:396)
> at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1332)
> at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1687)
> at

[jira] [Commented] (HDFS-5652) refactoring/uniforming invalid block token exception handling in DFSInputStream

2013-12-13 Thread Hudson (JIRA)

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

Hudson commented on HDFS-5652:
--

FAILURE: Integrated in Hadoop-Mapreduce-trunk #1637 (See 
[https://builds.apache.org/job/Hadoop-Mapreduce-trunk/1637/])
HDFS-5652. Refactor invalid block token exception handling in DFSInputStream. 
(Liang Xie via junping_du) (junping_du: 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1550620)
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSInputStream.java


> refactoring/uniforming invalid block token exception handling in 
> DFSInputStream
> ---
>
> Key: HDFS-5652
> URL: https://issues.apache.org/jira/browse/HDFS-5652
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: hdfs-client
>Affects Versions: 3.0.0, 2.2.0
>Reporter: Liang Xie
>Assignee: Liang Xie
>Priority: Minor
> Fix For: 2.4.0
>
> Attachments: HDFS-5652.txt
>
>
> See comments from Junping and Colin's from HDFS-5637



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-4201) NPE in BPServiceActor#sendHeartBeat

2013-12-13 Thread Hudson (JIRA)

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

Hudson commented on HDFS-4201:
--

FAILURE: Integrated in Hadoop-Mapreduce-trunk #1637 (See 
[https://builds.apache.org/job/Hadoop-Mapreduce-trunk/1637/])
HDFS-4201. NPE in BPServiceActor#sendHeartBeat (jxiang via cmccabe) (cmccabe: 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1550269)
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BPOfferService.java
* 
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestBPOfferService.java


> NPE in BPServiceActor#sendHeartBeat
> ---
>
> Key: HDFS-4201
> URL: https://issues.apache.org/jira/browse/HDFS-4201
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: namenode
>Reporter: Eli Collins
>Assignee: Jimmy Xiang
>Priority: Critical
> Fix For: 2.3.0
>
> Attachments: trunk-4201.patch, trunk-4201_v2.patch, 
> trunk-4201_v3.patch
>
>
> Saw the following NPE in a log.
> Think this is likely due to {{dn}} or {{dn.getFSDataset()}} being null, (not 
> {{bpRegistration}}) due to a configuration or local directory failure.
> {code}
> 2012-09-25 04:33:20,782 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: 
> For namenode svsrs00127/11.164.162.226:8020 using DELETEREPORT_INTERVAL of 
> 30 msec  BLOCKREPORT_INTERVAL of 2160msec Initial delay: 0msec; 
> heartBeatInterval=3000
> 2012-09-25 04:33:20,782 ERROR 
> org.apache.hadoop.hdfs.server.datanode.DataNode: Exception in BPOfferService 
> for Block pool BP-1678908700-11.164.162.226-1342785481826 (storage id 
> DS-1031100678-11.164.162.251-5010-1341933415989) service to 
> svsrs00127/11.164.162.226:8020
> java.lang.NullPointerException
> at 
> org.apache.hadoop.hdfs.server.datanode.BPServiceActor.sendHeartBeat(BPServiceActor.java:434)
> at 
> org.apache.hadoop.hdfs.server.datanode.BPServiceActor.offerService(BPServiceActor.java:520)
> at 
> org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:673)
> at java.lang.Thread.run(Thread.java:722)
> {code}



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5484) StorageType and State in DatanodeStorageInfo in NameNode is not accurate

2013-12-13 Thread Eric Sirianni (JIRA)

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

Eric Sirianni commented on HDFS-5484:
-

This fix was basically nullified by the following change made via HDFS-5542

{code}
+  DatanodeStorageInfo updateStorage(DatanodeStorage s) {
 synchronized (storageMap) {
   DatanodeStorageInfo storage = storageMap.get(s.getStorageID());
   if (storage == null) {
@@ -670,8 +658,6 @@
  " for DN " + getXferAddr());
 storage = new DatanodeStorageInfo(this, s);
 storageMap.put(s.getStorageID(), storage);
-  } else {
-storage.setState(s.getState());
   }
   return storage;
 }
{code}

Is there a reason that 'else' was removed?  By no longer updating the state in 
the {{BlockReport}} processing path, we effectively get the bogus state & type 
that is set via the first heartbeat (see the fix for HDFS-5455):

{code}
+  if (storage == null) {
+// This is seen during cluster initialization when the heartbeat
+// is received before the initial block reports from each storage.
+storage = updateStorage(new DatanodeStorage(report.getStorageID()));
{code}

Even reverting the change and reintroducing the 'else' leaves the state & type 
temporarily inaccurate until the first block report.  Wouldn't a better fix be 
to simply include the full {{DatanodeStorage}} object in the {{StorageReport}} 
(as opposed to only the Storage ID)?

As a matter of bookkeeping, should I reopen this JIRA, or would you prefer a 
new one be created?

> StorageType and State in DatanodeStorageInfo in NameNode is not accurate
> 
>
> Key: HDFS-5484
> URL: https://issues.apache.org/jira/browse/HDFS-5484
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: datanode
>Affects Versions: Heterogeneous Storage (HDFS-2832)
>Reporter: Eric Sirianni
> Fix For: Heterogeneous Storage (HDFS-2832)
>
> Attachments: HDFS-5484-HDFS-2832--2.patch, HDFS-5484-HDFS-2832.patch
>
>
> The fields in DatanodeStorageInfo are updated from two distinct paths:
> # block reports
> # storage reports (via heartbeats)
> The {{state}} and {{storageType}} fields are updated via the Block Report.  
> However, as seen in the code blow, these fields are populated from a "dummy" 
> {{DatanodeStorage}} object constructed in the DataNode:
> {code}
> BPServiceActor.blockReport() {
> //...
> // Dummy DatanodeStorage object just for sending the block report.
> DatanodeStorage dnStorage = new DatanodeStorage(storageID);
> //...
> }
> {code}
> The net effect is that the {{state}} and {{storageType}} fields are always 
> the default of {{NORMAL}} and {{DISK}} in the NameNode.
> The recommended fix is to change {{FsDatasetSpi.getBlockReports()}} from:
> {code}
> public Map getBlockReports(String bpid);
> {code}
> to:
> {code}
> public Map getBlockReports(String bpid);
> {code}
> thereby allowing {{BPServiceActor}} to send the "real" {{DatanodeStorage}} 
> object with the block report.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Updated] (HDFS-5663) make the retry time and interval value configurable in openInfo()

2013-12-13 Thread Liang Xie (JIRA)

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

Liang Xie updated HDFS-5663:


Attachment: HDFS-5663.txt

Attached is a trivial patch for it.

> make the retry time and interval value configurable in openInfo()
> -
>
> Key: HDFS-5663
> URL: https://issues.apache.org/jira/browse/HDFS-5663
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: hdfs-client
>Affects Versions: 3.0.0, 2.2.0
>Reporter: Liang Xie
>Assignee: Liang Xie
> Attachments: HDFS-5663.txt
>
>
> The original idea raised from Michael here: 
> https://issues.apache.org/jira/browse/HDFS-1605?focusedCommentId=13846972&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13846972
> It would be better to have a lower interval value especially for online 
> service, like HBase.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Work started] (HDFS-5660) When SSL is enabled , the Namenode WEBUI redirects to Infosecport, which could be 0

2013-12-13 Thread Benoy Antony (JIRA)

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

Work on HDFS-5660 started by Benoy Antony.

> When SSL is enabled , the Namenode WEBUI redirects to Infosecport, which 
> could be 0
> ---
>
> Key: HDFS-5660
> URL: https://issues.apache.org/jira/browse/HDFS-5660
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 2.2.0
>Reporter: Benoy Antony
>Assignee: Benoy Antony
> Attachments: HDFS-5660.patch
>
>
> (case 1) When SSL is enabled by setting "hadoop.ssl.enabled", SSL will be 
> enabled on the regular port (infoport) on Datanode. 
>  (case 2) When SSL on HDFS is enabled by setting "dfs.https.enable", SSL will 
> be enabled on a separate port (infoSecurePort)  on Datanode. 
> if SSL is enabled , the Namenode always redirects to infoSecurePort. 
> "infoSecurePort" will be 0 in case 1 above.
> This breaks the file browsing via web.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Work started] (HDFS-5661) Browsing FileSystem via web ui, should use datanode's hostname instead of ip address

2013-12-13 Thread Benoy Antony (JIRA)

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

Work on HDFS-5661 started by Benoy Antony.

> Browsing FileSystem via web ui, should use datanode's hostname instead of ip 
> address
> 
>
> Key: HDFS-5661
> URL: https://issues.apache.org/jira/browse/HDFS-5661
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 2.2.0
>Reporter: Benoy Antony
>Assignee: Benoy Antony
> Attachments: HDFS-5661.patch
>
>
> If authentication is enabled on the web ui, then a cookie is used to keep 
> track of the authentication information. There is normally a domain 
> associated with the cookie. Since ip address doesn't have any domain , the 
> cookie will not be sent by the browser while making http calls with ip 
> address as the destination server.
> This will break browsing files system via web ui , if authentication is 
> enabled.
> Browsing FileSystem via web ui, should use datanode's hostname instead of ip 
> address. 



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Updated] (HDFS-5663) make the retry time and interval value configurable in openInfo()

2013-12-13 Thread Liang Xie (JIRA)

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

Liang Xie updated HDFS-5663:


Status: Patch Available  (was: Open)

> make the retry time and interval value configurable in openInfo()
> -
>
> Key: HDFS-5663
> URL: https://issues.apache.org/jira/browse/HDFS-5663
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: hdfs-client
>Affects Versions: 2.2.0, 3.0.0
>Reporter: Liang Xie
>Assignee: Liang Xie
> Attachments: HDFS-5663.txt
>
>
> The original idea raised from Michael here: 
> https://issues.apache.org/jira/browse/HDFS-1605?focusedCommentId=13846972&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13846972
> It would be better to have a lower interval value especially for online 
> service, like HBase.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5365) Fix libhdfs compile error on FreeBSD9

2013-12-13 Thread Chris Nauroth (JIRA)

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

Chris Nauroth commented on HDFS-5365:
-

Hi Radim,

Unfortunately, this can't be merged to branch-2.2.  AFAIK, there are not any 
additional 2.2.x releases on the schedule, and the plan is to proceed with 
2.3.x forward:

https://wiki.apache.org/hadoop/Roadmap

Therefore, if we committed code to branch-2.2 now, then it wouldn't actually go 
into a release.

I have confirmed that your patch is in branch-2.3 for inclusion in the 2.3.0 
release, currently targeted for mid-December.  If the plan changes and we 
decide to add another 2.2.x release on the schedule, then you could nominate 
this patch for inclusion and we'd commit it at that time.  It seems unlikely at 
this point though.


> Fix libhdfs compile error on FreeBSD9
> -
>
> Key: HDFS-5365
> URL: https://issues.apache.org/jira/browse/HDFS-5365
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: build, libhdfs
>Affects Versions: 3.0.0, 2.2.0
>Reporter: Radim Kolar
>Assignee: Radim Kolar
>  Labels: build
> Fix For: 3.0.0, 2.3.0
>
> Attachments: hdfs-bsd.txt
>
>
> native library do not compiles on freebsd because:
> * dlopen is in libc
> * limits.h include is missing



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5663) make the retry time and interval value configurable in openInfo()

2013-12-13 Thread stack (JIRA)

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

stack commented on HDFS-5663:
-

+1

> make the retry time and interval value configurable in openInfo()
> -
>
> Key: HDFS-5663
> URL: https://issues.apache.org/jira/browse/HDFS-5663
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: hdfs-client
>Affects Versions: 3.0.0, 2.2.0
>Reporter: Liang Xie
>Assignee: Liang Xie
> Attachments: HDFS-5663.txt
>
>
> The original idea raised from Michael here: 
> https://issues.apache.org/jira/browse/HDFS-1605?focusedCommentId=13846972&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13846972
> It would be better to have a lower interval value especially for online 
> service, like HBase.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5496) Make replication queue initialization asynchronous

2013-12-13 Thread Jing Zhao (JIRA)

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

Jing Zhao commented on HDFS-5496:
-

Thanks for the further explanation, Vinay. Now I see what you mean.
{code}
blockManager.clearQueues();
blockManager.processAllPendingDNMessages();
{code}
In my previous comment, I thought you also planned to remove the clearQueues() 
call.. 

So if we clear all the queues, and continue with the ongoing initialization, 
the blocks that were processed before the startActiveService call will not be 
re-processed? I.e., we finally will generate the replication queues for only 
part of the blocks.

> Make replication queue initialization asynchronous
> --
>
> Key: HDFS-5496
> URL: https://issues.apache.org/jira/browse/HDFS-5496
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: namenode
>Reporter: Kihwal Lee
>Assignee: Vinay
> Attachments: HDFS-5496.patch, HDFS-5496.patch
>
>
> Today, initialization of replication queues blocks safe mode exit and certain 
> HA state transitions. For a big name space, this can take hundreds of seconds 
> with the FSNamesystem write lock held.  During this time, important requests 
> (e.g. initial block reports, heartbeat, etc) are blocked.
> The effect of delaying the initialization would be not starting replication 
> right away, but I think the benefit outweighs. If we make it asynchronous, 
> the work per iteration should be limited, so that the lock duration is 
> capped. 
> If full/incremental block reports and any other requests that modifies block 
> state properly performs replication checks while the blocks are scanned and 
> the queues populated in background, every block will be processed. (Some may 
> be done twice)  The replication monitor should run even before all blocks are 
> processed.
> This will allow namenode to exit safe mode and start serving immediately even 
> with a big name space. It will also reduce the HA failover latency.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5660) When SSL is enabled , the Namenode WEBUI redirects to Infosecport, which could be 0

2013-12-13 Thread Benoy Antony (JIRA)

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

Benoy Antony commented on HDFS-5660:


I can get HDFS SSL work using  dfs.https.enable  and 3 additional configs ( NN 
port , DN port and keystore config.) 
With this scheme, two ports on NN and each data node will be opened. These 
additional ports will not be used in our case. 
I am doing all these steps just so that infosecurePort is set to 1006  which is 
essentially what this patch does. 



> When SSL is enabled , the Namenode WEBUI redirects to Infosecport, which 
> could be 0
> ---
>
> Key: HDFS-5660
> URL: https://issues.apache.org/jira/browse/HDFS-5660
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 2.2.0
>Reporter: Benoy Antony
>Assignee: Benoy Antony
> Attachments: HDFS-5660.patch
>
>
> (case 1) When SSL is enabled by setting "hadoop.ssl.enabled", SSL will be 
> enabled on the regular port (infoport) on Datanode. 
>  (case 2) When SSL on HDFS is enabled by setting "dfs.https.enable", SSL will 
> be enabled on a separate port (infoSecurePort)  on Datanode. 
> if SSL is enabled , the Namenode always redirects to infoSecurePort. 
> "infoSecurePort" will be 0 in case 1 above.
> This breaks the file browsing via web.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5661) Browsing FileSystem via web ui, should use datanode's hostname instead of ip address

2013-12-13 Thread Haohui Mai (JIRA)

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

Haohui Mai commented on HDFS-5661:
--

The namenode and the datanode have different origins therefore the browser will 
not attach the cookies when making a request to the datanode. Redirecting using 
the domain name will not help.

> Browsing FileSystem via web ui, should use datanode's hostname instead of ip 
> address
> 
>
> Key: HDFS-5661
> URL: https://issues.apache.org/jira/browse/HDFS-5661
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 2.2.0
>Reporter: Benoy Antony
>Assignee: Benoy Antony
> Attachments: HDFS-5661.patch
>
>
> If authentication is enabled on the web ui, then a cookie is used to keep 
> track of the authentication information. There is normally a domain 
> associated with the cookie. Since ip address doesn't have any domain , the 
> cookie will not be sent by the browser while making http calls with ip 
> address as the destination server.
> This will break browsing files system via web ui , if authentication is 
> enabled.
> Browsing FileSystem via web ui, should use datanode's hostname instead of ip 
> address. 



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5660) When SSL is enabled , the Namenode WEBUI redirects to Infosecport, which could be 0

2013-12-13 Thread Haohui Mai (JIRA)

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

Haohui Mai commented on HDFS-5660:
--

This is the expected behavior. Again, the bug no longer exists in 2.2. I 
suggest closing this bug as invalid.

> When SSL is enabled , the Namenode WEBUI redirects to Infosecport, which 
> could be 0
> ---
>
> Key: HDFS-5660
> URL: https://issues.apache.org/jira/browse/HDFS-5660
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 2.2.0
>Reporter: Benoy Antony
>Assignee: Benoy Antony
> Attachments: HDFS-5660.patch
>
>
> (case 1) When SSL is enabled by setting "hadoop.ssl.enabled", SSL will be 
> enabled on the regular port (infoport) on Datanode. 
>  (case 2) When SSL on HDFS is enabled by setting "dfs.https.enable", SSL will 
> be enabled on a separate port (infoSecurePort)  on Datanode. 
> if SSL is enabled , the Namenode always redirects to infoSecurePort. 
> "infoSecurePort" will be 0 in case 1 above.
> This breaks the file browsing via web.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Assigned] (HDFS-5659) dfsadmin -report doesn't output cache information properly

2013-12-13 Thread Andrew Wang (JIRA)

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

Andrew Wang reassigned HDFS-5659:
-

Assignee: Andrew Wang

> dfsadmin -report doesn't output cache information properly
> --
>
> Key: HDFS-5659
> URL: https://issues.apache.org/jira/browse/HDFS-5659
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: caching
>Affects Versions: 3.0.0
>Reporter: Akira AJISAKA
>Assignee: Andrew Wang
>
> I tried to cache a file by "hdfs cacheadmin -addDirective".
> I thought the file was cached because "CacheUsed" at jmx was more than 0.
> {code}
> {
> "name" : 
> "Hadoop:service=DataNode,name=FSDatasetState-DS-1043926324-172.28.0.102-50010-1385087929296",
> "modelerType" : 
> "org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetImpl",
> "Remaining" : 5604772597760,
> "StorageInfo" : "FSDataset{dirpath='[/hadoop/data1/dfs/data/current, 
> /hadoop/data2/dfs/data/current, /hadoop/data3/dfs/data/current]'}",
> "Capacity" : 5905374474240,
> "DfsUsed" : 11628544,
> "CacheCapacity" : 1073741824,
> "CacheUsed" : 360448,
> "NumFailedVolumes" : 0,
> "NumBlocksCached" : 1,
> "NumBlocksFailedToCache" : 0,
> "NumBlocksFailedToUncache" : 0
>   },
> {code}
> But "dfsadmin -report" didn't output the same value as jmx.
> {code}
> Configured Cache Capacity: 0 (0 B)
> Cache Used: 0 (0 B)
> Cache Remaining: 0 (0 B)
> Cache Used%: 100.00%
> Cache Remaining%: 0.00%
> {code}



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5663) make the retry time and interval value configurable in openInfo()

2013-12-13 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HDFS-5663:
-

{color:red}-1 overall{color}.  Here are the results of testing the latest 
attachment 
  http://issues.apache.org/jira/secure/attachment/12618620/HDFS-5663.txt
  against trunk revision .

{color:green}+1 @author{color}.  The patch does not contain any @author 
tags.

{color:red}-1 tests included{color}.  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:green}+1 javac{color}.  The applied patch does not increase the 
total number of javac compiler warnings.

{color:green}+1 javadoc{color}.  The javadoc tool did not generate any 
warning messages.

{color:green}+1 eclipse:eclipse{color}.  The patch built with 
eclipse:eclipse.

{color:green}+1 findbugs{color}.  The patch does not introduce any new 
Findbugs (version 1.3.9) warnings.

{color:green}+1 release audit{color}.  The applied patch does not increase 
the total number of release audit warnings.

{color:red}-1 core tests{color}.  The patch failed these unit tests in 
hadoop-hdfs-project/hadoop-hdfs:

  org.apache.hadoop.hdfs.server.namenode.TestStartup

{color:green}+1 contrib tests{color}.  The patch passed contrib unit tests.

Test results: 
https://builds.apache.org/job/PreCommit-HDFS-Build/5712//testReport/
Console output: https://builds.apache.org/job/PreCommit-HDFS-Build/5712//console

This message is automatically generated.

> make the retry time and interval value configurable in openInfo()
> -
>
> Key: HDFS-5663
> URL: https://issues.apache.org/jira/browse/HDFS-5663
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: hdfs-client
>Affects Versions: 3.0.0, 2.2.0
>Reporter: Liang Xie
>Assignee: Liang Xie
> Attachments: HDFS-5663.txt
>
>
> The original idea raised from Michael here: 
> https://issues.apache.org/jira/browse/HDFS-1605?focusedCommentId=13846972&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13846972
> It would be better to have a lower interval value especially for online 
> service, like HBase.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5661) Browsing FileSystem via web ui, should use datanode's hostname instead of ip address

2013-12-13 Thread Benoy Antony (JIRA)

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

Benoy Antony commented on HDFS-5661:


Browser visits namenode.domainname.com:50070 .  "hadoopauth" cookie is dropped 
with domain as "domainname.com". User clicks "browse File system" on the webui 
and browser gets redirected to ADataNode.domainname.com:1006 . Then the browser 
will send cookies to ADataNode.domainname.com  .   

Without this patch, when user clicks "browse File system" on the webui and gets 
redirected to datanodeipaddress:1006  and hence no cookies will be sent. 


> Browsing FileSystem via web ui, should use datanode's hostname instead of ip 
> address
> 
>
> Key: HDFS-5661
> URL: https://issues.apache.org/jira/browse/HDFS-5661
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 2.2.0
>Reporter: Benoy Antony
>Assignee: Benoy Antony
> Attachments: HDFS-5661.patch
>
>
> If authentication is enabled on the web ui, then a cookie is used to keep 
> track of the authentication information. There is normally a domain 
> associated with the cookie. Since ip address doesn't have any domain , the 
> cookie will not be sent by the browser while making http calls with ip 
> address as the destination server.
> This will break browsing files system via web ui , if authentication is 
> enabled.
> Browsing FileSystem via web ui, should use datanode's hostname instead of ip 
> address. 



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5634) allow BlockReaderLocal to switch between checksumming and not

2013-12-13 Thread Colin Patrick McCabe (JIRA)

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

Colin Patrick McCabe commented on HDFS-5634:


bq. I examined this code more carefully, and I found that it was actually using 
LIFO at the moment.

Err, sorry, I mis-spoke.  It is FIFO.  Unfortunately, {{ConcurrentLinkedDeque}} 
is not in JDK6 (although it is in JDK7), so it will be hard to test with LIFO 
here.

> allow BlockReaderLocal to switch between checksumming and not
> -
>
> Key: HDFS-5634
> URL: https://issues.apache.org/jira/browse/HDFS-5634
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs-client
>Affects Versions: 3.0.0
>Reporter: Colin Patrick McCabe
>Assignee: Colin Patrick McCabe
> Attachments: HDFS-5634.001.patch, HDFS-5634.002.patch, 
> HDFS-5634.003.patch, HDFS-5634.004.patch
>
>
> BlockReaderLocal should be able to switch between checksumming and 
> non-checksumming, so that when we get notifications that something is mlocked 
> (see HDFS-5182), we can avoid checksumming when reading from that block.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5484) StorageType and State in DatanodeStorageInfo in NameNode is not accurate

2013-12-13 Thread Arpit Agarwal (JIRA)

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

Arpit Agarwal commented on HDFS-5484:
-

Let's create a new Jira.

I am fine with adding the {{DatanodeStorage}} object to {{StorageReportProto}}. 
It needs to be a new optional field and we cannot remove the existing 
{{StorageUuid}} for protocol compatibility.

> StorageType and State in DatanodeStorageInfo in NameNode is not accurate
> 
>
> Key: HDFS-5484
> URL: https://issues.apache.org/jira/browse/HDFS-5484
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: datanode
>Affects Versions: Heterogeneous Storage (HDFS-2832)
>Reporter: Eric Sirianni
> Fix For: Heterogeneous Storage (HDFS-2832)
>
> Attachments: HDFS-5484-HDFS-2832--2.patch, HDFS-5484-HDFS-2832.patch
>
>
> The fields in DatanodeStorageInfo are updated from two distinct paths:
> # block reports
> # storage reports (via heartbeats)
> The {{state}} and {{storageType}} fields are updated via the Block Report.  
> However, as seen in the code blow, these fields are populated from a "dummy" 
> {{DatanodeStorage}} object constructed in the DataNode:
> {code}
> BPServiceActor.blockReport() {
> //...
> // Dummy DatanodeStorage object just for sending the block report.
> DatanodeStorage dnStorage = new DatanodeStorage(storageID);
> //...
> }
> {code}
> The net effect is that the {{state}} and {{storageType}} fields are always 
> the default of {{NORMAL}} and {{DISK}} in the NameNode.
> The recommended fix is to change {{FsDatasetSpi.getBlockReports()}} from:
> {code}
> public Map getBlockReports(String bpid);
> {code}
> to:
> {code}
> public Map getBlockReports(String bpid);
> {code}
> thereby allowing {{BPServiceActor}} to send the "real" {{DatanodeStorage}} 
> object with the block report.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5661) Browsing FileSystem via web ui, should use datanode's hostname instead of ip address

2013-12-13 Thread Haohui Mai (JIRA)

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

Haohui Mai commented on HDFS-5661:
--

I'm curious how you manage to pass the cookie to the datanode. Even with your 
patch, the cookies should not be passed from the namenode and the datanode.

The browser is not supposed to shared the cookies. An origin is defined by the 
scheme, host, and port of a URL[1], where two hosts with the same hostname but 
different ports are considered different origins.

The browsers implement the same-origin policy, where the cookies are isolated 
in different origins [2].

[1] http://www.w3.org/Security/wiki/Same_Origin_Policy
[2] https://code.google.com/p/browsersec/wiki/Part2#Same-origin_policy

> Browsing FileSystem via web ui, should use datanode's hostname instead of ip 
> address
> 
>
> Key: HDFS-5661
> URL: https://issues.apache.org/jira/browse/HDFS-5661
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 2.2.0
>Reporter: Benoy Antony
>Assignee: Benoy Antony
> Attachments: HDFS-5661.patch
>
>
> If authentication is enabled on the web ui, then a cookie is used to keep 
> track of the authentication information. There is normally a domain 
> associated with the cookie. Since ip address doesn't have any domain , the 
> cookie will not be sent by the browser while making http calls with ip 
> address as the destination server.
> This will break browsing files system via web ui , if authentication is 
> enabled.
> Browsing FileSystem via web ui, should use datanode's hostname instead of ip 
> address. 



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5661) Browsing FileSystem via web ui, should use datanode's hostname instead of ip address

2013-12-13 Thread Jing Zhao (JIRA)

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

Jing Zhao commented on HDFS-5661:
-

For the redirect, I think we are using DelegationToken which is included in the 
redirect URL? Thus we do not need to worry about hostname/ip address here I 
guess.

> Browsing FileSystem via web ui, should use datanode's hostname instead of ip 
> address
> 
>
> Key: HDFS-5661
> URL: https://issues.apache.org/jira/browse/HDFS-5661
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 2.2.0
>Reporter: Benoy Antony
>Assignee: Benoy Antony
> Attachments: HDFS-5661.patch
>
>
> If authentication is enabled on the web ui, then a cookie is used to keep 
> track of the authentication information. There is normally a domain 
> associated with the cookie. Since ip address doesn't have any domain , the 
> cookie will not be sent by the browser while making http calls with ip 
> address as the destination server.
> This will break browsing files system via web ui , if authentication is 
> enabled.
> Browsing FileSystem via web ui, should use datanode's hostname instead of ip 
> address. 



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Created] (HDFS-5666) TestBPOfferService#/testBPInitErrorHandling fails intermittently

2013-12-13 Thread Colin Patrick McCabe (JIRA)
Colin Patrick McCabe created HDFS-5666:
--

 Summary: TestBPOfferService#/testBPInitErrorHandling fails 
intermittently
 Key: HDFS-5666
 URL: https://issues.apache.org/jira/browse/HDFS-5666
 Project: Hadoop HDFS
  Issue Type: Bug
  Components: test
Affects Versions: 2.4.0
Reporter: Colin Patrick McCabe
Priority: Minor


Intermittent failure on this test:

{code}
Regression

org.apache.hadoop.hdfs.server.datanode.TestBPOfferService.testBPInitErrorHandling

Failing for the past 1 build (Since #5698 )
Took 0.16 sec.

Error Message

expected:<1> but was:<2>

Stacktrace

java.lang.AssertionError: expected:<1> but was:<2>
at org.junit.Assert.fail(Assert.java:93)
at org.junit.Assert.failNotEquals(Assert.java:647)
at org.junit.Assert.assertEquals(Assert.java:128)
{code}

see 
https://builds.apache.org/job/PreCommit-HDFS-Build/5698//testReport/org.apache.hadoop.hdfs.server.datanode/TestBPOfferService/testBPInitErrorHandling/



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5634) allow BlockReaderLocal to switch between checksumming and not

2013-12-13 Thread Andrew Wang (JIRA)

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

Andrew Wang commented on HDFS-5634:
---

Thanks for being patient with me, I think I finally grok what's going on.

bq. 

Alright. It seems odd for datanodeID and block to ever be null since they're 
used to key the FISCache, but okay. Still, we're currently not setting the 
caching strategy in DFSInputStream#getBlockReader when pulling something out of 
the FISCache, should we?

bq. We always buffer at least a single chunk, even if readahead is turned off. 
The mechanics of checksumming require this.

In {{fillDataBuf(boolean)}}, it looks like we try to fill 
{{maxReadaheadLength}} modulo the slop. If this is zero, what happens? I think 
we need to take the checksum chunk size into account here somewhere.

It'd also be good to have test coverage for all these different read paths and 
parameter combinations. It looks like TestParallel* already cover the 
ByteBuffer and array variants of read with and without checksums, but we also 
need to permute on different readahead sizes (e.g. 0, chunk-1, chunk+1). 
Unfortunately even though the array and BB versions are almost the same, they 
don't share any code, so we should probably still permute on that axis.

With the new getter, we could use that instead of passing around 
{{canSkipChecksum}} everywhere, but I'm unsure if mlock toggling has 
implications here. Your call.

There's still BlockReaderFactory#newBlockReader using verifyChecksum rather 
than skipChecksum. Do you want to change this one too? There are only 6 usages 
from what I see.

bq. 

Yea, let's just skip this idea for now. We really should use a profiler for 
guidance before trying optimizations anyway. That'd be interesting to do later.

bq. 

I was thinking user documentation in hdfs-default.xml for 
"dfs.client.read.shortcircuit.buffer.size" and "dfs.datanode.readahead.bytes" 
but I see you filed a follow-on for that. It also feels inconsistent that the 
datanode defaults to 4MB readahead while the client looks like it defaults to 
0, but maybe there's some reasoning there.

> allow BlockReaderLocal to switch between checksumming and not
> -
>
> Key: HDFS-5634
> URL: https://issues.apache.org/jira/browse/HDFS-5634
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs-client
>Affects Versions: 3.0.0
>Reporter: Colin Patrick McCabe
>Assignee: Colin Patrick McCabe
> Attachments: HDFS-5634.001.patch, HDFS-5634.002.patch, 
> HDFS-5634.003.patch, HDFS-5634.004.patch
>
>
> BlockReaderLocal should be able to switch between checksumming and 
> non-checksumming, so that when we get notifications that something is mlocked 
> (see HDFS-5182), we can avoid checksumming when reading from that block.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Updated] (HDFS-5454) DataNode UUID should be assigned prior to FsDataset initialization

2013-12-13 Thread Arpit Agarwal (JIRA)

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

Arpit Agarwal updated HDFS-5454:


Attachment: HDFS-5454.02.patch

Updated patch.

> DataNode UUID should be assigned prior to FsDataset initialization
> --
>
> Key: HDFS-5454
> URL: https://issues.apache.org/jira/browse/HDFS-5454
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: datanode
>Affects Versions: 3.0.0
>Reporter: Eric Sirianni
>Priority: Minor
> Attachments: HDFS-5454.01.patch, HDFS-5454.02.patch
>
>
> The DataNode's UUID ({{DataStorage.getDatanodeUuid()}} field) is NULL at the 
> point where the {{FsDataset}} object is created ({{DataNode.initStorage()}}.  
> As the {{DataStorage}} object is an input to the {{FsDataset}} factory 
> method, it is desirable for it to be fully populated with a UUID at this 
> point.  In particular, our {{FsDatasetSpi}} implementation relies upon the 
> DataNode UUID as a key to access our underlying block storage device.
> This also appears to be a regression compared to Hadoop 1.x - our 1.x 
> {{FSDatasetInterface}} plugin has a non-NULL UUID on startup.  I haven't 
> fully traced through the code, but I suspect this came from the 
> {{BPOfferService}}/{{BPServiceActor}} refactoring to support federated 
> namenodes.
> With HDFS-5448, the DataNode is now responsible for generating its own UUID.  
> This greatly simplifies the fix.  Move the UUID check/generation in from 
> {{DataNode.createBPRegistration()}} to {{DataNode.initStorage()}}.  This more 
> naturally co-locates UUID generation immediately subsequent to the read of 
> the UUID from the {{DataStorage}} properties file.
> {code}
>   private void initStorage(final NamespaceInfo nsInfo) throws IOException {
> // ...
>   final String bpid = nsInfo.getBlockPoolID();
>   //read storage info, lock data dirs and transition fs state if necessary
>   storage.recoverTransitionRead(this, bpid, nsInfo, dataDirs, startOpt);
>   
>   // SUGGESTED NEW PLACE TO CHECK DATANODE UUID
>   checkDatanodeUuid();
> // ...
>   }
> {code}



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5350) Name Node should report fsimage transfer time as a metric

2013-12-13 Thread Andrew Wang (JIRA)

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

Andrew Wang commented on HDFS-5350:
---

Hey Jimmy, thanks for the patch. It looks pretty good, just a few review 
comments:

* GetImageServlet is used to transfer both images and edits. Since these look 
like they should be image-only metrics, we need to move the timing out of 
serveFile (which is used for both) into the right if statement. I think this is 
also more clear, since now all the timing will be in the same function.
* Could you add a new test to TestNameNodeMetrics showing that this gets 
updated as expected?

> Name Node should report fsimage transfer time as a metric
> -
>
> Key: HDFS-5350
> URL: https://issues.apache.org/jira/browse/HDFS-5350
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: namenode
>Reporter: Rob Weltman
>Assignee: Jimmy Xiang
>Priority: Minor
> Fix For: 3.0.0
>
> Attachments: trunk-5350.patch
>
>
> If the (Secondary) Name Node reported fsimage transfer times (perhaps the 
> last ten of them), monitoring tools could detect slowdowns that might 
> jeopardize cluster stability.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5634) allow BlockReaderLocal to switch between checksumming and not

2013-12-13 Thread Colin Patrick McCabe (JIRA)

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

Colin Patrick McCabe commented on HDFS-5634:


bq. Alright. It seems odd for datanodeID and block to ever be null since 
they're used to key the FISCache, but okay. Still, we're currently not setting 
the caching strategy in DFSInputStream#getBlockReader when pulling something 
out of the FISCache, should we?

Definitely.  Fixed.

bq. In fillDataBuf(boolean), it looks like we try to fill maxReadaheadLength 
modulo the slop. If this is zero, what happens? I think we need to take the 
checksum chunk size into account here somewhere.

This is a bug.  Basically it's a corner case where we need to fudge the user's 
no-readahead request into a short-readahead request when doing a checksummed 
read.  Will fix...

bq. It'd also be good to have test coverage for all these different read paths 
and parameter combinations. It looks like TestParallel* already cover the 
ByteBuffer and array variants of read with and without checksums, but we also 
need to permute on different readahead sizes (e.g. 0, chunk-1, chunk+1). 
Unfortunately even though the array and BB versions are almost the same, they 
don't share any code, so we should probably still permute on that axis.

I think the main thing is to have coverage for the no-readahead + checksum 
case, which we don't really now.  Having a test that did chunk-1 readahead, to 
verify that the round-up functionality worked, would also be a good idea.

bq. With the new getter, we could use that instead of passing around 
canSkipChecksum everywhere, but I'm unsure if mlock toggling has implications 
here. Your call.

Accessing the atomic boolean does have a performance overhead that I wanted to 
avoid.  Also, as you said, it might change, which could create problems.

bq. I was thinking user documentation in hdfs-default.xml for 
"dfs.client.read.shortcircuit.buffer.size" and "dfs.datanode.readahead.bytes" 
but I see you filed a follow-on for that. It also feels inconsistent that the 
datanode defaults to 4MB readahead while the client looks like it defaults to 
0, but maybe there's some reasoning there.

Actually, the client defaults to "null" readahead which usually means the 
datanode gets to decide.  I guess it's a bit of a confusing construct, but here 
it is:

{code}
Long readahead = (conf.get(DFS_CLIENT_CACHE_READAHEAD) == null) ?
null : conf.getLong(DFS_CLIENT_CACHE_READAHEAD, 0);
{code}

In {{BlockReaderLocal}} I am defaulting to {{dfs.datanode.readahead.bytes}} 
when the client's value is null.  If we wanted to be totally consistent with 
how remote reads work, we'd have to get the readahead default from the DataNode 
as part of the RPC.  That seems a little bit like overkill, though.

bq. There's still BlockReaderFactory#newBlockReader using verifyChecksum rather 
than skipChecksum. Do you want to change this one too? There are only 6 usages 
from what I see.

OK.

> allow BlockReaderLocal to switch between checksumming and not
> -
>
> Key: HDFS-5634
> URL: https://issues.apache.org/jira/browse/HDFS-5634
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs-client
>Affects Versions: 3.0.0
>Reporter: Colin Patrick McCabe
>Assignee: Colin Patrick McCabe
> Attachments: HDFS-5634.001.patch, HDFS-5634.002.patch, 
> HDFS-5634.003.patch, HDFS-5634.004.patch
>
>
> BlockReaderLocal should be able to switch between checksumming and 
> non-checksumming, so that when we get notifications that something is mlocked 
> (see HDFS-5182), we can avoid checksumming when reading from that block.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5656) add some configuration keys to hdfs-default.xml

2013-12-13 Thread Colin Patrick McCabe (JIRA)

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

Colin Patrick McCabe commented on HDFS-5656:


also: dfs.datanode.readahead.bytes, dfs.client.read.shortcircuit.buffer.size

> add some configuration keys to hdfs-default.xml
> ---
>
> Key: HDFS-5656
> URL: https://issues.apache.org/jira/browse/HDFS-5656
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 2.3.0
>Reporter: Colin Patrick McCabe
>Priority: Minor
>
> Some configuration keys like {{dfs.client.read.shortcircuit}} are not present 
> in {{hdfs-default.xml}} as they should be.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5656) add some configuration keys to hdfs-default.xml

2013-12-13 Thread Colin Patrick McCabe (JIRA)

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

Colin Patrick McCabe commented on HDFS-5656:


bq. I'll add that "dfs.client.cache.readahead" doesn't have a default value in 
DFSConfigKeys too.

Its default value is null, meaning that the datanode decides what readahead is 
(when doing remote reads)

> add some configuration keys to hdfs-default.xml
> ---
>
> Key: HDFS-5656
> URL: https://issues.apache.org/jira/browse/HDFS-5656
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 2.3.0
>Reporter: Colin Patrick McCabe
>Priority: Minor
>
> Some configuration keys like {{dfs.client.read.shortcircuit}} are not present 
> in {{hdfs-default.xml}} as they should be.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5665) Remove the unnecessary writeLock while initializing CacheManager in FsNameSystem Ctor

2013-12-13 Thread Colin Patrick McCabe (JIRA)

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

Colin Patrick McCabe commented on HDFS-5665:


I agree-- I think it would be fine to initialize this without holding the 
writeLock.

> Remove the unnecessary writeLock while initializing CacheManager in 
> FsNameSystem Ctor
> -
>
> Key: HDFS-5665
> URL: https://issues.apache.org/jira/browse/HDFS-5665
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: namenode
>Affects Versions: 3.0.0, 2.2.0
>Reporter: Uma Maheswara Rao G
>Assignee: Uma Maheswara Rao G
>
> I just saw the below piece of code in Fsnamesystem ctor.
> {code}
>  writeLock();
>   try {
> this.cacheManager = new CacheManager(this, conf, blockManager);
>   } finally {
> writeUnlock();
>   }
> {code}
> It seems unnecessary to keep writeLock here. I am not sure if there is a 
> clear reason to keep the lock.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5664) try to relieve the BlockReaderLocal read() synchronized hotspot

2013-12-13 Thread Colin Patrick McCabe (JIRA)

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

Colin Patrick McCabe commented on HDFS-5664:


A single {{DFSInputStream}} is designed to be used by a single thread only.  We 
don't allow multiple reads from multiple threads on the same stream to go 
forward at the same time.  So I don't see how making {{BlockReader}} (or a 
subclass like {{BlockReaderLocal}}) concurrent would help at all, since there 
would still be a big "synchronized" on all the {{DFSInputStream#read}} methods 
which use the {{BlockReader}}.

If multiple threads want to read the same file at the same time, they can open 
multiple distinct streams for it.  At that point, they're not sharing the same 
{{BlockReader}}, so whether or not BRL is synchronized doesn't matter.

> try to relieve the BlockReaderLocal read() synchronized hotspot
> ---
>
> Key: HDFS-5664
> URL: https://issues.apache.org/jira/browse/HDFS-5664
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: hdfs-client
>Affects Versions: 3.0.0, 2.2.0
>Reporter: Liang Xie
>Assignee: Liang Xie
>
> Current the BlockReaderLocal's read has a synchronized modifier:
> {code}
> public synchronized int read(byte[] buf, int off, int len) throws IOException 
> {
> {code}
> In a HBase physical read heavy cluster, we observed some hotspots from 
> dfsclient path, the detail strace trace could be found from: 
> https://issues.apache.org/jira/browse/HDFS-1605?focusedCommentId=13843241&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13843241
> I haven't looked into the detail yet, put some raw ideas here firstly:
> 1) replace synchronized with try lock with timeout pattern, so could 
> fail-fast,  2) fallback to non-ssr mode if get a local reader lock failed.
> There're two suitable scenario at least to remove this hotspot:
> 1) Local physical read heavy, e.g. HBase block cache miss ratio is high
> 2) slow/bad disk.
> It would be helpful to achive a lower 99th percentile HBase read latency 
> somehow.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Created] (HDFS-5667) StorageType and State in DatanodeStorageInfo in NameNode is not accurate

2013-12-13 Thread Eric Sirianni (JIRA)
Eric Sirianni created HDFS-5667:
---

 Summary: StorageType and State in DatanodeStorageInfo in NameNode 
is not accurate
 Key: HDFS-5667
 URL: https://issues.apache.org/jira/browse/HDFS-5667
 Project: Hadoop HDFS
  Issue Type: Sub-task
  Components: datanode
Affects Versions: Heterogeneous Storage (HDFS-2832)
Reporter: Eric Sirianni
 Fix For: Heterogeneous Storage (HDFS-2832)


The fields in DatanodeStorageInfo are updated from two distinct paths:
# block reports
# storage reports (via heartbeats)

The {{state}} and {{storageType}} fields are updated via the Block Report.  
However, as seen in the code blow, these fields are populated from a "dummy" 
{{DatanodeStorage}} object constructed in the DataNode:
{code}
BPServiceActor.blockReport() {
//...
// Dummy DatanodeStorage object just for sending the block report.
DatanodeStorage dnStorage = new DatanodeStorage(storageID);
//...
}
{code}

The net effect is that the {{state}} and {{storageType}} fields are always the 
default of {{NORMAL}} and {{DISK}} in the NameNode.

The recommended fix is to change {{FsDatasetSpi.getBlockReports()}} from:
{code}
public Map getBlockReports(String bpid);
{code}
to:
{code}
public Map getBlockReports(String bpid);
{code}
thereby allowing {{BPServiceActor}} to send the "real" {{DatanodeStorage}} 
object with the block report.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Updated] (HDFS-5667) StorageType and State in DatanodeStorageInfo in NameNode is not accurate

2013-12-13 Thread Eric Sirianni (JIRA)

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

Eric Sirianni updated HDFS-5667:


Description: 
The fix for HDFS-5484 was accidentally regressed by the following change made 
via HDFS-5542
{code}
+  DatanodeStorageInfo updateStorage(DatanodeStorage s) {
 synchronized (storageMap) {
   DatanodeStorageInfo storage = storageMap.get(s.getStorageID());
   if (storage == null) {
@@ -670,8 +658,6 @@
  " for DN " + getXferAddr());
 storage = new DatanodeStorageInfo(this, s);
 storageMap.put(s.getStorageID(), storage);
-  } else {
-storage.setState(s.getState());
   }
   return storage;
 }
{code}

By removing the 'else' and no longer updating the state in the BlockReport 
processing path, we effectively get the bogus state & type that is set via the 
first heartbeat (see the fix for HDFS-5455):

{code}
+  if (storage == null) {
+// This is seen during cluster initialization when the heartbeat
+// is received before the initial block reports from each storage.
+storage = updateStorage(new DatanodeStorage(report.getStorageID()));
{code}
Even reverting the change and reintroducing the 'else' leaves the state & type 
temporarily inaccurate until the first block report. 

As discussed with [~arpitagarwal], a better fix would be to simply include the 
full DatanodeStorage object in the StorageReport (as opposed to only the 
Storage ID).  This requires adding the {{DatanodeStorage}} object to 
{{StorageReportProto}}. It needs to be a new optional field and we cannot 
remove the existing {{StorageUuid}} for protocol compatibility.

  was:
The fields in DatanodeStorageInfo are updated from two distinct paths:
# block reports
# storage reports (via heartbeats)

The {{state}} and {{storageType}} fields are updated via the Block Report.  
However, as seen in the code blow, these fields are populated from a "dummy" 
{{DatanodeStorage}} object constructed in the DataNode:
{code}
BPServiceActor.blockReport() {
//...
// Dummy DatanodeStorage object just for sending the block report.
DatanodeStorage dnStorage = new DatanodeStorage(storageID);
//...
}
{code}

The net effect is that the {{state}} and {{storageType}} fields are always the 
default of {{NORMAL}} and {{DISK}} in the NameNode.

The recommended fix is to change {{FsDatasetSpi.getBlockReports()}} from:
{code}
public Map getBlockReports(String bpid);
{code}
to:
{code}
public Map getBlockReports(String bpid);
{code}
thereby allowing {{BPServiceActor}} to send the "real" {{DatanodeStorage}} 
object with the block report.


> StorageType and State in DatanodeStorageInfo in NameNode is not accurate
> 
>
> Key: HDFS-5667
> URL: https://issues.apache.org/jira/browse/HDFS-5667
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: datanode
>Affects Versions: Heterogeneous Storage (HDFS-2832)
>Reporter: Eric Sirianni
> Fix For: Heterogeneous Storage (HDFS-2832)
>
>
> The fix for HDFS-5484 was accidentally regressed by the following change made 
> via HDFS-5542
> {code}
> +  DatanodeStorageInfo updateStorage(DatanodeStorage s) {
>  synchronized (storageMap) {
>DatanodeStorageInfo storage = storageMap.get(s.getStorageID());
>if (storage == null) {
> @@ -670,8 +658,6 @@
>   " for DN " + getXferAddr());
>  storage = new DatanodeStorageInfo(this, s);
>  storageMap.put(s.getStorageID(), storage);
> -  } else {
> -storage.setState(s.getState());
>}
>return storage;
>  }
> {code}
> By removing the 'else' and no longer updating the state in the BlockReport 
> processing path, we effectively get the bogus state & type that is set via 
> the first heartbeat (see the fix for HDFS-5455):
> {code}
> +  if (storage == null) {
> +// This is seen during cluster initialization when the heartbeat
> +// is received before the initial block reports from each storage.
> +storage = updateStorage(new DatanodeStorage(report.getStorageID()));
> {code}
> Even reverting the change and reintroducing the 'else' leaves the state & 
> type temporarily inaccurate until the first block report. 
> As discussed with [~arpitagarwal], a better fix would be to simply include 
> the full DatanodeStorage object in the StorageReport (as opposed to only the 
> Storage ID).  This requires adding the {{DatanodeStorage}} object to 
> {{StorageReportProto}}. It needs to be a new optional field and we cannot 
> remove the existing {{StorageUuid}} for protocol compatibility.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Updated] (HDFS-5667) StorageType and State in DatanodeStorageInfo in NameNode is not accurate

2013-12-13 Thread Eric Sirianni (JIRA)

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

Eric Sirianni updated HDFS-5667:


Description: 
The fix for HDFS-5484 was accidentally regressed by the following change made 
via HDFS-5542
{code}
+  DatanodeStorageInfo updateStorage(DatanodeStorage s) {
 synchronized (storageMap) {
   DatanodeStorageInfo storage = storageMap.get(s.getStorageID());
   if (storage == null) {
@@ -670,8 +658,6 @@
  " for DN " + getXferAddr());
 storage = new DatanodeStorageInfo(this, s);
 storageMap.put(s.getStorageID(), storage);
-  } else {
-storage.setState(s.getState());
   }
   return storage;
 }
{code}

By removing the 'else' and no longer updating the state in the BlockReport 
processing path, we effectively get the bogus state & type that is set via the 
first heartbeat (see the fix for HDFS-5455):

{code}
+  if (storage == null) {
+// This is seen during cluster initialization when the heartbeat
+// is received before the initial block reports from each storage.
+storage = updateStorage(new DatanodeStorage(report.getStorageID()));
{code}
Even reverting the change and reintroducing the 'else' leaves the state & type 
temporarily inaccurate until the first block report. 

As discussed with [~arpitagarwal], a better fix would be to simply include the 
full {{DatanodeStorage}} object in the {{StorageReport}} (as opposed to only 
the Storage ID).  This requires adding the {{DatanodeStorage}} object to 
{{StorageReportProto}}. It needs to be a new optional field and we cannot 
remove the existing {{StorageUuid}} for protocol compatibility.

  was:
The fix for HDFS-5484 was accidentally regressed by the following change made 
via HDFS-5542
{code}
+  DatanodeStorageInfo updateStorage(DatanodeStorage s) {
 synchronized (storageMap) {
   DatanodeStorageInfo storage = storageMap.get(s.getStorageID());
   if (storage == null) {
@@ -670,8 +658,6 @@
  " for DN " + getXferAddr());
 storage = new DatanodeStorageInfo(this, s);
 storageMap.put(s.getStorageID(), storage);
-  } else {
-storage.setState(s.getState());
   }
   return storage;
 }
{code}

By removing the 'else' and no longer updating the state in the BlockReport 
processing path, we effectively get the bogus state & type that is set via the 
first heartbeat (see the fix for HDFS-5455):

{code}
+  if (storage == null) {
+// This is seen during cluster initialization when the heartbeat
+// is received before the initial block reports from each storage.
+storage = updateStorage(new DatanodeStorage(report.getStorageID()));
{code}
Even reverting the change and reintroducing the 'else' leaves the state & type 
temporarily inaccurate until the first block report. 

As discussed with [~arpitagarwal], a better fix would be to simply include the 
full DatanodeStorage object in the StorageReport (as opposed to only the 
Storage ID).  This requires adding the {{DatanodeStorage}} object to 
{{StorageReportProto}}. It needs to be a new optional field and we cannot 
remove the existing {{StorageUuid}} for protocol compatibility.


> StorageType and State in DatanodeStorageInfo in NameNode is not accurate
> 
>
> Key: HDFS-5667
> URL: https://issues.apache.org/jira/browse/HDFS-5667
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: datanode
>Affects Versions: Heterogeneous Storage (HDFS-2832)
>Reporter: Eric Sirianni
> Fix For: Heterogeneous Storage (HDFS-2832)
>
>
> The fix for HDFS-5484 was accidentally regressed by the following change made 
> via HDFS-5542
> {code}
> +  DatanodeStorageInfo updateStorage(DatanodeStorage s) {
>  synchronized (storageMap) {
>DatanodeStorageInfo storage = storageMap.get(s.getStorageID());
>if (storage == null) {
> @@ -670,8 +658,6 @@
>   " for DN " + getXferAddr());
>  storage = new DatanodeStorageInfo(this, s);
>  storageMap.put(s.getStorageID(), storage);
> -  } else {
> -storage.setState(s.getState());
>}
>return storage;
>  }
> {code}
> By removing the 'else' and no longer updating the state in the BlockReport 
> processing path, we effectively get the bogus state & type that is set via 
> the first heartbeat (see the fix for HDFS-5455):
> {code}
> +  if (storage == null) {
> +// This is seen during cluster initialization when the heartbeat
> +// is received before the initial block reports from each storage.
> +storage = updateStorage(new DatanodeStorage(report.getStorageID()));
> {code}
> Even reverting the change and reintroducing the 'else' leaves the state & 
> type tem

[jira] [Created] (HDFS-5668) TestBPOfferService.testBPInitErrorHandling fails intermittently

2013-12-13 Thread Jimmy Xiang (JIRA)
Jimmy Xiang created HDFS-5668:
-

 Summary: TestBPOfferService.testBPInitErrorHandling fails 
intermittently
 Key: HDFS-5668
 URL: https://issues.apache.org/jira/browse/HDFS-5668
 Project: Hadoop HDFS
  Issue Type: Task
  Components: test
Affects Versions: 3.0.0
Reporter: Jimmy Xiang
Assignee: Jimmy Xiang
Priority: Minor


The new test introduced in HDFS-4201 is a little flaky. I got failures locally 
occasionally. It could be related to how we did the mockup.

{noformat}
Exception in thread "DataNode: 
[file:/home/.../hadoop/hadoop-hdfs-project/hadoop-hdfs/target/test/data/testBPInitErrorHandling/data]
  heartbeating to 0.0.0.0/0.0.0.0:0" 
org.mockito.exceptions.misusing.WrongTypeOfReturnValue:
SimulatedFSDataset$$EnhancerByMockitoWithCGLIB$$5cb7c720 cannot be returned by 
getStorageId()
getStorageId() should return String
at 
org.apache.hadoop.hdfs.server.datanode.BPOfferService.toString(BPOfferService.java:178)
at 
org.apache.hadoop.hdfs.server.datanode.BPServiceActor.toString(BPServiceActor.java:133)
at java.lang.String.valueOf(String.java:2854)
at java.lang.StringBuilder.append(StringBuilder.java:128)
at 
org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:723)
2013-12-13 13:42:03,119 DEBUG datanode.DataNode 
(BPServiceActor.java:sendHeartBeat(468)) - Sending heartbeat from service 
actor: Block pool fake bpid (storage id null) service to 0.0.0.0/0.0.0.0:1
at java.lang.Thread.run(Thread.java:722)
{noformat}



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Updated] (HDFS-5634) allow BlockReaderLocal to switch between checksumming and not

2013-12-13 Thread Colin Patrick McCabe (JIRA)

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

Colin Patrick McCabe updated HDFS-5634:
---

Attachment: HDFS-5634.005.patch

> allow BlockReaderLocal to switch between checksumming and not
> -
>
> Key: HDFS-5634
> URL: https://issues.apache.org/jira/browse/HDFS-5634
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs-client
>Affects Versions: 3.0.0
>Reporter: Colin Patrick McCabe
>Assignee: Colin Patrick McCabe
> Attachments: HDFS-5634.001.patch, HDFS-5634.002.patch, 
> HDFS-5634.003.patch, HDFS-5634.004.patch, HDFS-5634.005.patch
>
>
> BlockReaderLocal should be able to switch between checksumming and 
> non-checksumming, so that when we get notifications that something is mlocked 
> (see HDFS-5182), we can avoid checksumming when reading from that block.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Updated] (HDFS-5632) Add Snapshot feature to INodeDirectory

2013-12-13 Thread Jing Zhao (JIRA)

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

Jing Zhao updated HDFS-5632:


Attachment: HDFS-5632.003.patch

Thanks for the review, Nicholas! Update the patch to address the comments.

bq. but we should check precondition in 
DirectoryWithSnapshotFeature.destroyDstSubtree(..).

The destroyDstSubtree may be invoked recursively, and in some cases the given 
directory may be not with snapshot. Thus I put the Precondition check in 
INodeReference#destroyAndCollectBlocks.

> Add Snapshot feature to INodeDirectory
> --
>
> Key: HDFS-5632
> URL: https://issues.apache.org/jira/browse/HDFS-5632
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: namenode
>Reporter: Jing Zhao
>Assignee: Jing Zhao
> Attachments: HDFS-5632.000.patch, HDFS-5632.001.patch, 
> HDFS-5632.002.patch, HDFS-5632.003.patch
>
>
> We will add snapshot feature to INodeDirectory and remove 
> INodeDirectoryWithSnapshot in this jira.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5634) allow BlockReaderLocal to switch between checksumming and not

2013-12-13 Thread Colin Patrick McCabe (JIRA)

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

Colin Patrick McCabe commented on HDFS-5634:


I addressed the stuff discussed above.  I also addressed the case where there 
are no checksums for the block.  This can lead to some weird conditions like 
bytesPerChecksum being 0, so we want to avoid dividing by this number before we 
check it.  This patch also sets the skipChecksum boolean when it detects one of 
these blocks, which should speed things up.  This is an optimization that the 
old code didn't do.

BlockReaderLocalTest is now an abstract class rather than an interface, so that 
we can have defaults.  I added a bunch of new tests, including one where we set 
readahead just less than the block size.

> allow BlockReaderLocal to switch between checksumming and not
> -
>
> Key: HDFS-5634
> URL: https://issues.apache.org/jira/browse/HDFS-5634
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs-client
>Affects Versions: 3.0.0
>Reporter: Colin Patrick McCabe
>Assignee: Colin Patrick McCabe
> Attachments: HDFS-5634.001.patch, HDFS-5634.002.patch, 
> HDFS-5634.003.patch, HDFS-5634.004.patch, HDFS-5634.005.patch
>
>
> BlockReaderLocal should be able to switch between checksumming and 
> non-checksumming, so that when we get notifications that something is mlocked 
> (see HDFS-5182), we can avoid checksumming when reading from that block.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5434) Write resiliency for replica count 1

2013-12-13 Thread Arpit Agarwal (JIRA)

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

Arpit Agarwal commented on HDFS-5434:
-

Eric, what is the advantage of retaining only one replica? Unless it is 
temporary data that can be easily regenerated, having one replica guarantees 
data loss in quick order. e.g. on a 5000-disk cluster with an AFR of 4% you'd 
expect at least one disk failure every other day. This setting sounds somewhat 
dangerous setting as it could give users a false sense of reliability.

> Write resiliency for replica count 1
> 
>
> Key: HDFS-5434
> URL: https://issues.apache.org/jira/browse/HDFS-5434
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: namenode
>Affects Versions: 2.2.0
>Reporter: Buddy
>Priority: Minor
>
> If a file has a replica count of one, the HDFS client is exposed to write 
> failures if the data node fails during a write. With a pipeline of size of 
> one, no recovery is possible if the sole data node dies.
> A simple fix is to force a minimum pipeline size of 2, while leaving the 
> replication count as 1. The implementation for this is fairly non-invasive.
> Although the replica count is one, the block will be written to two data 
> nodes instead of one. If one of the data nodes fails during the write, normal 
> pipeline recovery will ensure that the write succeeds to the surviving data 
> node.
> The existing code in the name node will prune the extra replica when it 
> receives the block received reports for the finalized block from both data 
> nodes. This results in the intended replica count of one for the block.
> This behavior should be controlled by a configuration option such as 
> {{dfs.namenode.minPipelineSize}}.
> This behavior can be implemented in {{FSNameSystem.getAdditionalBlock()}} by 
> ensuring that the pipeline size passed to 
> {{BlockPlacementPolicy.chooseTarget()}} in the replication parameter is:
> {code}
> max(replication, ${dfs.namenode.minPipelineSize})
> {code}



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5454) DataNode UUID should be assigned prior to FsDataset initialization

2013-12-13 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HDFS-5454:
-

{color:red}-1 overall{color}.  Here are the results of testing the latest 
attachment 
  http://issues.apache.org/jira/secure/attachment/12618671/HDFS-5454.02.patch
  against trunk revision .

{color:green}+1 @author{color}.  The patch does not contain any @author 
tags.

{color:red}-1 tests included{color}.  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:green}+1 javac{color}.  The applied patch does not increase the 
total number of javac compiler warnings.

{color:green}+1 javadoc{color}.  The javadoc tool did not generate any 
warning messages.

{color:green}+1 eclipse:eclipse{color}.  The patch built with 
eclipse:eclipse.

{color:green}+1 findbugs{color}.  The patch does not introduce any new 
Findbugs (version 1.3.9) warnings.

{color:green}+1 release audit{color}.  The applied patch does not increase 
the total number of release audit warnings.

{color:green}+1 core tests{color}.  The patch passed unit tests in 
hadoop-hdfs-project/hadoop-hdfs.

{color:green}+1 contrib tests{color}.  The patch passed contrib unit tests.

Test results: 
https://builds.apache.org/job/PreCommit-HDFS-Build/5713//testReport/
Console output: https://builds.apache.org/job/PreCommit-HDFS-Build/5713//console

This message is automatically generated.

> DataNode UUID should be assigned prior to FsDataset initialization
> --
>
> Key: HDFS-5454
> URL: https://issues.apache.org/jira/browse/HDFS-5454
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: datanode
>Affects Versions: 3.0.0
>Reporter: Eric Sirianni
>Priority: Minor
> Attachments: HDFS-5454.01.patch, HDFS-5454.02.patch
>
>
> The DataNode's UUID ({{DataStorage.getDatanodeUuid()}} field) is NULL at the 
> point where the {{FsDataset}} object is created ({{DataNode.initStorage()}}.  
> As the {{DataStorage}} object is an input to the {{FsDataset}} factory 
> method, it is desirable for it to be fully populated with a UUID at this 
> point.  In particular, our {{FsDatasetSpi}} implementation relies upon the 
> DataNode UUID as a key to access our underlying block storage device.
> This also appears to be a regression compared to Hadoop 1.x - our 1.x 
> {{FSDatasetInterface}} plugin has a non-NULL UUID on startup.  I haven't 
> fully traced through the code, but I suspect this came from the 
> {{BPOfferService}}/{{BPServiceActor}} refactoring to support federated 
> namenodes.
> With HDFS-5448, the DataNode is now responsible for generating its own UUID.  
> This greatly simplifies the fix.  Move the UUID check/generation in from 
> {{DataNode.createBPRegistration()}} to {{DataNode.initStorage()}}.  This more 
> naturally co-locates UUID generation immediately subsequent to the read of 
> the UUID from the {{DataStorage}} properties file.
> {code}
>   private void initStorage(final NamespaceInfo nsInfo) throws IOException {
> // ...
>   final String bpid = nsInfo.getBlockPoolID();
>   //read storage info, lock data dirs and transition fs state if necessary
>   storage.recoverTransitionRead(this, bpid, nsInfo, dataDirs, startOpt);
>   
>   // SUGGESTED NEW PLACE TO CHECK DATANODE UUID
>   checkDatanodeUuid();
> // ...
>   }
> {code}



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5661) Browsing FileSystem via web ui, should use datanode's hostname instead of ip address

2013-12-13 Thread Benoy Antony (JIRA)

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

Benoy Antony commented on HDFS-5661:


Only Namenode will authenticate a client using HDFS Delegation Token ( which is 
issued by the Namenode.)
The client still needs to authenticate to the datanode and cannot use the 
Delegation Token for this purpose.
The configuration related to the cookie domain is 
hadoop.http.authentication.cookie.domain and more details on the authentication 
of http consoles is here  : 
https://hadoop.apache.org/docs/current2/hadoop-project-dist/hadoop-common/HttpAuthentication.html

When browsing the filesystem via original webui, the DelegationToken is used by 
the DataNode to contact the Namenode .


> Browsing FileSystem via web ui, should use datanode's hostname instead of ip 
> address
> 
>
> Key: HDFS-5661
> URL: https://issues.apache.org/jira/browse/HDFS-5661
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 2.2.0
>Reporter: Benoy Antony
>Assignee: Benoy Antony
> Attachments: HDFS-5661.patch
>
>
> If authentication is enabled on the web ui, then a cookie is used to keep 
> track of the authentication information. There is normally a domain 
> associated with the cookie. Since ip address doesn't have any domain , the 
> cookie will not be sent by the browser while making http calls with ip 
> address as the destination server.
> This will break browsing files system via web ui , if authentication is 
> enabled.
> Browsing FileSystem via web ui, should use datanode's hostname instead of ip 
> address. 



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Updated] (HDFS-5431) support cachepool-based limit management in path-based caching

2013-12-13 Thread Colin Patrick McCabe (JIRA)

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

Colin Patrick McCabe updated HDFS-5431:
---

Description: We should support cachepool-based limit management in 
path-based caching.  (was: We should support cachepool-based quota management 
in path-based caching.)

> support cachepool-based limit management in path-based caching
> --
>
> Key: HDFS-5431
> URL: https://issues.apache.org/jira/browse/HDFS-5431
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: datanode, namenode
>Affects Versions: 3.0.0
>Reporter: Colin Patrick McCabe
>Assignee: Andrew Wang
> Attachments: hdfs-5431-1.patch, hdfs-5431-2.patch, hdfs-5431-3.patch
>
>
> We should support cachepool-based limit management in path-based caching.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Updated] (HDFS-5431) support cachepool-based limit management in path-based caching

2013-12-13 Thread Colin Patrick McCabe (JIRA)

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

Colin Patrick McCabe updated HDFS-5431:
---

Assignee: Andrew Wang  (was: Colin Patrick McCabe)

> support cachepool-based limit management in path-based caching
> --
>
> Key: HDFS-5431
> URL: https://issues.apache.org/jira/browse/HDFS-5431
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: datanode, namenode
>Affects Versions: 3.0.0
>Reporter: Colin Patrick McCabe
>Assignee: Andrew Wang
> Attachments: hdfs-5431-1.patch, hdfs-5431-2.patch, hdfs-5431-3.patch
>
>
> We should support cachepool-based quota management in path-based caching.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5636) Enforce a max TTL per cache pool

2013-12-13 Thread Colin Patrick McCabe (JIRA)

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

Colin Patrick McCabe commented on HDFS-5636:


OK, I misinterpreted the proposal here.  I thought you wanted a single TTL 
which would be applied to all directives in the pool.  Instead, you want a max 
(relative) TTL that can be set on anything added to the pool, at the time of 
addition.

Are you proposing to silently add these TTLs when they're not present in the 
request?  Or hard error when we try to add something with a TTL that's "too 
high"?  The latter seems simpler.

> Enforce a max TTL per cache pool
> 
>
> Key: HDFS-5636
> URL: https://issues.apache.org/jira/browse/HDFS-5636
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: caching, namenode
>Affects Versions: 3.0.0
>Reporter: Andrew Wang
>Assignee: Andrew Wang
>
> It'd be nice for administrators to be able to specify a maximum TTL for 
> directives in a cache pool. This forces all directives to eventually age out.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5434) Write resiliency for replica count 1

2013-12-13 Thread Colin Patrick McCabe (JIRA)

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

Colin Patrick McCabe commented on HDFS-5434:


I sort of assumed when I read this JIRA that Eric was considering situations 
where the admin "knows" that the storage is reliable despite having only one 
replica.  For example, if there is RAID and we trust it, or if the backend 
storage system which the DataNode is using is doing replication underneath 
HDFS.  This is definitely a little bit outside the normal Hadoop use-case, but 
it's something we can support without too much difficulty with a client-side 
config.

> Write resiliency for replica count 1
> 
>
> Key: HDFS-5434
> URL: https://issues.apache.org/jira/browse/HDFS-5434
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: namenode
>Affects Versions: 2.2.0
>Reporter: Buddy
>Priority: Minor
>
> If a file has a replica count of one, the HDFS client is exposed to write 
> failures if the data node fails during a write. With a pipeline of size of 
> one, no recovery is possible if the sole data node dies.
> A simple fix is to force a minimum pipeline size of 2, while leaving the 
> replication count as 1. The implementation for this is fairly non-invasive.
> Although the replica count is one, the block will be written to two data 
> nodes instead of one. If one of the data nodes fails during the write, normal 
> pipeline recovery will ensure that the write succeeds to the surviving data 
> node.
> The existing code in the name node will prune the extra replica when it 
> receives the block received reports for the finalized block from both data 
> nodes. This results in the intended replica count of one for the block.
> This behavior should be controlled by a configuration option such as 
> {{dfs.namenode.minPipelineSize}}.
> This behavior can be implemented in {{FSNameSystem.getAdditionalBlock()}} by 
> ensuring that the pipeline size passed to 
> {{BlockPlacementPolicy.chooseTarget()}} in the replication parameter is:
> {code}
> max(replication, ${dfs.namenode.minPipelineSize})
> {code}



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5661) Browsing FileSystem via web ui, should use datanode's hostname instead of ip address

2013-12-13 Thread Haohui Mai (JIRA)

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

Haohui Mai commented on HDFS-5661:
--

The only way to access the data on a secure DN is to present a valid delegation 
token. The HTTP auth tokens do not contain the DT, presenting the HTTP auth 
tokens to the DN does not grant you the access, thus it makes no sense to pass 
them around.

Regardless of what UI you're using, the NN fetches the DT on the behalf of the 
client, and the client presents this DT to authenticate with DN. This should 
the only way you can access the data.

If you happen to get the data in your approach, this is a security hole and 
please file a jira to track it.

Again, I'll encourage you to check out the new web UI. It accesses the data 
through WebHDFS which is much more robust.

> Browsing FileSystem via web ui, should use datanode's hostname instead of ip 
> address
> 
>
> Key: HDFS-5661
> URL: https://issues.apache.org/jira/browse/HDFS-5661
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 2.2.0
>Reporter: Benoy Antony
>Assignee: Benoy Antony
> Attachments: HDFS-5661.patch
>
>
> If authentication is enabled on the web ui, then a cookie is used to keep 
> track of the authentication information. There is normally a domain 
> associated with the cookie. Since ip address doesn't have any domain , the 
> cookie will not be sent by the browser while making http calls with ip 
> address as the destination server.
> This will break browsing files system via web ui , if authentication is 
> enabled.
> Browsing FileSystem via web ui, should use datanode's hostname instead of ip 
> address. 



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5434) Write resiliency for replica count 1

2013-12-13 Thread Arpit Agarwal (JIRA)

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

Arpit Agarwal commented on HDFS-5434:
-

Thanks for the explanation, I didn't think of that.

If the target storage is reliable then what do we gain by adding an extra 
replica in the pipeline? Just want to understand the use case.

> Write resiliency for replica count 1
> 
>
> Key: HDFS-5434
> URL: https://issues.apache.org/jira/browse/HDFS-5434
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: namenode
>Affects Versions: 2.2.0
>Reporter: Buddy
>Priority: Minor
>
> If a file has a replica count of one, the HDFS client is exposed to write 
> failures if the data node fails during a write. With a pipeline of size of 
> one, no recovery is possible if the sole data node dies.
> A simple fix is to force a minimum pipeline size of 2, while leaving the 
> replication count as 1. The implementation for this is fairly non-invasive.
> Although the replica count is one, the block will be written to two data 
> nodes instead of one. If one of the data nodes fails during the write, normal 
> pipeline recovery will ensure that the write succeeds to the surviving data 
> node.
> The existing code in the name node will prune the extra replica when it 
> receives the block received reports for the finalized block from both data 
> nodes. This results in the intended replica count of one for the block.
> This behavior should be controlled by a configuration option such as 
> {{dfs.namenode.minPipelineSize}}.
> This behavior can be implemented in {{FSNameSystem.getAdditionalBlock()}} by 
> ensuring that the pipeline size passed to 
> {{BlockPlacementPolicy.chooseTarget()}} in the replication parameter is:
> {code}
> max(replication, ${dfs.namenode.minPipelineSize})
> {code}



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Updated] (HDFS-5651) remove dfs.namenode.caching.enabled

2013-12-13 Thread Colin Patrick McCabe (JIRA)

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

Colin Patrick McCabe updated HDFS-5651:
---

Status: Patch Available  (was: Open)

> remove dfs.namenode.caching.enabled
> ---
>
> Key: HDFS-5651
> URL: https://issues.apache.org/jira/browse/HDFS-5651
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: namenode
>Affects Versions: 3.0.0
>Reporter: Colin Patrick McCabe
>Assignee: Colin Patrick McCabe
> Attachments: HDFS-5651.001.patch
>
>
> We can remove dfs.namenode.caching.enabled and simply always enable caching, 
> similar to how we do with snapshots and other features.  The main overhead is 
> the size of the cachedBlocks GSet.  However, we can simply make the size of 
> this GSet configurable, and people who don't want caching can set it to a 
> very small value.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5651) remove dfs.namenode.caching.enabled

2013-12-13 Thread Colin Patrick McCabe (JIRA)

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

Colin Patrick McCabe commented on HDFS-5651:


It's worth noting that DNs don't send cache reports unless their configured 
mlockable capacity is greater than 0.  So there's no overhead from that either.

> remove dfs.namenode.caching.enabled
> ---
>
> Key: HDFS-5651
> URL: https://issues.apache.org/jira/browse/HDFS-5651
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: namenode
>Affects Versions: 3.0.0
>Reporter: Colin Patrick McCabe
>Assignee: Colin Patrick McCabe
> Attachments: HDFS-5651.001.patch
>
>
> We can remove dfs.namenode.caching.enabled and simply always enable caching, 
> similar to how we do with snapshots and other features.  The main overhead is 
> the size of the cachedBlocks GSet.  However, we can simply make the size of 
> this GSet configurable, and people who don't want caching can set it to a 
> very small value.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Updated] (HDFS-5651) remove dfs.namenode.caching.enabled

2013-12-13 Thread Colin Patrick McCabe (JIRA)

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

Colin Patrick McCabe updated HDFS-5651:
---

Attachment: HDFS-5651.001.patch

> remove dfs.namenode.caching.enabled
> ---
>
> Key: HDFS-5651
> URL: https://issues.apache.org/jira/browse/HDFS-5651
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: namenode
>Affects Versions: 3.0.0
>Reporter: Colin Patrick McCabe
>Assignee: Colin Patrick McCabe
> Attachments: HDFS-5651.001.patch
>
>
> We can remove dfs.namenode.caching.enabled and simply always enable caching, 
> similar to how we do with snapshots and other features.  The main overhead is 
> the size of the cachedBlocks GSet.  However, we can simply make the size of 
> this GSet configurable, and people who don't want caching can set it to a 
> very small value.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Updated] (HDFS-5651) remove dfs.namenode.caching.enabled

2013-12-13 Thread Colin Patrick McCabe (JIRA)

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

Colin Patrick McCabe updated HDFS-5651:
---

Attachment: HDFS-5651.002.patch

also update defaults and docs.

> remove dfs.namenode.caching.enabled
> ---
>
> Key: HDFS-5651
> URL: https://issues.apache.org/jira/browse/HDFS-5651
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: namenode
>Affects Versions: 3.0.0
>Reporter: Colin Patrick McCabe
>Assignee: Colin Patrick McCabe
> Attachments: HDFS-5651.001.patch, HDFS-5651.002.patch
>
>
> We can remove dfs.namenode.caching.enabled and simply always enable caching, 
> similar to how we do with snapshots and other features.  The main overhead is 
> the size of the cachedBlocks GSet.  However, we can simply make the size of 
> this GSet configurable, and people who don't want caching can set it to a 
> very small value.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5434) Write resiliency for replica count 1

2013-12-13 Thread Colin Patrick McCabe (JIRA)

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

Colin Patrick McCabe commented on HDFS-5434:


bq. If the target storage is reliable then what do we gain by adding an extra 
replica in the pipeline? Just want to understand the use case.

Resiliency against transient network errors.

> Write resiliency for replica count 1
> 
>
> Key: HDFS-5434
> URL: https://issues.apache.org/jira/browse/HDFS-5434
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: namenode
>Affects Versions: 2.2.0
>Reporter: Buddy
>Priority: Minor
>
> If a file has a replica count of one, the HDFS client is exposed to write 
> failures if the data node fails during a write. With a pipeline of size of 
> one, no recovery is possible if the sole data node dies.
> A simple fix is to force a minimum pipeline size of 2, while leaving the 
> replication count as 1. The implementation for this is fairly non-invasive.
> Although the replica count is one, the block will be written to two data 
> nodes instead of one. If one of the data nodes fails during the write, normal 
> pipeline recovery will ensure that the write succeeds to the surviving data 
> node.
> The existing code in the name node will prune the extra replica when it 
> receives the block received reports for the finalized block from both data 
> nodes. This results in the intended replica count of one for the block.
> This behavior should be controlled by a configuration option such as 
> {{dfs.namenode.minPipelineSize}}.
> This behavior can be implemented in {{FSNameSystem.getAdditionalBlock()}} by 
> ensuring that the pipeline size passed to 
> {{BlockPlacementPolicy.chooseTarget()}} in the replication parameter is:
> {code}
> max(replication, ${dfs.namenode.minPipelineSize})
> {code}



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5661) Browsing FileSystem via web ui, should use datanode's hostname instead of ip address

2013-12-13 Thread Benoy Antony (JIRA)

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

Benoy Antony commented on HDFS-5661:


--the client presents this DT to authenticate with DN.
This s not correct. How can DN validate and read DT ? 
The DT is issued by NN. client/agent can  authenticate using DT only with NN.

Both NN/DN use 
https://hadoop.apache.org/docs/current2/hadoop-project-dist/hadoop-common/HttpAuthentication.html
  to authenticate a user's access to their http interfaces.





> Browsing FileSystem via web ui, should use datanode's hostname instead of ip 
> address
> 
>
> Key: HDFS-5661
> URL: https://issues.apache.org/jira/browse/HDFS-5661
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 2.2.0
>Reporter: Benoy Antony
>Assignee: Benoy Antony
> Attachments: HDFS-5661.patch
>
>
> If authentication is enabled on the web ui, then a cookie is used to keep 
> track of the authentication information. There is normally a domain 
> associated with the cookie. Since ip address doesn't have any domain , the 
> cookie will not be sent by the browser while making http calls with ip 
> address as the destination server.
> This will break browsing files system via web ui , if authentication is 
> enabled.
> Browsing FileSystem via web ui, should use datanode's hostname instead of ip 
> address. 



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5661) Browsing FileSystem via web ui, should use datanode's hostname instead of ip address

2013-12-13 Thread Jing Zhao (JIRA)

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

Jing Zhao commented on HDFS-5661:
-

In AuthFilter#doFilter, we have the following code:
{code}
public void doFilter(ServletRequest request, ServletResponse response,
  FilterChain filterChain) throws IOException, ServletException {
final HttpServletRequest httpRequest = 
toLowerCase((HttpServletRequest)request);
final String tokenString = httpRequest.getParameter(DelegationParam.NAME);
if (tokenString != null) {
  //Token is present in the url, therefore token will be used for
  //authentication, bypass kerberos authentication.
  filterChain.doFilter(httpRequest, response);
  return;
}
super.doFilter(httpRequest, response, filterChain);
  }
{code}

In DatanodeJspHelper#generateDirectoryStructure, we have 
{code}
String tokenString = req.getParameter(JspHelper.DELEGATION_PARAMETER_NAME);
UserGroupInformation ugi = JspHelper.getUGI(req, conf);
.
DFSClient dfs = getDFSClient(ugi, nnAddr, conf);
{code}

So I think here the whole process is:
1. NN generates DT and put the DT into the redirect URL
2. DN receives the redirect request, finds that there is DT in the request, 
thus the corresponding SPNEGO filter will bypass the auth check
3. DN uses the DT and files a getFileInfo RPC call to NN
4. DN shows the result to web ui

> Browsing FileSystem via web ui, should use datanode's hostname instead of ip 
> address
> 
>
> Key: HDFS-5661
> URL: https://issues.apache.org/jira/browse/HDFS-5661
> Project: Hadoop HDFS
>  Issue Type: Bug
>Affects Versions: 2.2.0
>Reporter: Benoy Antony
>Assignee: Benoy Antony
> Attachments: HDFS-5661.patch
>
>
> If authentication is enabled on the web ui, then a cookie is used to keep 
> track of the authentication information. There is normally a domain 
> associated with the cookie. Since ip address doesn't have any domain , the 
> cookie will not be sent by the browser while making http calls with ip 
> address as the destination server.
> This will break browsing files system via web ui , if authentication is 
> enabled.
> Browsing FileSystem via web ui, should use datanode's hostname instead of ip 
> address. 



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5636) Enforce a max TTL per cache pool

2013-12-13 Thread Andrew Wang (JIRA)

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

Andrew Wang commented on HDFS-5636:
---

I was thinking a hard error. It's better for users too since the default expiry 
is "never".

> Enforce a max TTL per cache pool
> 
>
> Key: HDFS-5636
> URL: https://issues.apache.org/jira/browse/HDFS-5636
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: caching, namenode
>Affects Versions: 3.0.0
>Reporter: Andrew Wang
>Assignee: Andrew Wang
>
> It'd be nice for administrators to be able to specify a maximum TTL for 
> directives in a cache pool. This forces all directives to eventually age out.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5634) allow BlockReaderLocal to switch between checksumming and not

2013-12-13 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HDFS-5634:
-

{color:red}-1 overall{color}.  Here are the results of testing the latest 
attachment 
  http://issues.apache.org/jira/secure/attachment/12618694/HDFS-5634.005.patch
  against trunk revision .

{color:green}+1 @author{color}.  The patch does not contain any @author 
tags.

{color:green}+1 tests included{color}.  The patch appears to include 3 new 
or modified test files.

{color:green}+1 javac{color}.  The applied patch does not increase the 
total number of javac compiler warnings.

{color:green}+1 javadoc{color}.  The javadoc tool did not generate any 
warning messages.

{color:green}+1 eclipse:eclipse{color}.  The patch built with 
eclipse:eclipse.

{color:green}+1 findbugs{color}.  The patch does not introduce any new 
Findbugs (version 1.3.9) warnings.

{color:green}+1 release audit{color}.  The applied patch does not increase 
the total number of release audit warnings.

{color:red}-1 core tests{color}.  The patch failed these unit tests in 
hadoop-hdfs-project/hadoop-hdfs:

  org.apache.hadoop.hdfs.TestCrcCorruption
  org.apache.hadoop.hdfs.TestClientReportBadBlock
  org.apache.hadoop.hdfs.TestDFSClientRetries
  org.apache.hadoop.hdfs.server.namenode.TestNameNodeHttpServer
  org.apache.hadoop.hdfs.server.namenode.TestCorruptFilesJsp
  
org.apache.hadoop.hdfs.server.blockmanagement.TestBlocksWithNotEnoughRacks
  org.apache.hadoop.hdfs.server.namenode.TestFsck
  
org.apache.hadoop.hdfs.server.namenode.TestListCorruptFileBlocks
  org.apache.hadoop.hdfs.TestDFSShell

  The following test timeouts occurred in 
hadoop-hdfs-project/hadoop-hdfs:

org.apache.hadoop.hdfs.TestDatanodeBlockScanner

{color:green}+1 contrib tests{color}.  The patch passed contrib unit tests.

Test results: 
https://builds.apache.org/job/PreCommit-HDFS-Build/5714//testReport/
Console output: https://builds.apache.org/job/PreCommit-HDFS-Build/5714//console

This message is automatically generated.

> allow BlockReaderLocal to switch between checksumming and not
> -
>
> Key: HDFS-5634
> URL: https://issues.apache.org/jira/browse/HDFS-5634
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs-client
>Affects Versions: 3.0.0
>Reporter: Colin Patrick McCabe
>Assignee: Colin Patrick McCabe
> Attachments: HDFS-5634.001.patch, HDFS-5634.002.patch, 
> HDFS-5634.003.patch, HDFS-5634.004.patch, HDFS-5634.005.patch
>
>
> BlockReaderLocal should be able to switch between checksumming and 
> non-checksumming, so that when we get notifications that something is mlocked 
> (see HDFS-5182), we can avoid checksumming when reading from that block.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5632) Add Snapshot feature to INodeDirectory

2013-12-13 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HDFS-5632:
-

{color:red}-1 overall{color}.  Here are the results of testing the latest 
attachment 
  http://issues.apache.org/jira/secure/attachment/12618695/HDFS-5632.003.patch
  against trunk revision .

{color:green}+1 @author{color}.  The patch does not contain any @author 
tags.

{color:green}+1 tests included{color}.  The patch appears to include 9 new 
or modified test files.

{color:green}+1 javac{color}.  The applied patch does not increase the 
total number of javac compiler warnings.

{color:green}+1 javadoc{color}.  The javadoc tool did not generate any 
warning messages.

{color:green}+1 eclipse:eclipse{color}.  The patch built with 
eclipse:eclipse.

{color:green}+1 findbugs{color}.  The patch does not introduce any new 
Findbugs (version 1.3.9) warnings.

{color:green}+1 release audit{color}.  The applied patch does not increase 
the total number of release audit warnings.

{color:red}-1 core tests{color}.  The patch failed these unit tests in 
hadoop-hdfs-project/hadoop-hdfs:

  org.apache.hadoop.hdfs.TestSafeMode

{color:green}+1 contrib tests{color}.  The patch passed contrib unit tests.

Test results: 
https://builds.apache.org/job/PreCommit-HDFS-Build/5715//testReport/
Console output: https://builds.apache.org/job/PreCommit-HDFS-Build/5715//console

This message is automatically generated.

> Add Snapshot feature to INodeDirectory
> --
>
> Key: HDFS-5632
> URL: https://issues.apache.org/jira/browse/HDFS-5632
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: namenode
>Reporter: Jing Zhao
>Assignee: Jing Zhao
> Attachments: HDFS-5632.000.patch, HDFS-5632.001.patch, 
> HDFS-5632.002.patch, HDFS-5632.003.patch
>
>
> We will add snapshot feature to INodeDirectory and remove 
> INodeDirectoryWithSnapshot in this jira.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Updated] (HDFS-5618) NameNode: persist ACLs in fsimage.

2013-12-13 Thread Haohui Mai (JIRA)

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

Haohui Mai updated HDFS-5618:
-

Attachment: HDFS-5618.000.patch

> NameNode: persist ACLs in fsimage.
> --
>
> Key: HDFS-5618
> URL: https://issues.apache.org/jira/browse/HDFS-5618
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: namenode
>Affects Versions: HDFS ACLs (HDFS-4685)
>Reporter: Chris Nauroth
>Assignee: Haohui Mai
> Attachments: HDFS-5618.000.patch
>
>
> Store ACLs in fsimage so that ACLs are retained across NameNode restarts.  
> This requires encoding and saving the {{AclManager}} state as a new section 
> of the fsimage, located after all existing sections (snapshot manager state, 
> inodes, secret manager state, and cache manager state).



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Assigned] (HDFS-5619) NameNode: record ACL modifications to edit log.

2013-12-13 Thread Haohui Mai (JIRA)

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

Haohui Mai reassigned HDFS-5619:


Assignee: Haohui Mai

> NameNode: record ACL modifications to edit log.
> ---
>
> Key: HDFS-5619
> URL: https://issues.apache.org/jira/browse/HDFS-5619
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: namenode
>Affects Versions: HDFS ACLs (HDFS-4685)
>Reporter: Chris Nauroth
>Assignee: Haohui Mai
>
> Implement a new edit log opcode, {{OP_SET_ACL}}, which fully replaces the ACL 
> of a specific inode.  For ACL operations that perform partial modification of 
> the ACL, the NameNode must merge the modifications with the existing ACL to 
> produce the final resulting ACL and encode it into an {{OP_SET_ACL}}.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5634) allow BlockReaderLocal to switch between checksumming and not

2013-12-13 Thread Colin Patrick McCabe (JIRA)

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

Colin Patrick McCabe commented on HDFS-5634:


found a bug in the fastpath handling.  will post an update soon

> allow BlockReaderLocal to switch between checksumming and not
> -
>
> Key: HDFS-5634
> URL: https://issues.apache.org/jira/browse/HDFS-5634
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs-client
>Affects Versions: 3.0.0
>Reporter: Colin Patrick McCabe
>Assignee: Colin Patrick McCabe
> Attachments: HDFS-5634.001.patch, HDFS-5634.002.patch, 
> HDFS-5634.003.patch, HDFS-5634.004.patch, HDFS-5634.005.patch
>
>
> BlockReaderLocal should be able to switch between checksumming and 
> non-checksumming, so that when we get notifications that something is mlocked 
> (see HDFS-5182), we can avoid checksumming when reading from that block.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Updated] (HDFS-5431) support cachepool-based limit management in path-based caching

2013-12-13 Thread Andrew Wang (JIRA)

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

Andrew Wang updated HDFS-5431:
--

Attachment: hdfs-5431-4.patch

Hi Colin, I made the suggested changes with the following notes:

* With the new EnumSet, I also added a version of add/modify directive without 
a {{flags}} argument, since it's really annoying to put 
{{EnumSet.noneOf(CacheFlag.class}} everywhere.
* I don't like putting {{bytesOverlimit}} in {{CachePoolEntry}} because it 
feels inconsistent with {{CachePoolStats}}. Left it as is, unless you feel 
strongly on this one.
* Tweaked the kick behavior somewhat. We now try to do read-after-write 
consistency with the dirty bit. add/modify with force is essentially a read and 
a write.

This also does complete the test refactor, so we can close that other JIRA out 
after this one goes in.

> support cachepool-based limit management in path-based caching
> --
>
> Key: HDFS-5431
> URL: https://issues.apache.org/jira/browse/HDFS-5431
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: datanode, namenode
>Affects Versions: 3.0.0
>Reporter: Colin Patrick McCabe
>Assignee: Andrew Wang
> Attachments: hdfs-5431-1.patch, hdfs-5431-2.patch, hdfs-5431-3.patch, 
> hdfs-5431-4.patch
>
>
> We should support cachepool-based limit management in path-based caching.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Updated] (HDFS-5406) Send incremental block reports for all storages in a single call

2013-12-13 Thread Arpit Agarwal (JIRA)

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

Arpit Agarwal updated HDFS-5406:


Attachment: h5406.04.patch

> Send incremental block reports for all storages in a single call
> 
>
> Key: HDFS-5406
> URL: https://issues.apache.org/jira/browse/HDFS-5406
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: datanode
>Affects Versions: 3.0.0
>Reporter: Arpit Agarwal
>Assignee: Arpit Agarwal
> Attachments: h5406.01.patch, h5406.02.patch, h5406.04.patch
>
>
> Per code review feedback from [~szetszwo] on HDFS-5390, we can combine all 
> incremental block reports in a single {{blockReceivedAndDeleted}} call.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5651) remove dfs.namenode.caching.enabled

2013-12-13 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HDFS-5651:
-

{color:red}-1 overall{color}.  Here are the results of testing the latest 
attachment 
  http://issues.apache.org/jira/secure/attachment/12618723/HDFS-5651.002.patch
  against trunk revision .

{color:green}+1 @author{color}.  The patch does not contain any @author 
tags.

{color:green}+1 tests included{color}.  The patch appears to include 2 new 
or modified test files.

{color:green}+1 javac{color}.  The applied patch does not increase the 
total number of javac compiler warnings.

{color:green}+1 javadoc{color}.  The javadoc tool did not generate any 
warning messages.

{color:green}+1 eclipse:eclipse{color}.  The patch built with 
eclipse:eclipse.

{color:green}+1 findbugs{color}.  The patch does not introduce any new 
Findbugs (version 1.3.9) warnings.

{color:green}+1 release audit{color}.  The applied patch does not increase 
the total number of release audit warnings.

{color:red}-1 core tests{color}.  The patch failed these unit tests in 
hadoop-hdfs-project/hadoop-hdfs:

  org.apache.hadoop.hdfs.server.namenode.TestCacheDirectives
  
org.apache.hadoop.hdfs.server.namenode.ha.TestHAStateTransitions

{color:green}+1 contrib tests{color}.  The patch passed contrib unit tests.

Test results: 
https://builds.apache.org/job/PreCommit-HDFS-Build/5716//testReport/
Console output: https://builds.apache.org/job/PreCommit-HDFS-Build/5716//console

This message is automatically generated.

> remove dfs.namenode.caching.enabled
> ---
>
> Key: HDFS-5651
> URL: https://issues.apache.org/jira/browse/HDFS-5651
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: namenode
>Affects Versions: 3.0.0
>Reporter: Colin Patrick McCabe
>Assignee: Colin Patrick McCabe
> Attachments: HDFS-5651.001.patch, HDFS-5651.002.patch
>
>
> We can remove dfs.namenode.caching.enabled and simply always enable caching, 
> similar to how we do with snapshots and other features.  The main overhead is 
> the size of the cachedBlocks GSet.  However, we can simply make the size of 
> this GSet configurable, and people who don't want caching can set it to a 
> very small value.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5632) Add Snapshot feature to INodeDirectory

2013-12-13 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HDFS-5632:
-

{color:red}-1 overall{color}.  Here are the results of testing the latest 
attachment 
  http://issues.apache.org/jira/secure/attachment/12618695/HDFS-5632.003.patch
  against trunk revision .

{color:green}+1 @author{color}.  The patch does not contain any @author 
tags.

{color:green}+1 tests included{color}.  The patch appears to include 9 new 
or modified test files.

{color:green}+1 javac{color}.  The applied patch does not increase the 
total number of javac compiler warnings.

{color:red}-1 javadoc{color}.  The javadoc tool appears to have generated 
-14 warning messages.

{color:green}+1 eclipse:eclipse{color}.  The patch built with 
eclipse:eclipse.

{color:green}+1 findbugs{color}.  The patch does not introduce any new 
Findbugs (version 1.3.9) warnings.

{color:red}-1 release audit{color}.  The applied patch generated 1 
release audit warnings.

{color:green}+1 core tests{color}.  The patch passed unit tests in 
hadoop-hdfs-project/hadoop-hdfs.

{color:green}+1 contrib tests{color}.  The patch passed contrib unit tests.

Test results: 
https://builds.apache.org/job/PreCommit-HDFS-Build/5717//testReport/
Release audit warnings: 
https://builds.apache.org/job/PreCommit-HDFS-Build/5717//artifact/trunk/patchprocess/patchReleaseAuditProblems.txt
Console output: https://builds.apache.org/job/PreCommit-HDFS-Build/5717//console

This message is automatically generated.

> Add Snapshot feature to INodeDirectory
> --
>
> Key: HDFS-5632
> URL: https://issues.apache.org/jira/browse/HDFS-5632
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: namenode
>Reporter: Jing Zhao
>Assignee: Jing Zhao
> Attachments: HDFS-5632.000.patch, HDFS-5632.001.patch, 
> HDFS-5632.002.patch, HDFS-5632.003.patch
>
>
> We will add snapshot feature to INodeDirectory and remove 
> INodeDirectoryWithSnapshot in this jira.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5431) support cachepool-based limit management in path-based caching

2013-12-13 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HDFS-5431:
-

{color:red}-1 overall{color}.  Here are the results of testing the latest 
attachment 
  http://issues.apache.org/jira/secure/attachment/12618742/hdfs-5431-4.patch
  against trunk revision .

{color:green}+1 @author{color}.  The patch does not contain any @author 
tags.

{color:green}+1 tests included{color}.  The patch appears to include 5 new 
or modified test files.

{color:green}+1 javac{color}.  The applied patch does not increase the 
total number of javac compiler warnings.

{color:green}+1 javadoc{color}.  The javadoc tool did not generate any 
warning messages.

{color:green}+1 eclipse:eclipse{color}.  The patch built with 
eclipse:eclipse.

{color:red}-1 findbugs{color}.  The patch appears to introduce 1 new 
Findbugs (version 1.3.9) warnings.

{color:green}+1 release audit{color}.  The applied patch does not increase 
the total number of release audit warnings.

{color:red}-1 core tests{color}.  The patch failed these unit tests in 
hadoop-hdfs-project/hadoop-hdfs:

  org.apache.hadoop.hdfs.server.namenode.ha.TestRetryCacheWithHA
  org.apache.hadoop.cli.TestCacheAdminCLI
  
org.apache.hadoop.hdfs.tools.offlineEditsViewer.TestOfflineEditsViewer
  org.apache.hadoop.hdfs.server.namenode.TestNamenodeRetryCache

{color:green}+1 contrib tests{color}.  The patch passed contrib unit tests.

Test results: 
https://builds.apache.org/job/PreCommit-HDFS-Build/5718//testReport/
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HDFS-Build/5718//artifact/trunk/patchprocess/newPatchFindbugsWarningshadoop-hdfs.html
Console output: https://builds.apache.org/job/PreCommit-HDFS-Build/5718//console

This message is automatically generated.

> support cachepool-based limit management in path-based caching
> --
>
> Key: HDFS-5431
> URL: https://issues.apache.org/jira/browse/HDFS-5431
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: datanode, namenode
>Affects Versions: 3.0.0
>Reporter: Colin Patrick McCabe
>Assignee: Andrew Wang
> Attachments: hdfs-5431-1.patch, hdfs-5431-2.patch, hdfs-5431-3.patch, 
> hdfs-5431-4.patch
>
>
> We should support cachepool-based limit management in path-based caching.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Updated] (HDFS-5484) StorageType and State in DatanodeStorageInfo in NameNode is not accurate

2013-12-13 Thread Junping Du (JIRA)

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

Junping Du updated HDFS-5484:
-

Assignee: Eric Sirianni

> StorageType and State in DatanodeStorageInfo in NameNode is not accurate
> 
>
> Key: HDFS-5484
> URL: https://issues.apache.org/jira/browse/HDFS-5484
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: datanode
>Affects Versions: Heterogeneous Storage (HDFS-2832)
>Reporter: Eric Sirianni
>Assignee: Eric Sirianni
> Fix For: Heterogeneous Storage (HDFS-2832)
>
> Attachments: HDFS-5484-HDFS-2832--2.patch, HDFS-5484-HDFS-2832.patch
>
>
> The fields in DatanodeStorageInfo are updated from two distinct paths:
> # block reports
> # storage reports (via heartbeats)
> The {{state}} and {{storageType}} fields are updated via the Block Report.  
> However, as seen in the code blow, these fields are populated from a "dummy" 
> {{DatanodeStorage}} object constructed in the DataNode:
> {code}
> BPServiceActor.blockReport() {
> //...
> // Dummy DatanodeStorage object just for sending the block report.
> DatanodeStorage dnStorage = new DatanodeStorage(storageID);
> //...
> }
> {code}
> The net effect is that the {{state}} and {{storageType}} fields are always 
> the default of {{NORMAL}} and {{DISK}} in the NameNode.
> The recommended fix is to change {{FsDatasetSpi.getBlockReports()}} from:
> {code}
> public Map getBlockReports(String bpid);
> {code}
> to:
> {code}
> public Map getBlockReports(String bpid);
> {code}
> thereby allowing {{BPServiceActor}} to send the "real" {{DatanodeStorage}} 
> object with the block report.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5566) HA namenode with QJM created from org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider should implement Closeable

2013-12-13 Thread Jimmy Xiang (JIRA)

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

Jimmy Xiang commented on HDFS-5566:
---

In NameNodeProxies#createProxy, it creates a proxy with interface 
ClientProtocol which is not Closable, and a RetryInvocationHandler, for the HA 
case.  However, ConfiguredFailoverProxyProvider doesn't have field "h", the 
InvocationHandler, which is the problem.

I think this is a valid bug we need to fix.

> HA namenode with QJM created from 
> org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider 
> should implement Closeable
> --
>
> Key: HDFS-5566
> URL: https://issues.apache.org/jira/browse/HDFS-5566
> Project: Hadoop HDFS
>  Issue Type: Bug
> Environment: hadoop-2.2.0
> hbase-0.96
>Reporter: Henry Hung
>
> When using hbase-0.96 with hadoop-2.2.0, stopping master/regionserver node 
> will result in {{Cannot close proxy - is not Closeable or does not provide 
> closeable invocation}}.
> [Mail 
> Archive|https://drive.google.com/file/d/0B22pkxoqCdvWSGFIaEpfR3lnT2M/edit?usp=sharing]
> My hadoop-2.2.0 configured as HA namenode with QJM, the configuration is like 
> this:
> {code:xml}
>   
> dfs.nameservices
> hadoopdev
>   
>   
> dfs.ha.namenodes.hadoopdev
> nn1,nn2
>   
>   
> dfs.namenode.rpc-address.hadoopdev.nn1
> fphd9.ctpilot1.com:9000
>   
>   
> dfs.namenode.http-address.hadoopdev.nn1
> fphd9.ctpilot1.com:50070
>   
>   
> dfs.namenode.rpc-address.hadoopdev.nn2
> fphd10.ctpilot1.com:9000
>   
>   
> dfs.namenode.http-address.hadoopdev.nn2
> fphd10.ctpilot1.com:50070
>   
>   
> dfs.namenode.shared.edits.dir
> 
> qjournal://fphd8.ctpilot1.com:8485;fphd9.ctpilot1.com:8485;fphd10.ctpilot1.com:8485/hadoopdev
>   
>   
> dfs.client.failover.proxy.provider.hadoopdev
> 
> org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
>   
>   
> dfs.ha.fencing.methods
> shell(/bin/true)
>   
>   
> dfs.journalnode.edits.dir
> /data/hadoop/hadoop-data-2/journal
>   
>   
> dfs.ha.automatic-failover.enabled
> true
>   
>   
> ha.zookeeper.quorum
> fphd1.ctpilot1.com:
>   
> {code}
> I traced the code and found out that when stopping the hbase master node, it 
> will try invoke method "close" on namenode, but the instance that created 
> from {{org.apache.hadoop.hdfs.NameNodeProxies.createProxy}} with 
> failoverProxyProviderClass 
> {{org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider}} 
> do not have the Closeable interface.
> If we use the Non-HA case, the created instance will be 
> {{org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB}} that 
> implement Closeable.
> TL;DR;
> With hbase connecting to hadoop HA namenode, when stopping the hbase master 
> or regionserver, it couldn't find the {{close}} method to gracefully close 
> namenode session.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Reopened] (HDFS-5566) HA namenode with QJM created from org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider should implement Closeable

2013-12-13 Thread Jimmy Xiang (JIRA)

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

Jimmy Xiang reopened HDFS-5566:
---

  Assignee: Jimmy Xiang

> HA namenode with QJM created from 
> org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider 
> should implement Closeable
> --
>
> Key: HDFS-5566
> URL: https://issues.apache.org/jira/browse/HDFS-5566
> Project: Hadoop HDFS
>  Issue Type: Bug
> Environment: hadoop-2.2.0
> hbase-0.96
>Reporter: Henry Hung
>Assignee: Jimmy Xiang
>
> When using hbase-0.96 with hadoop-2.2.0, stopping master/regionserver node 
> will result in {{Cannot close proxy - is not Closeable or does not provide 
> closeable invocation}}.
> [Mail 
> Archive|https://drive.google.com/file/d/0B22pkxoqCdvWSGFIaEpfR3lnT2M/edit?usp=sharing]
> My hadoop-2.2.0 configured as HA namenode with QJM, the configuration is like 
> this:
> {code:xml}
>   
> dfs.nameservices
> hadoopdev
>   
>   
> dfs.ha.namenodes.hadoopdev
> nn1,nn2
>   
>   
> dfs.namenode.rpc-address.hadoopdev.nn1
> fphd9.ctpilot1.com:9000
>   
>   
> dfs.namenode.http-address.hadoopdev.nn1
> fphd9.ctpilot1.com:50070
>   
>   
> dfs.namenode.rpc-address.hadoopdev.nn2
> fphd10.ctpilot1.com:9000
>   
>   
> dfs.namenode.http-address.hadoopdev.nn2
> fphd10.ctpilot1.com:50070
>   
>   
> dfs.namenode.shared.edits.dir
> 
> qjournal://fphd8.ctpilot1.com:8485;fphd9.ctpilot1.com:8485;fphd10.ctpilot1.com:8485/hadoopdev
>   
>   
> dfs.client.failover.proxy.provider.hadoopdev
> 
> org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
>   
>   
> dfs.ha.fencing.methods
> shell(/bin/true)
>   
>   
> dfs.journalnode.edits.dir
> /data/hadoop/hadoop-data-2/journal
>   
>   
> dfs.ha.automatic-failover.enabled
> true
>   
>   
> ha.zookeeper.quorum
> fphd1.ctpilot1.com:
>   
> {code}
> I traced the code and found out that when stopping the hbase master node, it 
> will try invoke method "close" on namenode, but the instance that created 
> from {{org.apache.hadoop.hdfs.NameNodeProxies.createProxy}} with 
> failoverProxyProviderClass 
> {{org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider}} 
> do not have the Closeable interface.
> If we use the Non-HA case, the created instance will be 
> {{org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB}} that 
> implement Closeable.
> TL;DR;
> With hbase connecting to hadoop HA namenode, when stopping the hbase master 
> or regionserver, it couldn't find the {{close}} method to gracefully close 
> namenode session.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (HDFS-5406) Send incremental block reports for all storages in a single call

2013-12-13 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HDFS-5406:
-

{color:red}-1 overall{color}.  Here are the results of testing the latest 
attachment 
  http://issues.apache.org/jira/secure/attachment/12618744/h5406.04.patch
  against trunk revision .

{color:green}+1 @author{color}.  The patch does not contain any @author 
tags.

{color:red}-1 tests included{color}.  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:green}+1 javac{color}.  The applied patch does not increase the 
total number of javac compiler warnings.

{color:green}+1 javadoc{color}.  The javadoc tool did not generate any 
warning messages.

{color:green}+1 eclipse:eclipse{color}.  The patch built with 
eclipse:eclipse.

{color:green}+1 findbugs{color}.  The patch does not introduce any new 
Findbugs (version 1.3.9) warnings.

{color:green}+1 release audit{color}.  The applied patch does not increase 
the total number of release audit warnings.

{color:green}+1 core tests{color}.  The patch passed unit tests in 
hadoop-hdfs-project/hadoop-hdfs.

{color:green}+1 contrib tests{color}.  The patch passed contrib unit tests.

Test results: 
https://builds.apache.org/job/PreCommit-HDFS-Build/5719//testReport/
Console output: https://builds.apache.org/job/PreCommit-HDFS-Build/5719//console

This message is automatically generated.

> Send incremental block reports for all storages in a single call
> 
>
> Key: HDFS-5406
> URL: https://issues.apache.org/jira/browse/HDFS-5406
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: datanode
>Affects Versions: 3.0.0
>Reporter: Arpit Agarwal
>Assignee: Arpit Agarwal
> Attachments: h5406.01.patch, h5406.02.patch, h5406.04.patch
>
>
> Per code review feedback from [~szetszwo] on HDFS-5390, we can combine all 
> incremental block reports in a single {{blockReceivedAndDeleted}} call.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Updated] (HDFS-5632) Add Snapshot feature to INodeDirectory

2013-12-13 Thread Tsz Wo (Nicholas), SZE (JIRA)

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

Tsz Wo (Nicholas), SZE updated HDFS-5632:
-

Hadoop Flags: Reviewed

+1 patch looks good.

> Add Snapshot feature to INodeDirectory
> --
>
> Key: HDFS-5632
> URL: https://issues.apache.org/jira/browse/HDFS-5632
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: namenode
>Reporter: Jing Zhao
>Assignee: Jing Zhao
> Attachments: HDFS-5632.000.patch, HDFS-5632.001.patch, 
> HDFS-5632.002.patch, HDFS-5632.003.patch
>
>
> We will add snapshot feature to INodeDirectory and remove 
> INodeDirectoryWithSnapshot in this jira.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)