[jira] [Commented] (HDFS-16145) CopyListing fails with FNF exception with snapshot diff

2023-08-07 Thread Siyao Meng (Jira)


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

Siyao Meng commented on HDFS-16145:
---

[~sodonnell] Looks like branch-3.2 would need HDFS-14869 first. After that it 
is a clean backport of HDFS-16145:

{code:title=On branch-3.2, commit hash 45b7a025fc67759effd6093bbf29028c3572dd1c}
$ gcp -x fc97034b29243a0509633849de55aa734859
Auto-merging 
hadoop-tools/hadoop-distcp/src/main/java/org/apache/hadoop/tools/DistCp.java
[branch-3.2 fa43ae4e7d3] HDFS-14869 Copy renamed files which are not excluded 
anymore by filter (#1530)
 Author: aasha 
 Date: Fri Dec 6 17:41:25 2019 +0530
 3 files changed, 185 insertions(+), 8 deletions(-)

$ gcp -x dac10fcc202ed6d1fe4bd852f57a6bbcbadd90fe
Auto-merging 
hadoop-tools/hadoop-distcp/src/main/java/org/apache/hadoop/tools/DistCpSync.java
Auto-merging 
hadoop-tools/hadoop-distcp/src/test/java/org/apache/hadoop/tools/TestDistCpSync.java
[branch-3.2 b825222d929] HDFS-16145. CopyListing fails with FNF exception with 
snapshot diff. (#3234)
 Author: bshashikant 
 Date: Wed Jul 28 10:29:00 2021 +0530
 2 files changed, 231 insertions(+), 3 deletions(-)
{code}

> CopyListing fails with FNF exception with snapshot diff
> ---
>
> Key: HDFS-16145
> URL: https://issues.apache.org/jira/browse/HDFS-16145
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: distcp
>Reporter: Shashikant Banerjee
>Assignee: Shashikant Banerjee
>Priority: Major
>  Labels: pull-request-available
> Fix For: 3.4.0, 3.3.2
>
>  Time Spent: 3h 20m
>  Remaining Estimate: 0h
>
> Distcp with snapshotdiff and with filters, marks a Rename as a delete 
> opeartion on the target if the rename target is to a directory which is 
> exluded by the filter. But, in cases, where files/subdirs created/modified 
> prior to the Rename post the old snapshot will still be present as 
> modified/created entries in the final copy list. Since, the parent diretory 
> is marked for deletion, these subsequent create/modify entries should be 
> ignored while building the final copy list. 
> With such cases, when the final copy list is built, distcp tries to do a 
> lookup for each create/modified file in the newer snapshot which will fail 
> as, the parent dir is already moved to a new location in later snapshot.
>  
> {code:java}
> sudo -u kms hadoop key create testkey
> hadoop fs -mkdir -p /data/gcgdlknnasg/
> hdfs crypto -createZone -keyName testkey -path /data/gcgdlknnasg/
> hadoop fs -mkdir -p /dest/gcgdlknnasg
> hdfs crypto -createZone -keyName testkey -path /dest/gcgdlknnasg
> hdfs dfs -mkdir /data/gcgdlknnasg/dir1
> hdfs dfsadmin -allowSnapshot /data/gcgdlknnasg/ 
> hdfs dfsadmin -allowSnapshot /dest/gcgdlknnasg/ 
> [root@nightly62x-1 logs]# hdfs dfs -ls -R /data/gcgdlknnasg/
> drwxrwxrwt   - hdfs supergroup  0 2021-07-16 14:05 
> /data/gcgdlknnasg/.Trash
> drwxr-xr-x   - hdfs supergroup  0 2021-07-16 13:07 
> /data/gcgdlknnasg/dir1
> [root@nightly62x-1 logs]# hdfs dfs -ls -R /dest/gcgdlknnasg/
> [root@nightly62x-1 logs]#
> hdfs dfs -put /etc/hosts /data/gcgdlknnasg/dir1/
> hdfs dfs -rm -r /data/gcgdlknnasg/dir1/
> hdfs dfs -mkdir /data/gcgdlknnasg/dir1/
> ===> Run BDR with “Abort on Snapshot Diff Failures” CHECKED now in the 
> replication schedule. You get into below error and failure of the BDR job.
> 21/07/16 15:02:30 INFO distcp.DistCp: Failed to use snapshot diff - 
> java.io.FileNotFoundException: File does not exist: 
> /data/gcgdlknnasg/.snapshot/distcp-5-46485360-new/dir1/hosts
>   at 
> org.apache.hadoop.hdfs.DistributedFileSystem$29.doCall(DistributedFileSystem.java:1494)
>   at 
> org.apache.hadoop.hdfs.DistributedFileSystem$29.doCall(DistributedFileSystem.java:1487)
> ……..
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Commented] (HDFS-16645) Multi inProgress segments caused "Invalid log manifest"

2022-07-26 Thread Siyao Meng (Jira)


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

Siyao Meng commented on HDFS-16645:
---

Thanks [~xuzq_zander] for reporting this issue and posting the patch.

Would you give some background on how/when this issue is observed?

Or even better: is there a way to steadily repro it?

> Multi inProgress segments caused "Invalid log manifest"
> ---
>
> Key: HDFS-16645
> URL: https://issues.apache.org/jira/browse/HDFS-16645
> Project: Hadoop HDFS
>  Issue Type: Bug
>Reporter: ZanderXu
>Assignee: ZanderXu
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 1h
>  Remaining Estimate: 0h
>
> {code:java}
> java.lang.IllegalStateException: Invalid log manifest (log [1-? 
> (in-progress)] overlaps [6-? (in-progress)])[[6-? (in-progress)], [1-? 
> (in-progress)]] CommittedTxId: 0 
> at 
> org.apache.hadoop.hdfs.server.protocol.RemoteEditLogManifest.checkState(RemoteEditLogManifest.java:62)
>   at 
> org.apache.hadoop.hdfs.server.protocol.RemoteEditLogManifest.(RemoteEditLogManifest.java:46)
>   at 
> org.apache.hadoop.hdfs.qjournal.server.Journal.getEditLogManifest(Journal.java:740)
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-16055) Quota is not preserved in snapshot INode

2021-06-14 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-16055:
--
Fix Version/s: (was: 3.3.2)
   3.4.0

> Quota is not preserved in snapshot INode
> 
>
> Key: HDFS-16055
> URL: https://issues.apache.org/jira/browse/HDFS-16055
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: hdfs
>Affects Versions: 3.3.0
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>  Labels: pull-request-available
> Fix For: 3.4.0
>
>  Time Spent: 1.5h
>  Remaining Estimate: 0h
>
> Quota feature is not preserved during snapshot creation, this causes 
> {{INodeDirectory#metadataEquals}} to ALWAYS return true. Therefore, 
> {{snapshotDiff}} will ALWAYS return the snapshot root as modified, even if 
> the quota is set before the snapshot creation:
> {code:bash}
> $ hdfs snapshotDiff /diffTest s0 .
> Difference between snapshot s0 and current directory under directory 
> /diffTest:
> M .
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-16055) Quota is not preserved in snapshot INode

2021-06-14 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-16055:
--
   Fix Version/s: 3.3.2
Target Version/s:   (was: 3.3.2)
  Resolution: Fixed
  Status: Resolved  (was: Patch Available)

> Quota is not preserved in snapshot INode
> 
>
> Key: HDFS-16055
> URL: https://issues.apache.org/jira/browse/HDFS-16055
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: hdfs
>Affects Versions: 3.3.0
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>  Labels: pull-request-available
> Fix For: 3.3.2
>
>  Time Spent: 1.5h
>  Remaining Estimate: 0h
>
> Quota feature is not preserved during snapshot creation, this causes 
> {{INodeDirectory#metadataEquals}} to ALWAYS return true. Therefore, 
> {{snapshotDiff}} will ALWAYS return the snapshot root as modified, even if 
> the quota is set before the snapshot creation:
> {code:bash}
> $ hdfs snapshotDiff /diffTest s0 .
> Difference between snapshot s0 and current directory under directory 
> /diffTest:
> M .
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-16055) Quota is not preserved in snapshot INode

2021-06-04 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-16055:
--
Status: Patch Available  (was: Open)

> Quota is not preserved in snapshot INode
> 
>
> Key: HDFS-16055
> URL: https://issues.apache.org/jira/browse/HDFS-16055
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: hdfs
>Affects Versions: 3.3.0
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> Quota feature is not preserved during snapshot creation, this causes 
> {{INodeDirectory#metadataEquals}} to ALWAYS return true. Therefore, 
> {{snapshotDiff}} will ALWAYS return the snapshot root as modified, even if 
> the quota is set before the snapshot creation:
> {code:bash}
> $ hdfs snapshotDiff /diffTest s0 .
> Difference between snapshot s0 and current directory under directory 
> /diffTest:
> M .
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Created] (HDFS-16055) Quota is not preserved in snapshot INode

2021-06-04 Thread Siyao Meng (Jira)
Siyao Meng created HDFS-16055:
-

 Summary: Quota is not preserved in snapshot INode
 Key: HDFS-16055
 URL: https://issues.apache.org/jira/browse/HDFS-16055
 Project: Hadoop HDFS
  Issue Type: Bug
  Components: hdfs
Affects Versions: 3.3.0
Reporter: Siyao Meng
Assignee: Siyao Meng


Quota feature is not preserved during snapshot creation, this causes 
{{INodeDirectory#metadataEquals}} to ALWAYS return true. Therefore, 
{{snapshotDiff}} will ALWAYS return the snapshot root as modified, even if the 
quota is set before the snapshot creation:

{code:bash}
$ hdfs snapshotDiff /diffTest s0 .
Difference between snapshot s0 and current directory under directory /diffTest:
M   .
{code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15997) Implement dfsadmin -provisionSnapshotTrash -all

2021-05-10 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15997:
--
Fix Version/s: 3.4.0
   Resolution: Fixed
   Status: Resolved  (was: Patch Available)

> Implement dfsadmin -provisionSnapshotTrash -all
> ---
>
> Key: HDFS-15997
> URL: https://issues.apache.org/jira/browse/HDFS-15997
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: dfsadmin
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>  Labels: pull-request-available
> Fix For: 3.4.0
>
>  Time Spent: 1h
>  Remaining Estimate: 0h
>
> Currently dfsadmin -provisionSnapshotTrash only supports creating trash root 
> one by one.
> This jira adds -all argument to create trash root on ALL snapshottable dirs.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15982) Deleted data using HTTP API should be saved to the trash

2021-04-29 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15982:
--
Component/s: hdfs-client

> Deleted data using HTTP API should be saved to the trash
> 
>
> Key: HDFS-15982
> URL: https://issues.apache.org/jira/browse/HDFS-15982
> Project: Hadoop HDFS
>  Issue Type: New Feature
>  Components: hdfs, hdfs-client, httpfs, webhdfs
>Reporter: Bhavik Patel
>Assignee: Viraj Jasani
>Priority: Major
>  Labels: pull-request-available
> Attachments: Screenshot 2021-04-23 at 4.19.42 PM.png, Screenshot 
> 2021-04-23 at 4.36.57 PM.png
>
>  Time Spent: 7h 50m
>  Remaining Estimate: 0h
>
> If we delete the data from the Web UI then it should be first moved to 
> configured/default Trash directory and after the trash interval time, it 
> should be removed. currently, data directly removed from the system[This 
> behavior should be the same as CLI cmd]
> This can be helpful when the user accidentally deletes data from the Web UI.
> Similarly we should provide "Skip Trash" option in HTTP API as well which 
> should be accessible through Web UI.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15982) Deleted data using HTTP API should be saved to the trash

2021-04-29 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15982:
--
Labels: pull-request-available  (was: incompatibleChange 
pull-request-available)

> Deleted data using HTTP API should be saved to the trash
> 
>
> Key: HDFS-15982
> URL: https://issues.apache.org/jira/browse/HDFS-15982
> Project: Hadoop HDFS
>  Issue Type: New Feature
>  Components: hdfs, httpfs, webhdfs
>Reporter: Bhavik Patel
>Assignee: Viraj Jasani
>Priority: Major
>  Labels: pull-request-available
> Attachments: Screenshot 2021-04-23 at 4.19.42 PM.png, Screenshot 
> 2021-04-23 at 4.36.57 PM.png
>
>  Time Spent: 7h 50m
>  Remaining Estimate: 0h
>
> If we delete the data from the Web UI then it should be first moved to 
> configured/default Trash directory and after the trash interval time, it 
> should be removed. currently, data directly removed from the system[This 
> behavior should be the same as CLI cmd]
> This can be helpful when the user accidentally deletes data from the Web UI.
> Similarly we should provide "Skip Trash" option in HTTP API as well which 
> should be accessible through Web UI.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15982) Deleted data using HTTP API should be saved to the trash

2021-04-29 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15982:
--
Labels: incompatibleChange pull-request-available  (was: 
pull-request-available)

> Deleted data using HTTP API should be saved to the trash
> 
>
> Key: HDFS-15982
> URL: https://issues.apache.org/jira/browse/HDFS-15982
> Project: Hadoop HDFS
>  Issue Type: New Feature
>  Components: hdfs, httpfs, webhdfs
>Reporter: Bhavik Patel
>Assignee: Viraj Jasani
>Priority: Major
>  Labels: incompatibleChange, pull-request-available
> Attachments: Screenshot 2021-04-23 at 4.19.42 PM.png, Screenshot 
> 2021-04-23 at 4.36.57 PM.png
>
>  Time Spent: 6h
>  Remaining Estimate: 0h
>
> If we delete the data from the Web UI then it should be first moved to 
> configured/default Trash directory and after the trash interval time, it 
> should be removed. currently, data directly removed from the system[This 
> behavior should be the same as CLI cmd]
> This can be helpful when the user accidentally deletes data from the Web UI.
> Similarly we should provide "Skip Trash" option in HTTP API as well which 
> should be accessible through Web UI.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15997) Implement dfsadmin -provisionSnapshotTrash -all

2021-04-27 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15997:
--
Description: 
Currently dfsadmin -provisionSnapshotTrash only supports creating trash root 
one by one.

This jira adds -all argument to create trash root on ALL snapshottable dirs.

  was:Currently 


> Implement dfsadmin -provisionSnapshotTrash -all
> ---
>
> Key: HDFS-15997
> URL: https://issues.apache.org/jira/browse/HDFS-15997
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: dfsadmin
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Currently dfsadmin -provisionSnapshotTrash only supports creating trash root 
> one by one.
> This jira adds -all argument to create trash root on ALL snapshottable dirs.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15997) Implement dfsadmin -provisionSnapshotTrash -all

2021-04-27 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15997:
--
Description: Currently 

> Implement dfsadmin -provisionSnapshotTrash -all
> ---
>
> Key: HDFS-15997
> URL: https://issues.apache.org/jira/browse/HDFS-15997
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: dfsadmin
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Currently 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15997) Implement dfsadmin -provisionSnapshotTrash -all

2021-04-26 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15997:
--
Status: Patch Available  (was: Open)

> Implement dfsadmin -provisionSnapshotTrash -all
> ---
>
> Key: HDFS-15997
> URL: https://issues.apache.org/jira/browse/HDFS-15997
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: dfsadmin
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>




--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Created] (HDFS-15997) Implement dfsadmin -provisionSnapshotTrash -all

2021-04-26 Thread Siyao Meng (Jira)
Siyao Meng created HDFS-15997:
-

 Summary: Implement dfsadmin -provisionSnapshotTrash -all
 Key: HDFS-15997
 URL: https://issues.apache.org/jira/browse/HDFS-15997
 Project: Hadoop HDFS
  Issue Type: Sub-task
  Components: dfsadmin
Reporter: Siyao Meng
Assignee: Siyao Meng






--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Comment Edited] (HDFS-15614) Initialize snapshot trash root during NameNode startup if enabled

2021-04-14 Thread Siyao Meng (Jira)


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

Siyao Meng edited comment on HDFS-15614 at 4/14/21, 11:31 AM:
--

Thanks for bringing this up [~ayushtkn].


{quote}
And this fails, And yep there is an ambiguity.
{quote}

The reason is that 
[{{DFS#provisionSnapshotTrash}}|https://github.com/apache/hadoop/blob/c6539e3289711d29f508930bbda40302f48ddf4c/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java#L2984]
 followed EZ counterpart's 
[{{DFS#provisionEZTrash}}|https://github.com/apache/hadoop/blob/c6539e3289711d29f508930bbda40302f48ddf4c/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java#L2913]
 implementation. {{dfs.provisionSnapshotTrash}} is not automatically called 
from {{dfs.allowSnapshot}}, following what encryption zone has done similarly.

Therefore this would be the same deal for encryption zone trash root creation. 
When replacing {{dfs.allowSnapshot}} calls with {{dfs.createEncryptionZone}} in 
the first test case we should also find trash root inside encryption zone 
missing with {{dfs.provisionSnapshotTrash}} call *alone*.

I suggest some guidelines should be posted and in javadoc adding that 
allowSnapshot should better performed with dfsadmin CLI (and 
createEncryptionZone if there aren't already).


{quote}
How come a client side feature that important, that can make the cluster go 
down in times of critical situation like failover, Again a test to show that:
{quote}

[name 
quota|https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsQuotaAdminGuide.html#Name_Quotas]
 can become an issue indeed.


I think I got your point. Maybe a better way to create those necessary Trash 
dirs is to ask an admin to run dfsadmin command *manually* after flipping 
{{dfs.namenode.snapshot.trashroot.enabled}} to {{true}}.

Currently we already have {{dfsadmin -provisionSnapshotTrash}} but can only be 
done one by one. {{dfsadmin -provisionSnapshotTrash -all}} can be implemented 
to achieve this.


Cheers,
Siyao


was (Author: smeng):
Thanks for bringing this up [~ayushtkn].


{quote}
And this fails, And yep there is an ambiguity.
{quote}

The reason is that 
[{{DFS#provisionSnapshotTrash}}|https://github.com/apache/hadoop/blob/c6539e3289711d29f508930bbda40302f48ddf4c/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java#L2984]
 followed EZ counterpart's 
[{{DFS#provisionEZTrash}}|https://github.com/apache/hadoop/blob/c6539e3289711d29f508930bbda40302f48ddf4c/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java#L2913]
 implementation. {{dfs.provisionSnapshotTrash}} is not automatically called 
from {{dfs.allowSnapshot}}, following what .

Therefore this would be the same deal for encryption zone trash root creation. 
When replacing {{dfs.allowSnapshot}} calls with {{dfs.createEncryptionZone}} in 
the first test case we should also find trash root inside encryption zone 
missing with {{dfs.provisionSnapshotTrash}} call *alone*.

I suggest some guidelines should be posted and in javadoc adding that 
allowSnapshot should better performed with dfsadmin CLI (and 
createEncryptionZone if there aren't already).


{quote}
How come a client side feature that important, that can make the cluster go 
down in times of critical situation like failover, Again a test to show that:
{quote}

[name 
quota|https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsQuotaAdminGuide.html#Name_Quotas]
 can become an issue indeed.


I think I got your point. Maybe a better way to create those necessary Trash 
dirs is to ask an admin to run dfsadmin command *manually* after flipping 
{{dfs.namenode.snapshot.trashroot.enabled}} to {{true}}.

Currently we already have {{dfsadmin -provisionSnapshotTrash}} but can only be 
done one by one. {{dfsadmin -provisionSnapshotTrash -all}} can be implemented 
to achieve this.


Cheers,
Siyao

> Initialize snapshot trash root during NameNode startup if enabled
> -
>
> Key: HDFS-15614
> URL: https://issues.apache.org/jira/browse/HDFS-15614
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>  Labels: pull-request-available
> Fix For: 3.4.0
>
>  Time Spent: 3h 10m
>  Remaining Estimate: 0h
>
> This is a follow-up to HDFS-15607.
> Goal:
> Initialize (create) snapshot trash root for all existing snapshottable 
> directories if {{dfs.namenode.snapshot.trashroot.enabled}} is set to 
> {{true}}. So admins won't have to run {{dfsadmin -provisionTrash}} manually 
> on 

[jira] [Commented] (HDFS-15614) Initialize snapshot trash root during NameNode startup if enabled

2021-04-14 Thread Siyao Meng (Jira)


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

Siyao Meng commented on HDFS-15614:
---

Thanks for bringing this up [~ayushtkn].


{quote}
And this fails, And yep there is an ambiguity.
{quote}

The reason is that 
[{{DFS#provisionSnapshotTrash}}|https://github.com/apache/hadoop/blob/c6539e3289711d29f508930bbda40302f48ddf4c/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java#L2984]
 followed EZ counterpart's 
[{{DFS#provisionEZTrash}}|https://github.com/apache/hadoop/blob/c6539e3289711d29f508930bbda40302f48ddf4c/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java#L2913]
 implementation. {{dfs.provisionSnapshotTrash}} is not automatically called 
from {{dfs.allowSnapshot}}, following what .

Therefore this would be the same deal for encryption zone trash root creation. 
When replacing {{dfs.allowSnapshot}} calls with {{dfs.createEncryptionZone}} in 
the first test case we should also find trash root inside encryption zone 
missing with {{dfs.provisionSnapshotTrash}} call *alone*.

I suggest some guidelines should be posted and in javadoc adding that 
allowSnapshot should better performed with dfsadmin CLI (and 
createEncryptionZone if there aren't already).


{quote}
How come a client side feature that important, that can make the cluster go 
down in times of critical situation like failover, Again a test to show that:
{quote}

[name 
quota|https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsQuotaAdminGuide.html#Name_Quotas]
 can become an issue indeed.


I think I got your point. Maybe a better way to create those necessary Trash 
dirs is to ask an admin to run dfsadmin command *manually* after flipping 
{{dfs.namenode.snapshot.trashroot.enabled}} to {{true}}.

Currently we already have {{dfsadmin -provisionSnapshotTrash}} but can only be 
done one by one. {{dfsadmin -provisionSnapshotTrash -all}} can be implemented 
to achieve this.


Cheers,
Siyao

> Initialize snapshot trash root during NameNode startup if enabled
> -
>
> Key: HDFS-15614
> URL: https://issues.apache.org/jira/browse/HDFS-15614
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>  Labels: pull-request-available
> Fix For: 3.4.0
>
>  Time Spent: 3h 10m
>  Remaining Estimate: 0h
>
> This is a follow-up to HDFS-15607.
> Goal:
> Initialize (create) snapshot trash root for all existing snapshottable 
> directories if {{dfs.namenode.snapshot.trashroot.enabled}} is set to 
> {{true}}. So admins won't have to run {{dfsadmin -provisionTrash}} manually 
> on all those existing snapshottable directories.
> The change is expected to land in {{FSNamesystem}}.
> Discussion:
> 1. Currently in HDFS-15607, the snapshot trash root creation logic is on the 
> client side. But in order for NN to create it at startup, the logic must 
> (also) be implemented on the server side as well. -- which is also a 
> requirement by WebHDFS (HDFS-15612).
> 2. Alternatively, we can provide an extra parameter to the 
> {{-provisionTrash}} command like: {{dfsadmin -provisionTrash -all}} to 
> initialize/provision trash root on all existing snapshottable dirs.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15820) Ensure snapshot root trash provisioning happens only post safe mode exit

2021-02-06 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15820:
--
Fix Version/s: 3.4.0
   Resolution: Fixed
   Status: Resolved  (was: Patch Available)

> Ensure snapshot root trash provisioning happens only post safe mode exit
> 
>
> Key: HDFS-15820
> URL: https://issues.apache.org/jira/browse/HDFS-15820
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Shashikant Banerjee
>Assignee: Shashikant Banerjee
>Priority: Major
>  Labels: pull-request-available
> Fix For: 3.4.0
>
>  Time Spent: 1.5h
>  Remaining Estimate: 0h
>
> Currently, on namenode startup, snapshot trash root provisioning starts as 
> along with trash emptier service but namenode might not be out of safe mode 
> by then. This can fail the snapshot trash dir creation thereby crashing the 
> namenode. The idea here is to trigger snapshot trash provisioning only post 
> safe mode exit.
> {code:java}
> 2021-02-04 11:23:47,323 ERROR 
> org.apache.hadoop.hdfs.server.namenode.NameNode: Error encountered requiring 
> NN shutdown. Shutting down immediately.
> org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create 
> directory /upgrade/.Trash. Name node is in safe mode.
> The reported blocks 0 needs additional 1383 blocks to reach the threshold 
> 0.9990 of total blocks 1385.
> The number of live datanodes 0 needs an additional 1 live datanodes to reach 
> the minimum number 1.
> Safe mode will be turned off automatically once the thresholds have been 
> reached. NamenodeHostName:quasar-brabeg-5.quasar-brabeg.root.hwx.site
> at 
> org.apache.hadoop.hdfs.server.namenode.FSNamesystem.newSafemodeException(FSNamesystem.java:1542)
> at 
> org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkNameNodeSafeMode(FSNamesystem.java:1529)
> at 
> org.apache.hadoop.hdfs.server.namenode.FSNamesystem.mkdirs(FSNamesystem.java:3288)
> at 
> org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkAndProvisionSnapshotTrashRoots(FSNamesystem.java:8269)
> at 
> org.apache.hadoop.hdfs.server.namenode.NameNode$NameNodeHAContext.startActiveServices(NameNode.java:1939)
> at 
> org.apache.hadoop.hdfs.server.namenode.ha.ActiveState.enterState(ActiveState.java:61)
> at 
> org.apache.hadoop.hdfs.server.namenode.NameNode.(NameNode.java:967)
> at 
> org.apache.hadoop.hdfs.server.namenode.NameNode.(NameNode.java:936)
> at 
> org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1673)
> at 
> org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1740)
> 2021-02-04 11:23:47,334 INFO org.apache.hadoop.util.ExitUtil: Exiting with 
> status 1: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot 
> create directory /upgrade/.Trash. Name node is in safe mode.
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15820) Ensure snapshot root trash provisioning happens only post safe mode exit

2021-02-04 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15820:
--
Status: Patch Available  (was: Open)

> Ensure snapshot root trash provisioning happens only post safe mode exit
> 
>
> Key: HDFS-15820
> URL: https://issues.apache.org/jira/browse/HDFS-15820
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Shashikant Banerjee
>Assignee: Shashikant Banerjee
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Currently, on namenode startup, snapshot trash root provisioning starts as 
> along with trash emptier service but namenode might not be out of safe mode 
> by then. This can fail the snapshot trash dir creation thereby crashing the 
> namenode. The idea here is to trigger snapshot trash provisioning only post 
> safe mode exit.
> {code:java}
> 2021-02-04 11:23:47,323 ERROR 
> org.apache.hadoop.hdfs.server.namenode.NameNode: Error encountered requiring 
> NN shutdown. Shutting down immediately.
> org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create 
> directory /upgrade/.Trash. Name node is in safe mode.
> The reported blocks 0 needs additional 1383 blocks to reach the threshold 
> 0.9990 of total blocks 1385.
> The number of live datanodes 0 needs an additional 1 live datanodes to reach 
> the minimum number 1.
> Safe mode will be turned off automatically once the thresholds have been 
> reached. NamenodeHostName:quasar-brabeg-5.quasar-brabeg.root.hwx.site
> at 
> org.apache.hadoop.hdfs.server.namenode.FSNamesystem.newSafemodeException(FSNamesystem.java:1542)
> at 
> org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkNameNodeSafeMode(FSNamesystem.java:1529)
> at 
> org.apache.hadoop.hdfs.server.namenode.FSNamesystem.mkdirs(FSNamesystem.java:3288)
> at 
> org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkAndProvisionSnapshotTrashRoots(FSNamesystem.java:8269)
> at 
> org.apache.hadoop.hdfs.server.namenode.NameNode$NameNodeHAContext.startActiveServices(NameNode.java:1939)
> at 
> org.apache.hadoop.hdfs.server.namenode.ha.ActiveState.enterState(ActiveState.java:61)
> at 
> org.apache.hadoop.hdfs.server.namenode.NameNode.(NameNode.java:967)
> at 
> org.apache.hadoop.hdfs.server.namenode.NameNode.(NameNode.java:936)
> at 
> org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1673)
> at 
> org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1740)
> 2021-02-04 11:23:47,334 INFO org.apache.hadoop.util.ExitUtil: Exiting with 
> status 1: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot 
> create directory /upgrade/.Trash. Name node is in safe mode.
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Commented] (HDFS-15820) Ensure snapshot root trash provisioning happens only post safe mode exit

2021-02-04 Thread Siyao Meng (Jira)


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

Siyao Meng commented on HDFS-15820:
---

[~shashikant] will do.

> Ensure snapshot root trash provisioning happens only post safe mode exit
> 
>
> Key: HDFS-15820
> URL: https://issues.apache.org/jira/browse/HDFS-15820
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Shashikant Banerjee
>Assignee: Shashikant Banerjee
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Currently, on namenode startup, snapshot trash root provisioning starts as 
> along with trash emptier service but namenode might not be out of safe mode 
> by then. This can fail the snapshot trash dir creation thereby crashing the 
> namenode. The idea here is to trigger snapshot trash provisioning only post 
> safe mode exit.
> {code:java}
> 2021-02-04 11:23:47,323 ERROR 
> org.apache.hadoop.hdfs.server.namenode.NameNode: Error encountered requiring 
> NN shutdown. Shutting down immediately.
> org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create 
> directory /upgrade/.Trash. Name node is in safe mode.
> The reported blocks 0 needs additional 1383 blocks to reach the threshold 
> 0.9990 of total blocks 1385.
> The number of live datanodes 0 needs an additional 1 live datanodes to reach 
> the minimum number 1.
> Safe mode will be turned off automatically once the thresholds have been 
> reached. NamenodeHostName:quasar-brabeg-5.quasar-brabeg.root.hwx.site
> at 
> org.apache.hadoop.hdfs.server.namenode.FSNamesystem.newSafemodeException(FSNamesystem.java:1542)
> at 
> org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkNameNodeSafeMode(FSNamesystem.java:1529)
> at 
> org.apache.hadoop.hdfs.server.namenode.FSNamesystem.mkdirs(FSNamesystem.java:3288)
> at 
> org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkAndProvisionSnapshotTrashRoots(FSNamesystem.java:8269)
> at 
> org.apache.hadoop.hdfs.server.namenode.NameNode$NameNodeHAContext.startActiveServices(NameNode.java:1939)
> at 
> org.apache.hadoop.hdfs.server.namenode.ha.ActiveState.enterState(ActiveState.java:61)
> at 
> org.apache.hadoop.hdfs.server.namenode.NameNode.(NameNode.java:967)
> at 
> org.apache.hadoop.hdfs.server.namenode.NameNode.(NameNode.java:936)
> at 
> org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1673)
> at 
> org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1740)
> 2021-02-04 11:23:47,334 INFO org.apache.hadoop.util.ExitUtil: Exiting with 
> status 1: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot 
> create directory /upgrade/.Trash. Name node is in safe mode.
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15689) allow/disallowSnapshot on EZ roots shouldn't fail due to trash provisioning/emptiness check

2020-12-03 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15689:
--
Fix Version/s: 3.4.0
   Resolution: Fixed
   Status: Resolved  (was: Patch Available)

> allow/disallowSnapshot on EZ roots shouldn't fail due to trash 
> provisioning/emptiness check
> ---
>
> Key: HDFS-15689
> URL: https://issues.apache.org/jira/browse/HDFS-15689
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs
>Affects Versions: 3.4.0
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>  Labels: pull-request-available
> Fix For: 3.4.0
>
>  Time Spent: 2.5h
>  Remaining Estimate: 0h
>
> h2. Background
> 1. HDFS-15607 added a feature that when 
> {{dfs.namenode.snapshot.trashroot.enabled=true}}, allowSnapshot will 
> automatically create a .Trash directory immediately after allowSnapshot 
> operation so files deleted will be moved into the trash root inside the 
> snapshottable directory.
> 2. HDFS-15539 prevents admins from disallowing snapshot if the trash root 
> inside is not empty
> h2. Problem
> 1. When {{dfs.namenode.snapshot.trashroot.enabled=true}}, currently if the 
> directory (to be allowed snapshot on) is an EZ root, it throws 
> {{FileAlreadyExistsException}} because the trash root already exists 
> (encryption zone has already created an internal trash root).
> 2. Similarly, at the moment if we disallow snapshot on an EZ root, it may 
> complain that the trash root is not empty (or delete it if empty, which is 
> not desired since EZ will still need it).
> h2. Solution
> 1. Let allowSnapshot succeed by not throwing {{FileAlreadyExistsException}}, 
> but informs the admin that the trash already exists.
> 2. Ignore {{checkTrashRootAndRemoveIfEmpty()}} check if path is EZ root.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15689) allow/disallowSnapshot on EZ roots shouldn't fail due to trash provisioning/emptiness check

2020-11-18 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15689:
--
Status: Patch Available  (was: Open)

> allow/disallowSnapshot on EZ roots shouldn't fail due to trash 
> provisioning/emptiness check
> ---
>
> Key: HDFS-15689
> URL: https://issues.apache.org/jira/browse/HDFS-15689
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: hdfs
>Affects Versions: 3.4.0
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> h2. Background
> 1. HDFS-15607 added a feature that when 
> {{dfs.namenode.snapshot.trashroot.enabled=true}}, allowSnapshot will 
> automatically create a .Trash directory immediately after allowSnapshot 
> operation so files deleted will be moved into the trash root inside the 
> snapshottable directory.
> 2. HDFS-15539 prevents admins from disallowing snapshot if the trash root 
> inside is not empty
> h2. Problem
> 1. When {{dfs.namenode.snapshot.trashroot.enabled=true}}, currently if the 
> directory (to be allowed snapshot on) is an EZ root, it throws 
> {{FileAlreadyExistsException}} because the trash root already exists 
> (encryption zone has already created an internal trash root).
> 2. Similarly, at the moment if we disallow snapshot on an EZ root, it may 
> complain that the trash root is not empty (or delete it if empty, which is 
> not desired since EZ will still need it).
> h2. Solution
> 1. Let allowSnapshot succeed by not throwing {{FileAlreadyExistsException}}, 
> but informs the admin that the trash already exists.
> 2. Ignore {{checkTrashRootAndRemoveIfEmpty()}} check if path is EZ root.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15689) allow/disallowSnapshot on EZ roots shouldn't fail due to trash provisioning/emptiness check

2020-11-18 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15689:
--
Summary: allow/disallowSnapshot on EZ roots shouldn't fail due to trash 
provisioning/emptiness check  (was: allow/disallowSnapshot on EZ roots 
shouldn't fail due to trash root provisioning or emptiness check)

> allow/disallowSnapshot on EZ roots shouldn't fail due to trash 
> provisioning/emptiness check
> ---
>
> Key: HDFS-15689
> URL: https://issues.apache.org/jira/browse/HDFS-15689
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: hdfs
>Affects Versions: 3.4.0
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> h2. Background
> 1. HDFS-15607 added a feature that when 
> {{dfs.namenode.snapshot.trashroot.enabled=true}}, allowSnapshot will 
> automatically create a .Trash directory immediately after allowSnapshot 
> operation so files deleted will be moved into the trash root inside the 
> snapshottable directory.
> 2. HDFS-15539 prevents admins from disallowing snapshot if the trash root 
> inside is not empty
> h2. Problem
> 1. When {{dfs.namenode.snapshot.trashroot.enabled=true}}, currently if the 
> directory (to be allowed snapshot on) is an EZ root, it throws 
> {{FileAlreadyExistsException}} because the trash root already exists 
> (encryption zone has already created an internal trash root).
> 2. Similarly, at the moment if we disallow snapshot on an EZ root, it may 
> complain that the trash root is not empty (or delete it if empty, which is 
> not desired since EZ will still need it).
> h2. Solution
> 1. Let allowSnapshot succeed by not throwing {{FileAlreadyExistsException}}, 
> but informs the admin that the trash already exists.
> 2. Ignore {{checkTrashRootAndRemoveIfEmpty()}} check if path is EZ root.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Created] (HDFS-15689) allow/disallowSnapshot on EZ roots shouldn't fail due to trash root provisioning or emptiness check

2020-11-18 Thread Siyao Meng (Jira)
Siyao Meng created HDFS-15689:
-

 Summary: allow/disallowSnapshot on EZ roots shouldn't fail due to 
trash root provisioning or emptiness check
 Key: HDFS-15689
 URL: https://issues.apache.org/jira/browse/HDFS-15689
 Project: Hadoop HDFS
  Issue Type: Bug
  Components: hdfs
Affects Versions: 3.4.0
Reporter: Siyao Meng
Assignee: Siyao Meng


h2. Background

1. HDFS-15607 added a feature that when 
{{dfs.namenode.snapshot.trashroot.enabled=true}}, allowSnapshot will 
automatically create a .Trash directory immediately after allowSnapshot 
operation so files deleted will be moved into the trash root inside the 
snapshottable directory.
2. HDFS-15539 prevents admins from disallowing snapshot if the trash root 
inside is not empty

h2. Problem

1. When {{dfs.namenode.snapshot.trashroot.enabled=true}}, currently if the 
directory (to be allowed snapshot on) is an EZ root, it throws 
{{FileAlreadyExistsException}} because the trash root already exists 
(encryption zone has already created an internal trash root).
2. Similarly, at the moment if we disallow snapshot on an EZ root, it may 
complain that the trash root is not empty (or delete it if empty, which is not 
desired since EZ will still need it).

h2. Solution

1. Let allowSnapshot succeed by not throwing {{FileAlreadyExistsException}}, 
but informs the admin that the trash already exists.
2. Ignore {{checkTrashRootAndRemoveIfEmpty()}} check if path is EZ root.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Commented] (HDFS-15607) Create trash dir when allowing snapshottable dir

2020-11-10 Thread Siyao Meng (Jira)


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

Siyao Meng commented on HDFS-15607:
---

Note this jira has an addendum patch that fixes a small bug where 
disallowsnapshot() throws a different exception than before when called on a 
*file*. To learn more, see the description for 
[PR#2448|https://github.com/apache/hadoop/pull/2448].

> Create trash dir when allowing snapshottable dir
> 
>
> Key: HDFS-15607
> URL: https://issues.apache.org/jira/browse/HDFS-15607
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs
>Affects Versions: 3.4.0
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>  Labels: pull-request-available
> Fix For: 3.4.0
>
>  Time Spent: 2h 40m
>  Remaining Estimate: 0h
>
> In {{TrashPolicyDefault}}, the {{.Trash}} directory will be created with 
> permission 700 (and without sticky bit) by the first user that moves a file 
> to the trash. This is an issue when other users try to move files to that 
> trash because they may not have the permission to move to that trash if the 
> trash root is shared. -- in this case, snapshottable directories.
> This only affects users when trash is enabled inside snapshottable 
> directories ({{dfs.namenode.snapshot.trashroot.enabled}} set to true), and 
> when a user performing move to trash operations doesn't have admin 
> permissions.
> Solution: Create a {{.Trash}} directory with 777 permission and sticky bits 
> enabled (similar solution as HDFS-10324).
> Also need to deal with some corner cases:
> 1. even when the snapshottable directory trash root config is not enabled 
> ({{dfs.namenode.snapshot.trashroot.enabled}} set to false), create the 
> {{.Trash}} directory anyway? Or should we ask the admin to provision trash 
> manually after enabling {{dfs.namenode.snapshot.trashroot.enabled}} on an 
> existing cluster?
> - If the cluster is just upgraded, we need to provision trash manually anyway.
> 2. When immediately disallowing trash, it shouldn't fail. just remove the 
> .Trash directory when disallowing snapshot on a dir if it is empty?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15614) Initialize snapshot trash root during NameNode startup if enabled

2020-10-13 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15614:
--
Fix Version/s: 3.3.1
   Resolution: Fixed
   Status: Resolved  (was: Patch Available)

> Initialize snapshot trash root during NameNode startup if enabled
> -
>
> Key: HDFS-15614
> URL: https://issues.apache.org/jira/browse/HDFS-15614
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>  Labels: pull-request-available
> Fix For: 3.3.1
>
>  Time Spent: 3h
>  Remaining Estimate: 0h
>
> This is a follow-up to HDFS-15607.
> Goal:
> Initialize (create) snapshot trash root for all existing snapshottable 
> directories if {{dfs.namenode.snapshot.trashroot.enabled}} is set to 
> {{true}}. So admins won't have to run {{dfsadmin -provisionTrash}} manually 
> on all those existing snapshottable directories.
> The change is expected to land in {{FSNamesystem}}.
> Discussion:
> 1. Currently in HDFS-15607, the snapshot trash root creation logic is on the 
> client side. But in order for NN to create it at startup, the logic must 
> (also) be implemented on the server side as well. -- which is also a 
> requirement by WebHDFS (HDFS-15612).
> 2. Alternatively, we can provide an extra parameter to the 
> {{-provisionTrash}} command like: {{dfsadmin -provisionTrash -all}} to 
> initialize/provision trash root on all existing snapshottable dirs.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15614) Initialize snapshot trash root during NameNode startup if enabled

2020-10-13 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15614:
--
Fix Version/s: (was: 3.3.1)
   3.4.0

> Initialize snapshot trash root during NameNode startup if enabled
> -
>
> Key: HDFS-15614
> URL: https://issues.apache.org/jira/browse/HDFS-15614
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>  Labels: pull-request-available
> Fix For: 3.4.0
>
>  Time Spent: 3h
>  Remaining Estimate: 0h
>
> This is a follow-up to HDFS-15607.
> Goal:
> Initialize (create) snapshot trash root for all existing snapshottable 
> directories if {{dfs.namenode.snapshot.trashroot.enabled}} is set to 
> {{true}}. So admins won't have to run {{dfsadmin -provisionTrash}} manually 
> on all those existing snapshottable directories.
> The change is expected to land in {{FSNamesystem}}.
> Discussion:
> 1. Currently in HDFS-15607, the snapshot trash root creation logic is on the 
> client side. But in order for NN to create it at startup, the logic must 
> (also) be implemented on the server side as well. -- which is also a 
> requirement by WebHDFS (HDFS-15612).
> 2. Alternatively, we can provide an extra parameter to the 
> {{-provisionTrash}} command like: {{dfsadmin -provisionTrash -all}} to 
> initialize/provision trash root on all existing snapshottable dirs.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15614) Initialize snapshot trash root during NameNode startup if enabled

2020-10-08 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15614:
--
Status: Patch Available  (was: In Progress)

> Initialize snapshot trash root during NameNode startup if enabled
> -
>
> Key: HDFS-15614
> URL: https://issues.apache.org/jira/browse/HDFS-15614
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> This is a follow-up to HDFS-15607.
> Goal:
> Initialize (create) snapshot trash root for all existing snapshottable 
> directories if {{dfs.namenode.snapshot.trashroot.enabled}} is set to 
> {{true}}. So admins won't have to run {{dfsadmin -provisionTrash}} manually 
> on all those existing snapshottable directories.
> The change is expected to land in {{FSNamesystem}}.
> Discussion:
> 1. Currently in HDFS-15607, the snapshot trash root creation logic is on the 
> client side. But in order for NN to create it at startup, the logic must 
> (also) be implemented on the server side as well. -- which is also a 
> requirement by WebHDFS (HDFS-15612).
> 2. Alternatively, we can provide an extra parameter to the 
> {{-provisionTrash}} command like: {{dfsadmin -provisionTrash -all}} to 
> initialize/provision trash root on all existing snapshottable dirs.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Work started] (HDFS-15614) Initialize snapshot trash root during NameNode startup if enabled

2020-10-08 Thread Siyao Meng (Jira)


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

Work on HDFS-15614 started by Siyao Meng.
-
> Initialize snapshot trash root during NameNode startup if enabled
> -
>
> Key: HDFS-15614
> URL: https://issues.apache.org/jira/browse/HDFS-15614
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> This is a follow-up to HDFS-15607.
> Goal:
> Initialize (create) snapshot trash root for all existing snapshottable 
> directories if {{dfs.namenode.snapshot.trashroot.enabled}} is set to 
> {{true}}. So admins won't have to run {{dfsadmin -provisionTrash}} manually 
> on all those existing snapshottable directories.
> The change is expected to land in {{FSNamesystem}}.
> Discussion:
> 1. Currently in HDFS-15607, the snapshot trash root creation logic is on the 
> client side. But in order for NN to create it at startup, the logic must 
> (also) be implemented on the server side as well. -- which is also a 
> requirement by WebHDFS (HDFS-15612).
> 2. Alternatively, we can provide an extra parameter to the 
> {{-provisionTrash}} command like: {{dfsadmin -provisionTrash -all}} to 
> initialize/provision trash root on all existing snapshottable dirs.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15611) Add list Snapshot command in WebHDFS

2020-10-06 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15611:
--
Status: Patch Available  (was: Open)

> Add list Snapshot command in WebHDFS
> 
>
> Key: HDFS-15611
> URL: https://issues.apache.org/jira/browse/HDFS-15611
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: snapshots
>Reporter: Shashikant Banerjee
>Assignee: Shashikant Banerjee
>Priority: Major
>  Labels: pull-request-available
> Fix For: 3.4.0
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> Idea here is to expose lsSnapshot cmd over WebHdfs.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15612) WebHDFS: Support provisionSnapshotTrash

2020-10-05 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15612:
--
Parent: HDFS-15477
Issue Type: Sub-task  (was: Improvement)

> WebHDFS: Support provisionSnapshotTrash
> ---
>
> Key: HDFS-15612
> URL: https://issues.apache.org/jira/browse/HDFS-15612
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Siyao Meng
>Priority: Minor
>
> In HDFS-15607 we are adding snapshot trash root provision command to help 
> create the trash root with the right permission. But in order to add this 
> feature to WebHDFS (and HttpFS), we might have to copy or move the 
> client-side logic to the server since the logic for directly accessing 
> WebHDFS by REST API is on the NameNode {{NamenodeWebHdfsMethods}}.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15614) Initialize snapshot trash root during NameNode startup if enabled

2020-10-05 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15614:
--
Parent: HDFS-15477
Issue Type: Sub-task  (was: Improvement)

> Initialize snapshot trash root during NameNode startup if enabled
> -
>
> Key: HDFS-15614
> URL: https://issues.apache.org/jira/browse/HDFS-15614
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> This is a follow-up to HDFS-15607.
> Goal:
> Initialize (create) snapshot trash root for all existing snapshottable 
> directories if {{dfs.namenode.snapshot.trashroot.enabled}} is set to 
> {{true}}. So admins won't have to run {{dfsadmin -provisionTrash}} manually 
> on all those existing snapshottable directories.
> The change is expected to land in {{FSNamesystem}}.
> Discussion:
> 1. Currently in HDFS-15607, the snapshot trash root creation logic is on the 
> client side. But in order for NN to create it at startup, the logic must 
> (also) be implemented on the server side as well. -- which is also a 
> requirement by WebHDFS (HDFS-15612).
> 2. Alternatively, we can provide an extra parameter to the 
> {{-provisionTrash}} command like: {{dfsadmin -provisionTrash -all}} to 
> initialize/provision trash root on all existing snapshottable dirs.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Assigned] (HDFS-15614) Initialize snapshot trash root during NameNode startup if enabled

2020-10-05 Thread Siyao Meng (Jira)


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

Siyao Meng reassigned HDFS-15614:
-

Assignee: Siyao Meng

> Initialize snapshot trash root during NameNode startup if enabled
> -
>
> Key: HDFS-15614
> URL: https://issues.apache.org/jira/browse/HDFS-15614
> Project: Hadoop HDFS
>  Issue Type: Improvement
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> This is a follow-up to HDFS-15607.
> Goal:
> Initialize (create) snapshot trash root for all existing snapshottable 
> directories if {{dfs.namenode.snapshot.trashroot.enabled}} is set to 
> {{true}}. So admins won't have to run {{dfsadmin -provisionTrash}} manually 
> on all those existing snapshottable directories.
> The change is expected to land in {{FSNamesystem}}.
> Discussion:
> 1. Currently in HDFS-15607, the snapshot trash root creation logic is on the 
> client side. But in order for NN to create it at startup, the logic must 
> (also) be implemented on the server side as well. -- which is also a 
> requirement by WebHDFS (HDFS-15612).
> 2. Alternatively, we can provide an extra parameter to the 
> {{-provisionTrash}} command like: {{dfsadmin -provisionTrash -all}} to 
> initialize/provision trash root on all existing snapshottable dirs.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Created] (HDFS-15614) Initialize snapshot trash root during NameNode startup if enabled

2020-10-05 Thread Siyao Meng (Jira)
Siyao Meng created HDFS-15614:
-

 Summary: Initialize snapshot trash root during NameNode startup if 
enabled
 Key: HDFS-15614
 URL: https://issues.apache.org/jira/browse/HDFS-15614
 Project: Hadoop HDFS
  Issue Type: Improvement
Reporter: Siyao Meng


This is a follow-up to HDFS-15607.

Goal:

Initialize (create) snapshot trash root for all existing snapshottable 
directories if {{dfs.namenode.snapshot.trashroot.enabled}} is set to {{true}}. 
So admins won't have to run {{dfsadmin -provisionTrash}} manually on all those 
existing snapshottable directories.

The change is expected to land in {{FSNamesystem}}.

Discussion:
1. Currently in HDFS-15607, the snapshot trash root creation logic is on the 
client side. But in order for NN to create it at startup, the logic must (also) 
be implemented on the server side as well. -- which is also a requirement by 
WebHDFS (HDFS-15612).
2. Alternatively, we can provide an extra parameter to the {{-provisionTrash}} 
command like: {{dfsadmin -provisionTrash -all}} to initialize/provision trash 
root on all existing snapshottable dirs.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15607) Create trash dir when allowing snapshottable dir

2020-10-05 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15607:
--
Fix Version/s: 3.4.0
   Resolution: Fixed
   Status: Resolved  (was: Patch Available)

> Create trash dir when allowing snapshottable dir
> 
>
> Key: HDFS-15607
> URL: https://issues.apache.org/jira/browse/HDFS-15607
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs
>Affects Versions: 3.4.0
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>  Labels: pull-request-available
> Fix For: 3.4.0
>
>  Time Spent: 2h
>  Remaining Estimate: 0h
>
> In {{TrashPolicyDefault}}, the {{.Trash}} directory will be created with 
> permission 700 (and without sticky bit) by the first user that moves a file 
> to the trash. This is an issue when other users try to move files to that 
> trash because they may not have the permission to move to that trash if the 
> trash root is shared. -- in this case, snapshottable directories.
> This only affects users when trash is enabled inside snapshottable 
> directories ({{dfs.namenode.snapshot.trashroot.enabled}} set to true), and 
> when a user performing move to trash operations doesn't have admin 
> permissions.
> Solution: Create a {{.Trash}} directory with 777 permission and sticky bits 
> enabled (similar solution as HDFS-10324).
> Also need to deal with some corner cases:
> 1. even when the snapshottable directory trash root config is not enabled 
> ({{dfs.namenode.snapshot.trashroot.enabled}} set to false), create the 
> {{.Trash}} directory anyway? Or should we ask the admin to provision trash 
> manually after enabling {{dfs.namenode.snapshot.trashroot.enabled}} on an 
> existing cluster?
> - If the cluster is just upgraded, we need to provision trash manually anyway.
> 2. When immediately disallowing trash, it shouldn't fail. just remove the 
> .Trash directory when disallowing snapshot on a dir if it is empty?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15612) WebHDFS: Support provisionSnapshotTrash

2020-10-01 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15612:
--
Description: 
In HDFS-15607 we are adding snapshot trash root provision command to help 
create the trash root with the right permission. But in order to add this 
feature to WebHDFS (and HttpFS), we might have to copy or move the client-side 
logic to the server since the logic for directly accessing WebHDFS by REST API 
is on the NameNode {{NamenodeWebHdfsMethods}}.


  was:
In HDFS-15607 we are adding snapshot trash root provision command to help 
create the trash root with the right permission. But in order to add this 
feature to WebHDFS, we might have to copy or move the client-side logic to the 
server since the logic for directly accessing WebHDFS by REST API is on the 
NameNode {{NamenodeWebHdfsMethods}}.



> WebHDFS: Support provisionSnapshotTrash
> ---
>
> Key: HDFS-15612
> URL: https://issues.apache.org/jira/browse/HDFS-15612
> Project: Hadoop HDFS
>  Issue Type: Improvement
>Reporter: Siyao Meng
>Priority: Minor
>
> In HDFS-15607 we are adding snapshot trash root provision command to help 
> create the trash root with the right permission. But in order to add this 
> feature to WebHDFS (and HttpFS), we might have to copy or move the 
> client-side logic to the server since the logic for directly accessing 
> WebHDFS by REST API is on the NameNode {{NamenodeWebHdfsMethods}}.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Created] (HDFS-15612) WebHDFS:

2020-10-01 Thread Siyao Meng (Jira)
Siyao Meng created HDFS-15612:
-

 Summary: WebHDFS: 
 Key: HDFS-15612
 URL: https://issues.apache.org/jira/browse/HDFS-15612
 Project: Hadoop HDFS
  Issue Type: Improvement
Reporter: Siyao Meng


In HDFS-15607 we are adding snapshot trash root provision command to help 
create the trash root with the right permission. But in order to add this 
feature to WebHDFS, we might have to copy or move the client-side logic to the 
server since the logic for directly accessing WebHDFS by REST API is on the 
NameNode {{NamenodeWebHdfsMethods}}.




--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15612) WebHDFS: Support provisionSnapshotTrash

2020-10-01 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15612:
--
Summary: WebHDFS: Support provisionSnapshotTrash  (was: WebHDFS: )

> WebHDFS: Support provisionSnapshotTrash
> ---
>
> Key: HDFS-15612
> URL: https://issues.apache.org/jira/browse/HDFS-15612
> Project: Hadoop HDFS
>  Issue Type: Improvement
>Reporter: Siyao Meng
>Priority: Minor
>
> In HDFS-15607 we are adding snapshot trash root provision command to help 
> create the trash root with the right permission. But in order to add this 
> feature to WebHDFS, we might have to copy or move the client-side logic to 
> the server since the logic for directly accessing WebHDFS by REST API is on 
> the NameNode {{NamenodeWebHdfsMethods}}.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15607) Create trash dir when allowing snapshottable dir

2020-09-30 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15607:
--
Status: Patch Available  (was: In Progress)

> Create trash dir when allowing snapshottable dir
> 
>
> Key: HDFS-15607
> URL: https://issues.apache.org/jira/browse/HDFS-15607
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs
>Affects Versions: 3.4.0
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> In {{TrashPolicyDefault}}, the {{.Trash}} directory will be created with 
> permission 700 (and without sticky bit) by the first user that moves a file 
> to the trash. This is an issue when other users try to move files to that 
> trash because they may not have the permission to move to that trash if the 
> trash root is shared. -- in this case, snapshottable directories.
> This only affects users when trash is enabled inside snapshottable 
> directories ({{dfs.namenode.snapshot.trashroot.enabled}} set to true), and 
> when a user performing move to trash operations doesn't have admin 
> permissions.
> Solution: Create a {{.Trash}} directory with 777 permission and sticky bits 
> enabled (similar solution as HDFS-10324).
> Also need to deal with some corner cases:
> 1. even when the snapshottable directory trash root config is not enabled 
> ({{dfs.namenode.snapshot.trashroot.enabled}} set to false), create the 
> {{.Trash}} directory anyway? Or should we ask the admin to provision trash 
> manually after enabling {{dfs.namenode.snapshot.trashroot.enabled}} on an 
> existing cluster?
> - If the cluster is just upgraded, we need to provision trash manually anyway.
> 2. When immediately disallowing trash, it shouldn't fail. just remove the 
> .Trash directory when disallowing snapshot on a dir if it is empty?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15609) Implement hdfs getconf -serverDefaults

2020-09-30 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15609:
--
Description: 
There doesn't seem to be an existing way to easily verify whether a Hadoop/HDFS 
client correctly receives the FsServerDefaults from the NameNode.

Here I propose extending {{hadoop getconf}} command with parameter 
{{-serverDefaults}}. When executed, the client shall get {{FsServerDefaults}} 
from the specified NameNode and print the configuration values out.

  was:
There doesn't seem to be a way to verify whether a Hadoop/HDFS client correctly 
receives the FsServerDefaults from the NameNode.

Here I propose extending {{hadoop getconf}} command with parameter 
{{-serverDefaults}}. When executed, the client shall get {{FsServerDefaults}} 
from the specified NameNode and print the configuration values out.


> Implement hdfs getconf -serverDefaults
> --
>
> Key: HDFS-15609
> URL: https://issues.apache.org/jira/browse/HDFS-15609
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: hdfs-client
>Affects Versions: 3.3.0, 3.4.0
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> There doesn't seem to be an existing way to easily verify whether a 
> Hadoop/HDFS client correctly receives the FsServerDefaults from the NameNode.
> Here I propose extending {{hadoop getconf}} command with parameter 
> {{-serverDefaults}}. When executed, the client shall get {{FsServerDefaults}} 
> from the specified NameNode and print the configuration values out.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Created] (HDFS-15609) Implement hdfs getconf -serverDefaults

2020-09-30 Thread Siyao Meng (Jira)
Siyao Meng created HDFS-15609:
-

 Summary: Implement hdfs getconf -serverDefaults
 Key: HDFS-15609
 URL: https://issues.apache.org/jira/browse/HDFS-15609
 Project: Hadoop HDFS
  Issue Type: Improvement
  Components: hdfs-client
Affects Versions: 3.3.0, 3.4.0
Reporter: Siyao Meng
Assignee: Siyao Meng


There doesn't seem to be a way to verify whether a Hadoop/HDFS client correctly 
receives the FsServerDefaults from the NameNode.

Here I propose extending {{hadoop getconf}} command with parameter 
{{-serverDefaults}}. When executed, the client shall get {{FsServerDefaults}} 
from the specified NameNode and print the configuration values out.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15607) Create trash dir when allowing snapshottable dir

2020-09-29 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15607:
--
Description: 
In {{TrashPolicyDefault}}, the {{.Trash}} directory will be created with 
permission 700 (and without sticky bit) by the first user that moves a file to 
the trash. This is an issue when other users try to move files to that trash 
because they may not have the permission to move to that trash if the trash 
root is shared. -- in this case, snapshottable directories.

This only affects users when trash is enabled inside snapshottable directories 
({{dfs.namenode.snapshot.trashroot.enabled}} set to true), and when a user 
performing move to trash operations doesn't have admin permissions.

Solution: Create a {{.Trash}} directory with 777 permission and sticky bits 
enabled (similar solution as HDFS-10324).

Also need to deal with some corner cases:

1. even when the snapshottable directory trash root config is not enabled 
({{dfs.namenode.snapshot.trashroot.enabled}} set to false), create the 
{{.Trash}} directory anyway? Or should we ask the admin to provision trash 
manually after enabling {{dfs.namenode.snapshot.trashroot.enabled}} on an 
existing cluster?
- If the cluster is just upgraded, we need to provision trash manually anyway.

2. When immediately disallowing trash, it shouldn't fail. just remove the 
.Trash directory when disallowing snapshot on a dir if it is empty?

  was:
In {{TrashPolicyDefault}}, the {{.Trash}} directory will be created with 
permission 700 without sticky bits by the first user that moves a file to the 
trash. This is an issue when other users try to move files to that trash 
because they may not have the permission to move to that trash if the trash 
root is shared. -- in this case, snapshottable directories.

This only affects users when trash is enabled inside snapshottable directories 
({{dfs.namenode.snapshot.trashroot.enabled}} set to true), and when a user 
performing move to trash operations doesn't have admin permissions.

Solution: Create a {{.Trash}} directory with 777 permission and sticky bits 
enabled (similar solution as HDFS-10324).

Also need to deal with some corner cases:

1. even when the snapshottable directory trash root config is not enabled 
({{dfs.namenode.snapshot.trashroot.enabled}} set to false), create the 
{{.Trash}} directory anyway? Or should we ask the admin to provision trash 
manually after enabling {{dfs.namenode.snapshot.trashroot.enabled}} on an 
existing cluster?
- If the cluster is just upgraded, we need to provision trash manually anyway.

2. When immediately disallowing trash, it shouldn't fail. just remove the 
.Trash directory when disallowing snapshot on a dir if it is empty?


> Create trash dir when allowing snapshottable dir
> 
>
> Key: HDFS-15607
> URL: https://issues.apache.org/jira/browse/HDFS-15607
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs
>Affects Versions: 3.4.0
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> In {{TrashPolicyDefault}}, the {{.Trash}} directory will be created with 
> permission 700 (and without sticky bit) by the first user that moves a file 
> to the trash. This is an issue when other users try to move files to that 
> trash because they may not have the permission to move to that trash if the 
> trash root is shared. -- in this case, snapshottable directories.
> This only affects users when trash is enabled inside snapshottable 
> directories ({{dfs.namenode.snapshot.trashroot.enabled}} set to true), and 
> when a user performing move to trash operations doesn't have admin 
> permissions.
> Solution: Create a {{.Trash}} directory with 777 permission and sticky bits 
> enabled (similar solution as HDFS-10324).
> Also need to deal with some corner cases:
> 1. even when the snapshottable directory trash root config is not enabled 
> ({{dfs.namenode.snapshot.trashroot.enabled}} set to false), create the 
> {{.Trash}} directory anyway? Or should we ask the admin to provision trash 
> manually after enabling {{dfs.namenode.snapshot.trashroot.enabled}} on an 
> existing cluster?
> - If the cluster is just upgraded, we need to provision trash manually anyway.
> 2. When immediately disallowing trash, it shouldn't fail. just remove the 
> .Trash directory when disallowing snapshot on a dir if it is empty?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15607) Create trash dir when allowing snapshottable dir

2020-09-29 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15607:
--
Description: 
In {{TrashPolicyDefault}}, the {{.Trash}} directory will be created with 
permission 700 without sticky bits by the first user that moves a file to the 
trash. This is an issue when other users try to move files to that trash 
because they may not have the permission to move to that trash if the trash 
root is shared. -- in this case, snapshottable directories.

This only affects users when trash is enabled inside snapshottable directories 
({{dfs.namenode.snapshot.trashroot.enabled}} set to true), and when a user 
performing move to trash operations doesn't have admin permissions.

Solution: Create a {{.Trash}} directory with 777 permission and sticky bits 
enabled (similar solution as HDFS-10324).

Also need to deal with some corner cases:

1. even when the snapshottable directory trash root config is not enabled 
({{dfs.namenode.snapshot.trashroot.enabled}} set to false), create the 
{{.Trash}} directory anyway? Or should we ask the admin to provision trash 
manually after enabling {{dfs.namenode.snapshot.trashroot.enabled}} on an 
existing cluster?
- If the cluster is just upgraded, we need to provision trash manually anyway.

2. When immediately disallowing trash, it shouldn't fail. just remove the 
.Trash directory when disallowing snapshot on a dir if it is empty?

  was:
In {{TrashPolicyDefault}}, the {{.Trash}} directory will be created with 
permission 700 without sticky bits by the first user that moves a file to the 
trash. This is an issue when other users try to move files to that trash 
because they may not have the permission to move to that trash if the trash 
root is shared. -- in this case, snapshottable directories.

This only affects users when trash is enabled inside snapshottable directories 
({{dfs.namenode.snapshot.trashroot.enabled}} set to true), and when a user 
performing move to trash operations doesn't have admin permissions.

Solution: Create a {{.Trash}} directory with 777 permission and sticky bits 
enabled (similar solution as HDFS-10324).

Also need to deal with some corner cases:
1. even when the snapshottable directory trash root config is not enabled 
({{dfs.namenode.snapshot.trashroot.enabled}} set to false), create the 
{{.Trash}} directory anyway? Or should we ask the admin to provision trash 
manually after enabling {{dfs.namenode.snapshot.trashroot.enabled}} on an 
existing cluster?
- If the cluster is just upgraded, we need to provision trash manually anyway.
2. When immediately disallowing trash, it shouldn't fail. just remove the 
.Trash directory when disallowing snapshot on a dir if it is empty?


> Create trash dir when allowing snapshottable dir
> 
>
> Key: HDFS-15607
> URL: https://issues.apache.org/jira/browse/HDFS-15607
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs
>Affects Versions: 3.4.0
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> In {{TrashPolicyDefault}}, the {{.Trash}} directory will be created with 
> permission 700 without sticky bits by the first user that moves a file to the 
> trash. This is an issue when other users try to move files to that trash 
> because they may not have the permission to move to that trash if the trash 
> root is shared. -- in this case, snapshottable directories.
> This only affects users when trash is enabled inside snapshottable 
> directories ({{dfs.namenode.snapshot.trashroot.enabled}} set to true), and 
> when a user performing move to trash operations doesn't have admin 
> permissions.
> Solution: Create a {{.Trash}} directory with 777 permission and sticky bits 
> enabled (similar solution as HDFS-10324).
> Also need to deal with some corner cases:
> 1. even when the snapshottable directory trash root config is not enabled 
> ({{dfs.namenode.snapshot.trashroot.enabled}} set to false), create the 
> {{.Trash}} directory anyway? Or should we ask the admin to provision trash 
> manually after enabling {{dfs.namenode.snapshot.trashroot.enabled}} on an 
> existing cluster?
> - If the cluster is just upgraded, we need to provision trash manually anyway.
> 2. When immediately disallowing trash, it shouldn't fail. just remove the 
> .Trash directory when disallowing snapshot on a dir if it is empty?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15607) Create trash dir when allowing snapshottable dir

2020-09-29 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15607:
--
Description: 
In {{TrashPolicyDefault}}, the {{.Trash}} directory will be created with 
permission 700 without sticky bits by the first user that moves a file to the 
trash. This is an issue when other users try to move files to that trash 
because they may not have the permission to move to that trash if the trash 
root is shared. -- in this case, snapshottable directories.

This only affects users when trash is enabled inside snapshottable directories 
({{dfs.namenode.snapshot.trashroot.enabled}} set to true), and when a user 
performing move to trash operations doesn't have admin permissions.

Solution: Create a {{.Trash}} directory with 777 permission and sticky bits 
enabled (similar solution as HDFS-10324).

Also need to deal with some corner cases:
1. even when the snapshottable directory trash root config is not enabled 
({{dfs.namenode.snapshot.trashroot.enabled}} set to false), create the 
{{.Trash}} directory anyway? Or should we ask the admin to provision trash 
manually after enabling {{dfs.namenode.snapshot.trashroot.enabled}} on an 
existing cluster?
- If the cluster is just upgraded, we need to provision trash manually anyway.
2. When immediately disallowing trash, it shouldn't fail. just remove the 
.Trash directory when disallowing snapshot on a dir if it is empty?

  was:
In {{TrashPolicyDefault}}, the {{.Trash}} directory will be created with 
permission 700 without sticky bits by the first user that moves a file to the 
trash. This is an issue when other users try to move files to that trash 
because they may not have the permission to move to that trash if the trash 
root is shared. -- in this case, snapshottable directories.

This only affects users when trash is enabled inside snapshottable directories, 
and when the user doesn't have admin permissions.

Solution: Create a .Trash directory with 777 permission and sticky bits enabled 
(similar solution as HDFS-10324).

Also need to deal with some corner cases:
1. even when the snapshottable directory trash root config is not enabled, 
create the {{.Trash}} directory anyway?
2. When immediately disallowing trash, it shouldn't fail. just remove the 
.Trash directory when disallowing snapshot on a dir if it is empty?


> Create trash dir when allowing snapshottable dir
> 
>
> Key: HDFS-15607
> URL: https://issues.apache.org/jira/browse/HDFS-15607
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs
>Affects Versions: 3.4.0
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> In {{TrashPolicyDefault}}, the {{.Trash}} directory will be created with 
> permission 700 without sticky bits by the first user that moves a file to the 
> trash. This is an issue when other users try to move files to that trash 
> because they may not have the permission to move to that trash if the trash 
> root is shared. -- in this case, snapshottable directories.
> This only affects users when trash is enabled inside snapshottable 
> directories ({{dfs.namenode.snapshot.trashroot.enabled}} set to true), and 
> when a user performing move to trash operations doesn't have admin 
> permissions.
> Solution: Create a {{.Trash}} directory with 777 permission and sticky bits 
> enabled (similar solution as HDFS-10324).
> Also need to deal with some corner cases:
> 1. even when the snapshottable directory trash root config is not enabled 
> ({{dfs.namenode.snapshot.trashroot.enabled}} set to false), create the 
> {{.Trash}} directory anyway? Or should we ask the admin to provision trash 
> manually after enabling {{dfs.namenode.snapshot.trashroot.enabled}} on an 
> existing cluster?
> - If the cluster is just upgraded, we need to provision trash manually anyway.
> 2. When immediately disallowing trash, it shouldn't fail. just remove the 
> .Trash directory when disallowing snapshot on a dir if it is empty?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15607) Create trash dir when allowing snapshottable dir

2020-09-29 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15607:
--
Description: 
In {{TrashPolicyDefault}}, the {{.Trash}} directory will be created with 
permission 700 without sticky bits by the first user that moves a file to the 
trash. This is an issue when other users try to move files to that trash 
because they may not have the permission to move to that trash if the trash 
root is shared. -- in this case, snapshottable directories.

This only affects users when trash is enabled inside snapshottable directories, 
and when the user doesn't have admin permissions.

Solution: Create a .Trash directory with 777 permission and sticky bits enabled 
(similar solution as HDFS-10324).

Also need to deal with some corner cases:
1. even when the snapshottable directory trash root config is not enabled, 
create the {{.Trash}} directory anyway?
2. When immediately disallowing trash, it shouldn't fail. just remove the 
.Trash directory when disallowing snapshot on a dir if it is empty?

  was:
In {{TrashPolicyDefault}}, the {{.Trash}} directory will be created with 
permission 700 without sticky bits by the first user that attempts to move a 
file to the trash. This causes issue when a second user tries to move a file to 
that trash because the second user might not have the permission to move to 
trash.

Only affects the user when trash is enabled inside snapshottable directories, 
and when the user doesn't have admin permissions.

Solution: Create a .Trash directory with 777 permission and sticky bits enabled 
(similar solution as HDFS-10324).

Also need to deal with some corner cases:
1. even when the snapshottable directory trash root config is not enabled, 
create the {{.Trash}} directory anyway?
2. When immediately disallowing trash, it shouldn't fail. just remove the 
.Trash directory when disallowing snapshot on a dir if it is empty?


> Create trash dir when allowing snapshottable dir
> 
>
> Key: HDFS-15607
> URL: https://issues.apache.org/jira/browse/HDFS-15607
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs
>Affects Versions: 3.4.0
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> In {{TrashPolicyDefault}}, the {{.Trash}} directory will be created with 
> permission 700 without sticky bits by the first user that moves a file to the 
> trash. This is an issue when other users try to move files to that trash 
> because they may not have the permission to move to that trash if the trash 
> root is shared. -- in this case, snapshottable directories.
> This only affects users when trash is enabled inside snapshottable 
> directories, and when the user doesn't have admin permissions.
> Solution: Create a .Trash directory with 777 permission and sticky bits 
> enabled (similar solution as HDFS-10324).
> Also need to deal with some corner cases:
> 1. even when the snapshottable directory trash root config is not enabled, 
> create the {{.Trash}} directory anyway?
> 2. When immediately disallowing trash, it shouldn't fail. just remove the 
> .Trash directory when disallowing snapshot on a dir if it is empty?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15607) Create trash dir when allowing snapshottable dir

2020-09-29 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15607:
--
Summary: Create trash dir when allowing snapshottable dir  (was: Trash 
directory should be created in advance for snapshottable directory)

> Create trash dir when allowing snapshottable dir
> 
>
> Key: HDFS-15607
> URL: https://issues.apache.org/jira/browse/HDFS-15607
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs
>Affects Versions: 3.4.0
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> In {{TrashPolicyDefault}}, the {{.Trash}} directory will be created with 
> permission 700 without sticky bits by the first user that attempts to move a 
> file to the trash. This causes issue when a second user tries to move a file 
> to that trash because the second user might not have the permission to move 
> to trash.
> Only affects the user when trash is enabled inside snapshottable directories, 
> and when the user doesn't have admin permissions.
> Solution: Create a .Trash directory with 777 permission and sticky bits 
> enabled (similar solution as HDFS-10324).
> Also need to deal with some corner cases:
> 1. even when the snapshottable directory trash root config is not enabled, 
> create the {{.Trash}} directory anyway?
> 2. When immediately disallowing trash, it shouldn't fail. just remove the 
> .Trash directory when disallowing snapshot on a dir if it is empty?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15607) Trash directory should be created in advance for snapshottable directory

2020-09-29 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15607:
--
Parent: HDFS-15477
Issue Type: Sub-task  (was: Bug)

> Trash directory should be created in advance for snapshottable directory
> 
>
> Key: HDFS-15607
> URL: https://issues.apache.org/jira/browse/HDFS-15607
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs
>Affects Versions: 3.4.0
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> In {{TrashPolicyDefault}}, the {{.Trash}} directory will be created with 
> permission 700 without sticky bits by the first user that attempts to move a 
> file to the trash. This causes issue when a second user tries to move a file 
> to that trash because the second user might not have the permission to move 
> to trash.
> Only affects the user when trash is enabled inside snapshottable directories, 
> and when the user doesn't have admin permissions.
> Solution: Create a .Trash directory with 777 permission and sticky bits 
> enabled (similar solution as HDFS-10324).
> Also need to deal with some corner cases:
> 1. even when the snapshottable directory trash root config is not enabled, 
> create the {{.Trash}} directory anyway?
> 2. When immediately disallowing trash, it shouldn't fail. just remove the 
> .Trash directory when disallowing snapshot on a dir if it is empty?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15607) Trash directory should be created in advance for snapshottable directory

2020-09-29 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15607:
--
Affects Version/s: 3.4.0

> Trash directory should be created in advance for snapshottable directory
> 
>
> Key: HDFS-15607
> URL: https://issues.apache.org/jira/browse/HDFS-15607
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: hdfs
>Affects Versions: 3.4.0
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> In {{TrashPolicyDefault}}, the {{.Trash}} directory will be created with 
> permission 700 without sticky bits by the first user that attempts to move a 
> file to the trash. This causes issue when a second user tries to move a file 
> to that trash because the second user might not have the permission to move 
> to trash.
> Only affects the user when trash is enabled inside snapshottable directories, 
> and when the user doesn't have admin permissions.
> Solution: Create a .Trash directory with 777 permission and sticky bits 
> enabled (similar solution as HDFS-10324).
> Also need to deal with some corner cases:
> 1. even when the snapshottable directory trash root config is not enabled, 
> create the {{.Trash}} directory anyway?
> 2. When immediately disallowing trash, it shouldn't fail. just remove the 
> .Trash directory when disallowing snapshot on a dir if it is empty?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15607) Trash directory should be created in advance for snapshottable directory

2020-09-29 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15607:
--
Target Version/s: 3.4.0

> Trash directory should be created in advance for snapshottable directory
> 
>
> Key: HDFS-15607
> URL: https://issues.apache.org/jira/browse/HDFS-15607
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: hdfs
>Affects Versions: 3.4.0
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> In {{TrashPolicyDefault}}, the {{.Trash}} directory will be created with 
> permission 700 without sticky bits by the first user that attempts to move a 
> file to the trash. This causes issue when a second user tries to move a file 
> to that trash because the second user might not have the permission to move 
> to trash.
> Only affects the user when trash is enabled inside snapshottable directories, 
> and when the user doesn't have admin permissions.
> Solution: Create a .Trash directory with 777 permission and sticky bits 
> enabled (similar solution as HDFS-10324).
> Also need to deal with some corner cases:
> 1. even when the snapshottable directory trash root config is not enabled, 
> create the {{.Trash}} directory anyway?
> 2. When immediately disallowing trash, it shouldn't fail. just remove the 
> .Trash directory when disallowing snapshot on a dir if it is empty?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15607) Trash directory should be created in advance for snapshottable directory

2020-09-29 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15607:
--
Description: 
In {{TrashPolicyDefault}}, the {{.Trash}} directory will be created with 
permission 700 without sticky bits by the first user that attempts to move a 
file to the trash. This causes issue when a second user tries to move a file to 
that trash because the second user might not have the permission to move to 
trash.

Only affects the user when trash is enabled inside snapshottable directories, 
and when the user doesn't have admin permissions.

Solution: Create a .Trash directory with 777 permission and sticky bits enabled 
(similar solution as HDFS-10324).

Also need to deal with some corner cases:
1. even when the snapshottable directory trash root config is not enabled, 
create the {{.Trash}} directory anyway?
2. When immediately disallowing trash, it shouldn't fail. just remove the 
.Trash directory when disallowing snapshot on a dir if it is empty?

  was:
In {{TrashPolicyDefault}}, the {{.Trash}} directory will be created with 
permission 700 without sticky bits by the first user that attempts to move a 
file to the trash. This causes issue when a second user tries to move a file to 
that trash because the second user might not have the permission to move to 
trash.

Only affects the user when trash is enabled inside snapshottable directories, 
and when the user doesn't have admin permissions.

Solution: Create a .Trash directory with 777 permission and sticky bits enabled 
(similar solution as HDFS-10324).

Also need to deal with some corner cases:
1. even when the snapshottable directory trash root config is not enabled, 
create the {{.Trash}} directory anyway?
2. When immediately disallowing trash, it shouldn't fail. i.e. remove the empty 
.Trash directory when disallowing snapshot on a dir


> Trash directory should be created in advance for snapshottable directory
> 
>
> Key: HDFS-15607
> URL: https://issues.apache.org/jira/browse/HDFS-15607
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: hdfs
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> In {{TrashPolicyDefault}}, the {{.Trash}} directory will be created with 
> permission 700 without sticky bits by the first user that attempts to move a 
> file to the trash. This causes issue when a second user tries to move a file 
> to that trash because the second user might not have the permission to move 
> to trash.
> Only affects the user when trash is enabled inside snapshottable directories, 
> and when the user doesn't have admin permissions.
> Solution: Create a .Trash directory with 777 permission and sticky bits 
> enabled (similar solution as HDFS-10324).
> Also need to deal with some corner cases:
> 1. even when the snapshottable directory trash root config is not enabled, 
> create the {{.Trash}} directory anyway?
> 2. When immediately disallowing trash, it shouldn't fail. just remove the 
> .Trash directory when disallowing snapshot on a dir if it is empty?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15607) Trash directory should be created in advance for snapshottable directory

2020-09-29 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15607:
--
Description: 
In {{TrashPolicyDefault}}, the {{.Trash}} directory will be created with 
permission 700 without sticky bits by the first user that attempts to move a 
file to the trash. This causes issue when a second user tries to move a file to 
that trash because the second user might not have the permission to move to 
trash.

Only affects the user when trash is enabled inside snapshottable directories, 
and when the user doesn't have admin permissions.

Solution: Create a .Trash directory with 777 permission and sticky bits enabled 
(similar solution as HDFS-10324).

Also need to deal with some corner cases:
1. even when the snapshottable directory trash root config is not enabled, 
create the {{.Trash}} directory anyway?
2. When immediately disallowing trash, it shouldn't fail. i.e. remove the empty 
.Trash directory when disallowing snapshot on a dir

  was:
In {{TrashPolicyDefault}}, the {{.Trash}} directory will be created with 
permission 700 without sticky bits by the first user that attempts to move a 
file to the trash. This causes issue when a second user tries to move a file to 
that trash because the second user might not have the permission to the trash.

Only affects the user when trash is enabled inside snapshottable directories, 
and when the user doesn't have admin permissions.

Solution: Create a .Trash directory with 777 permission and sticky bits enabled 
(similar solution as HDFS-10324).

Also need to deal with some corner cases:
1. even when the snapshottable directory trash root config is not enabled, 
create the {{.Trash}} directory anyway?
2. When immediately disallowing trash, it shouldn't fail. i.e. remove the empty 
.Trash directory when disallowing snapshot on a dir


> Trash directory should be created in advance for snapshottable directory
> 
>
> Key: HDFS-15607
> URL: https://issues.apache.org/jira/browse/HDFS-15607
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: hdfs
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> In {{TrashPolicyDefault}}, the {{.Trash}} directory will be created with 
> permission 700 without sticky bits by the first user that attempts to move a 
> file to the trash. This causes issue when a second user tries to move a file 
> to that trash because the second user might not have the permission to move 
> to trash.
> Only affects the user when trash is enabled inside snapshottable directories, 
> and when the user doesn't have admin permissions.
> Solution: Create a .Trash directory with 777 permission and sticky bits 
> enabled (similar solution as HDFS-10324).
> Also need to deal with some corner cases:
> 1. even when the snapshottable directory trash root config is not enabled, 
> create the {{.Trash}} directory anyway?
> 2. When immediately disallowing trash, it shouldn't fail. i.e. remove the 
> empty .Trash directory when disallowing snapshot on a dir



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Work started] (HDFS-15607) Trash directory should be created in advance for snapshottable directory

2020-09-29 Thread Siyao Meng (Jira)


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

Work on HDFS-15607 started by Siyao Meng.
-
> Trash directory should be created in advance for snapshottable directory
> 
>
> Key: HDFS-15607
> URL: https://issues.apache.org/jira/browse/HDFS-15607
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: hdfs
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> In {{TrashPolicyDefault}}, the {{.Trash}} directory will be created with 
> permission 700 without sticky bits by the first user that attempts to move a 
> file to the trash. This causes issue when a second user tries to move a file 
> to that trash because the second user might not have the permission to the 
> trash.
> Only affects the user when trash is enabled inside snapshottable directories, 
> and when the user doesn't have admin permissions.
> Solution: Create a .Trash directory with 777 permission and sticky bits 
> enabled (similar solution as HDFS-10324).
> Also need to deal with some corner cases:
> 1. even when the snapshottable directory trash root config is not enabled, 
> create the {{.Trash}} directory anyway?
> 2. When immediately disallowing trash, it shouldn't fail. i.e. remove the 
> empty .Trash directory when disallowing snapshot on a dir



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15607) Trash directory should be created in advance for snapshottable directory

2020-09-29 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15607:
--
Description: 
In {{TrashPolicyDefault}}, the {{.Trash}} directory will be created with 
permission 700 without sticky bits by the first user that attempts to move a 
file to the trash. This causes issue when a second user tries to move a file to 
that trash because the second user might not have the permission to the trash.

Only affects the user when trash is enabled inside snapshottable directories, 
and when the user doesn't have admin permissions.

Solution: Create a .Trash directory with 777 permission and sticky bits enabled 
(similar solution as HDFS-10324).

Also need to deal with some corner cases:
1. even when the snapshottable directory trash root config is not enabled, 
create the {{.Trash}} directory anyway?
2. When immediately disallowing trash, it shouldn't fail. i.e. remove the empty 
.Trash directory when disallowing snapshot on a dir

  was:
In {{TrashPolicyDefault}}, the {{.Trash}} directory will be created with 
permission 700 without sticky bits of the first user that attempts to move a 
file to the trash. This causes issue when a second user tries to move a file to 
that trash cause the user might not have the permission to do so.

Rationale is similar to HDFS-10324 except that one was for the encryption zone.

Only affects the user when trash is enabled inside snapshottable directories, 
and when the user doesn't have admin permissions.

Solution: Create a .Trash directory with 777 permission and sticky bits enabled 
(same as HDFS-10324).

Also, need to deal with some corner cases:
1. When the snapshottable directory trash root config is not enabled
2. When immediately disallowing trash, it shouldn't fail. i.e. remove the empty 
.Trash directory when disallowing snapshot on a dir


> Trash directory should be created in advance for snapshottable directory
> 
>
> Key: HDFS-15607
> URL: https://issues.apache.org/jira/browse/HDFS-15607
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: hdfs
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> In {{TrashPolicyDefault}}, the {{.Trash}} directory will be created with 
> permission 700 without sticky bits by the first user that attempts to move a 
> file to the trash. This causes issue when a second user tries to move a file 
> to that trash because the second user might not have the permission to the 
> trash.
> Only affects the user when trash is enabled inside snapshottable directories, 
> and when the user doesn't have admin permissions.
> Solution: Create a .Trash directory with 777 permission and sticky bits 
> enabled (similar solution as HDFS-10324).
> Also need to deal with some corner cases:
> 1. even when the snapshottable directory trash root config is not enabled, 
> create the {{.Trash}} directory anyway?
> 2. When immediately disallowing trash, it shouldn't fail. i.e. remove the 
> empty .Trash directory when disallowing snapshot on a dir



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Created] (HDFS-15607) Trash directory should be created in advance for snapshottable directory

2020-09-29 Thread Siyao Meng (Jira)
Siyao Meng created HDFS-15607:
-

 Summary: Trash directory should be created in advance for 
snapshottable directory
 Key: HDFS-15607
 URL: https://issues.apache.org/jira/browse/HDFS-15607
 Project: Hadoop HDFS
  Issue Type: Bug
Reporter: Siyao Meng
Assignee: Siyao Meng


In {{TrashPolicyDefault}}, the {{.Trash}} directory will be created with 
permission 700 without sticky bits of the first user that attempts to move a 
file to the trash. This causes issue when a second user tries to move a file to 
that trash cause the user might not have the permission to do so.

Rationale is similar to HDFS-10324 except that one was for the encryption zone.

Only affects the user when trash is enabled inside snapshottable directories, 
and when the user doesn't have admin permissions.

Solution: Create a .Trash directory with 777 permission and sticky bits enabled 
(same as HDFS-10324).

Also, need to deal with some corner cases:
1. When the snapshottable directory trash root config is not enabled
2. When immediately disallowing trash, it shouldn't fail. i.e. remove the empty 
.Trash directory when disallowing snapshot on a dir



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15607) Trash directory should be created in advance for snapshottable directory

2020-09-29 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15607:
--
Component/s: hdfs

> Trash directory should be created in advance for snapshottable directory
> 
>
> Key: HDFS-15607
> URL: https://issues.apache.org/jira/browse/HDFS-15607
> Project: Hadoop HDFS
>  Issue Type: Bug
>  Components: hdfs
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> In {{TrashPolicyDefault}}, the {{.Trash}} directory will be created with 
> permission 700 without sticky bits of the first user that attempts to move a 
> file to the trash. This causes issue when a second user tries to move a file 
> to that trash cause the user might not have the permission to do so.
> Rationale is similar to HDFS-10324 except that one was for the encryption 
> zone.
> Only affects the user when trash is enabled inside snapshottable directories, 
> and when the user doesn't have admin permissions.
> Solution: Create a .Trash directory with 777 permission and sticky bits 
> enabled (same as HDFS-10324).
> Also, need to deal with some corner cases:
> 1. When the snapshottable directory trash root config is not enabled
> 2. When immediately disallowing trash, it shouldn't fail. i.e. remove the 
> empty .Trash directory when disallowing snapshot on a dir



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Commented] (HDFS-15513) Allow client to query snapshot status on one directory

2020-09-22 Thread Siyao Meng (Jira)


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

Siyao Meng commented on HDFS-15513:
---

Hi [~jianghuazhu], thanks for the comment.

The goal here is to reduce the overhead of getting the entire snapshot listing, 
so we can query the snapshottable status of only the list of directories the 
client is interested in.

{{DFSClient#getSnapshotListing}} eventually calls into 
{{FSNamesystem#getSnapshottableDirListing}}, the latter of which I mentioned in 
the description. It always returns the full listing. The overhead grows when 
there are more snapshottable directories.

> Allow client to query snapshot status on one directory
> --
>
> Key: HDFS-15513
> URL: https://issues.apache.org/jira/browse/HDFS-15513
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: hdfs, hdfs-client
>Affects Versions: 3.3.0
>Reporter: Siyao Meng
>Priority: Major
>
> Alternatively, we can allow the client to query snapshot status on *a list 
> of* given directories by the client. Thoughts?
> Rationale:
> At the moment, we could only retrieve the full list of snapshottable 
> directories with 
> [{{getSnapshottableDirListing()}}|https://github.com/apache/hadoop/blob/233619a0a462ae2eb7e7253b6bb8ae48eaa5eb19/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java#L6986-L6994].
>  This leads to the inefficiency In HDFS-15492 that we have to get the 
> *entire* list of snapshottable directory to check if a file being deleted is 
> inside a snapshottable directory.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15539) When disallowing snapshot on a dir, throw exception if its trash root is not empty

2020-09-15 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15539:
--
Fix Version/s: 3.4.0
   Resolution: Fixed
   Status: Resolved  (was: Patch Available)

> When disallowing snapshot on a dir, throw exception if its trash root is not 
> empty
> --
>
> Key: HDFS-15539
> URL: https://issues.apache.org/jira/browse/HDFS-15539
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>  Labels: pull-request-available
> Fix For: 3.4.0
>
>  Time Spent: 2h 40m
>  Remaining Estimate: 0h
>
> When snapshot is disallowed on a dir, {{getTrashRoots()}} won't return the 
> trash root in that dir anymore (if any). The risk is the trash root will be 
> left there forever.
> We need to throw an exception there and prompt the user to clean up or rename 
> the trash root if it is not empty.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15563) Incorrect getTrashRoot return value when a non-snapshottable dir prefix matches the path of a snapshottable dir

2020-09-09 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15563:
--
Description: 
Note: Only impacts a user if {{dfs.namenode.snapshot.trashroot.enabled}} is 
enabled.

Root cause analysis:

{{SnapshottableDirectoryStatus}} paths retrived inside 
{{DFSClient#getSnapshotRoot}} aren't appended with '/', causing some 
directories with the same path prefix to be mistakenly classified as 
snapshottable directory.

Thanks [~shashikant] for the test case addition.

---

Repro:

{code:java}
1. snapshottable directory present in the cluster
hdfs lsSnapshottableDir
drwx-x-x 0 hrt_2 hrt_2 0 2020-09-08 07:42 0 65536 /user/hrt_2
drwxr-xr-x 0 hrt_4 hrt_4 0 2020-09-08 13:16 0 65536 /user/hrt_4/newdir/subdir2. 
Created a new directory outside snapshottable directory
hdfs dfs -mkdir /user/hrt_4/newdir/subdir23. Tried to delete subdir2 , it failed
hdfs dfs -rm -r /user/hrt_4/newdir/subdir2
rm: Failed to move to trash: hdfs://ns1/user/hrt_4/newdir/subdir2: Source 
/user/hrt_4/newdir/subdir2 and dest 
/user/hrt_4/newdir/subdir/.Trash/hdfs/Current/user/hrt_4/newdir/subdir2 are not 
under the same snapshot root.
{code}
"*/user/hrt_4/newdir/subdir2*" , the trash root location is coming to be 
"*/user/hrt_4/newdir/subdir/.Trash*"

as clear from the msg here:
{noformat}
rm: Failed to move to trash: hdfs://ns1/user/hrt_4/newdir/subdir2: Source 
/user/hrt_4/newdir/subdir2 and dest 
/user/hrt_4/newdir/subdir/.Trash/hdfs/Current/user/hrt_4/newdir/subdir2 are not 
under the same snapshot root.{noformat}

  was:
Note: Only impacts a user if {{dfs.namenode.snapshot.trashroot.enabled}} is 
enabled.

Root cause analysis:

{{DFSClient#getSnapshotRoot}} check loop 

Thanks [~shashikant] for the test case addition.

---

Repro:

{code:java}
1. snapshottable directory present in the cluster
hdfs lsSnapshottableDir
drwx-x-x 0 hrt_2 hrt_2 0 2020-09-08 07:42 0 65536 /user/hrt_2
drwxr-xr-x 0 hrt_4 hrt_4 0 2020-09-08 13:16 0 65536 /user/hrt_4/newdir/subdir2. 
Created a new directory outside snapshottable directory
hdfs dfs -mkdir /user/hrt_4/newdir/subdir23. Tried to delete subdir2 , it failed
hdfs dfs -rm -r /user/hrt_4/newdir/subdir2
rm: Failed to move to trash: hdfs://ns1/user/hrt_4/newdir/subdir2: Source 
/user/hrt_4/newdir/subdir2 and dest 
/user/hrt_4/newdir/subdir/.Trash/hdfs/Current/user/hrt_4/newdir/subdir2 are not 
under the same snapshot root.
{code}
"*/user/hrt_4/newdir/subdir2*" , the trash root location is coming to be 
"*/user/hrt_4/newdir/subdir/.Trash*"

as clear from the msg here:
{noformat}
rm: Failed to move to trash: hdfs://ns1/user/hrt_4/newdir/subdir2: Source 
/user/hrt_4/newdir/subdir2 and dest 
/user/hrt_4/newdir/subdir/.Trash/hdfs/Current/user/hrt_4/newdir/subdir2 are not 
under the same snapshot root.{noformat}


> Incorrect getTrashRoot return value when a non-snapshottable dir prefix 
> matches the path of a snapshottable dir
> ---
>
> Key: HDFS-15563
> URL: https://issues.apache.org/jira/browse/HDFS-15563
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: snapshots
>Affects Versions: 3.4.0
>Reporter: Nilotpal Nandi
>Assignee: Siyao Meng
>Priority: Major
>  Labels: pull-request-available
> Fix For: 3.4.0
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Note: Only impacts a user if {{dfs.namenode.snapshot.trashroot.enabled}} is 
> enabled.
> Root cause analysis:
> {{SnapshottableDirectoryStatus}} paths retrived inside 
> {{DFSClient#getSnapshotRoot}} aren't appended with '/', causing some 
> directories with the same path prefix to be mistakenly classified as 
> snapshottable directory.
> Thanks [~shashikant] for the test case addition.
> ---
> Repro:
> {code:java}
> 1. snapshottable directory present in the cluster
> hdfs lsSnapshottableDir
> drwx-x-x 0 hrt_2 hrt_2 0 2020-09-08 07:42 0 65536 /user/hrt_2
> drwxr-xr-x 0 hrt_4 hrt_4 0 2020-09-08 13:16 0 65536 
> /user/hrt_4/newdir/subdir2. Created a new directory outside snapshottable 
> directory
> hdfs dfs -mkdir /user/hrt_4/newdir/subdir23. Tried to delete subdir2 , it 
> failed
> hdfs dfs -rm -r /user/hrt_4/newdir/subdir2
> rm: Failed to move to trash: hdfs://ns1/user/hrt_4/newdir/subdir2: Source 
> /user/hrt_4/newdir/subdir2 and dest 
> /user/hrt_4/newdir/subdir/.Trash/hdfs/Current/user/hrt_4/newdir/subdir2 are 
> not under the same snapshot root.
> {code}
> "*/user/hrt_4/newdir/subdir2*" , the trash root location is coming to be 
> "*/user/hrt_4/newdir/subdir/.Trash*"
> as clear from the msg here:
> {noformat}
> rm: Failed to move to trash: hdfs://ns1/user/hrt_4/newdir/subdir2: Source 
> /user/hrt_4/newdir/subdir2 and dest 
> 

[jira] [Updated] (HDFS-15563) Incorrect getTrashRoot return value when a non-snapshottable dir prefix matches the path of a snapshottable dir

2020-09-09 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15563:
--
Status: Patch Available  (was: Open)

> Incorrect getTrashRoot return value when a non-snapshottable dir prefix 
> matches the path of a snapshottable dir
> ---
>
> Key: HDFS-15563
> URL: https://issues.apache.org/jira/browse/HDFS-15563
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: snapshots
>Affects Versions: 3.4.0
>Reporter: Nilotpal Nandi
>Assignee: Siyao Meng
>Priority: Major
> Fix For: 3.4.0
>
>
> Note: Only impacts a user if {{dfs.namenode.snapshot.trashroot.enabled}} is 
> enabled.
> Root cause analysis:
> {{DFSClient#getSnapshotRoot}} check loop 
> Thanks [~shashikant] for the test case addition.
> ---
> Repro:
> {code:java}
> 1. snapshottable directory present in the cluster
> hdfs lsSnapshottableDir
> drwx-x-x 0 hrt_2 hrt_2 0 2020-09-08 07:42 0 65536 /user/hrt_2
> drwxr-xr-x 0 hrt_4 hrt_4 0 2020-09-08 13:16 0 65536 
> /user/hrt_4/newdir/subdir2. Created a new directory outside snapshottable 
> directory
> hdfs dfs -mkdir /user/hrt_4/newdir/subdir23. Tried to delete subdir2 , it 
> failed
> hdfs dfs -rm -r /user/hrt_4/newdir/subdir2
> rm: Failed to move to trash: hdfs://ns1/user/hrt_4/newdir/subdir2: Source 
> /user/hrt_4/newdir/subdir2 and dest 
> /user/hrt_4/newdir/subdir/.Trash/hdfs/Current/user/hrt_4/newdir/subdir2 are 
> not under the same snapshot root.
> {code}
> "*/user/hrt_4/newdir/subdir2*" , the trash root location is coming to be 
> "*/user/hrt_4/newdir/subdir/.Trash*"
> as clear from the msg here:
> {noformat}
> rm: Failed to move to trash: hdfs://ns1/user/hrt_4/newdir/subdir2: Source 
> /user/hrt_4/newdir/subdir2 and dest 
> /user/hrt_4/newdir/subdir/.Trash/hdfs/Current/user/hrt_4/newdir/subdir2 are 
> not under the same snapshot root.{noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15563) Incorrect getTrashRoot return value when a non-snapshottable dir prefix matches the path of a snapshottable dir

2020-09-09 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15563:
--
Description: 
Note: Only impacts a user if {{dfs.namenode.snapshot.trashroot.enabled}} is 
enabled.

Root cause analysis:

{{DFSClient#getSnapshotRoot}} check loop 

Thanks [~shashikant] for the test case addition.

---

Repro:

{code:java}
1. snapshottable directory present in the cluster
hdfs lsSnapshottableDir
drwx-x-x 0 hrt_2 hrt_2 0 2020-09-08 07:42 0 65536 /user/hrt_2
drwxr-xr-x 0 hrt_4 hrt_4 0 2020-09-08 13:16 0 65536 /user/hrt_4/newdir/subdir2. 
Created a new directory outside snapshottable directory
hdfs dfs -mkdir /user/hrt_4/newdir/subdir23. Tried to delete subdir2 , it failed
hdfs dfs -rm -r /user/hrt_4/newdir/subdir2
rm: Failed to move to trash: hdfs://ns1/user/hrt_4/newdir/subdir2: Source 
/user/hrt_4/newdir/subdir2 and dest 
/user/hrt_4/newdir/subdir/.Trash/hdfs/Current/user/hrt_4/newdir/subdir2 are not 
under the same snapshot root.
{code}
"*/user/hrt_4/newdir/subdir2*" , the trash root location is coming to be 
"*/user/hrt_4/newdir/subdir/.Trash*"

as clear from the msg here:
{noformat}
rm: Failed to move to trash: hdfs://ns1/user/hrt_4/newdir/subdir2: Source 
/user/hrt_4/newdir/subdir2 and dest 
/user/hrt_4/newdir/subdir/.Trash/hdfs/Current/user/hrt_4/newdir/subdir2 are not 
under the same snapshot root.{noformat}

  was:
Note: Only impacts a user if {{dfs.namenode.snapshot.trashroot.enabled}} is 
enabled.

Root cause analysis:

DFSClient#getSnapshotRoot

Thanks [~shashikant] for the test case addition.

---

Repro:

{code:java}
1. snapshottable directory present in the cluster
hdfs lsSnapshottableDir
drwx-x-x 0 hrt_2 hrt_2 0 2020-09-08 07:42 0 65536 /user/hrt_2
drwxr-xr-x 0 hrt_4 hrt_4 0 2020-09-08 13:16 0 65536 /user/hrt_4/newdir/subdir2. 
Created a new directory outside snapshottable directory
hdfs dfs -mkdir /user/hrt_4/newdir/subdir23. Tried to delete subdir2 , it failed
hdfs dfs -rm -r /user/hrt_4/newdir/subdir2
rm: Failed to move to trash: hdfs://ns1/user/hrt_4/newdir/subdir2: Source 
/user/hrt_4/newdir/subdir2 and dest 
/user/hrt_4/newdir/subdir/.Trash/hdfs/Current/user/hrt_4/newdir/subdir2 are not 
under the same snapshot root.
{code}
"*/user/hrt_4/newdir/subdir2*" , the trash root location is coming to be 
"*/user/hrt_4/newdir/subdir/.Trash*"

as clear from the msg here:
{noformat}
rm: Failed to move to trash: hdfs://ns1/user/hrt_4/newdir/subdir2: Source 
/user/hrt_4/newdir/subdir2 and dest 
/user/hrt_4/newdir/subdir/.Trash/hdfs/Current/user/hrt_4/newdir/subdir2 are not 
under the same snapshot root.{noformat}


> Incorrect getTrashRoot return value when a non-snapshottable dir prefix 
> matches the path of a snapshottable dir
> ---
>
> Key: HDFS-15563
> URL: https://issues.apache.org/jira/browse/HDFS-15563
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: snapshots
>Affects Versions: 3.4.0
>Reporter: Nilotpal Nandi
>Assignee: Siyao Meng
>Priority: Major
> Fix For: 3.4.0
>
>
> Note: Only impacts a user if {{dfs.namenode.snapshot.trashroot.enabled}} is 
> enabled.
> Root cause analysis:
> {{DFSClient#getSnapshotRoot}} check loop 
> Thanks [~shashikant] for the test case addition.
> ---
> Repro:
> {code:java}
> 1. snapshottable directory present in the cluster
> hdfs lsSnapshottableDir
> drwx-x-x 0 hrt_2 hrt_2 0 2020-09-08 07:42 0 65536 /user/hrt_2
> drwxr-xr-x 0 hrt_4 hrt_4 0 2020-09-08 13:16 0 65536 
> /user/hrt_4/newdir/subdir2. Created a new directory outside snapshottable 
> directory
> hdfs dfs -mkdir /user/hrt_4/newdir/subdir23. Tried to delete subdir2 , it 
> failed
> hdfs dfs -rm -r /user/hrt_4/newdir/subdir2
> rm: Failed to move to trash: hdfs://ns1/user/hrt_4/newdir/subdir2: Source 
> /user/hrt_4/newdir/subdir2 and dest 
> /user/hrt_4/newdir/subdir/.Trash/hdfs/Current/user/hrt_4/newdir/subdir2 are 
> not under the same snapshot root.
> {code}
> "*/user/hrt_4/newdir/subdir2*" , the trash root location is coming to be 
> "*/user/hrt_4/newdir/subdir/.Trash*"
> as clear from the msg here:
> {noformat}
> rm: Failed to move to trash: hdfs://ns1/user/hrt_4/newdir/subdir2: Source 
> /user/hrt_4/newdir/subdir2 and dest 
> /user/hrt_4/newdir/subdir/.Trash/hdfs/Current/user/hrt_4/newdir/subdir2 are 
> not under the same snapshot root.{noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15563) Incorrect getTrashRoot return value when a non-snapshottable dir prefix matches the path of a snapshottable dir

2020-09-09 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15563:
--
Description: 
Note: Only impacts a user if {{dfs.namenode.snapshot.trashroot.enabled}} is 
enabled.

Root cause analysis:

DFSClient#getSnapshotRoot

Thanks [~shashikant] for the test case addition.

---

Repro:

{code:java}
1. snapshottable directory present in the cluster
hdfs lsSnapshottableDir
drwx-x-x 0 hrt_2 hrt_2 0 2020-09-08 07:42 0 65536 /user/hrt_2
drwxr-xr-x 0 hrt_4 hrt_4 0 2020-09-08 13:16 0 65536 /user/hrt_4/newdir/subdir2. 
Created a new directory outside snapshottable directory
hdfs dfs -mkdir /user/hrt_4/newdir/subdir23. Tried to delete subdir2 , it failed
hdfs dfs -rm -r /user/hrt_4/newdir/subdir2
rm: Failed to move to trash: hdfs://ns1/user/hrt_4/newdir/subdir2: Source 
/user/hrt_4/newdir/subdir2 and dest 
/user/hrt_4/newdir/subdir/.Trash/hdfs/Current/user/hrt_4/newdir/subdir2 are not 
under the same snapshot root.
{code}
"*/user/hrt_4/newdir/subdir2*" , the trash root location is coming to be 
"*/user/hrt_4/newdir/subdir/.Trash*"

as clear from the msg here:
{noformat}
rm: Failed to move to trash: hdfs://ns1/user/hrt_4/newdir/subdir2: Source 
/user/hrt_4/newdir/subdir2 and dest 
/user/hrt_4/newdir/subdir/.Trash/hdfs/Current/user/hrt_4/newdir/subdir2 are not 
under the same snapshot root.{noformat}

  was:
{code:java}
1. snapshottable directory present in the cluster
hdfs lsSnapshottableDir
drwx-x-x 0 hrt_2 hrt_2 0 2020-09-08 07:42 0 65536 /user/hrt_2
drwxr-xr-x 0 hrt_4 hrt_4 0 2020-09-08 13:16 0 65536 /user/hrt_4/newdir/subdir2. 
Created a new directory outside snapshottable directory
hdfs dfs -mkdir /user/hrt_4/newdir/subdir23. Tried to delete subdir2 , it failed
hdfs dfs -rm -r /user/hrt_4/newdir/subdir2
rm: Failed to move to trash: hdfs://ns1/user/hrt_4/newdir/subdir2: Source 
/user/hrt_4/newdir/subdir2 and dest 
/user/hrt_4/newdir/subdir/.Trash/hdfs/Current/user/hrt_4/newdir/subdir2 are not 
under the same snapshot root.
{code}
"*/user/hrt_4/newdir/subdir2*" , the trash root location is coming to be 
"*/user/hrt_4/newdir/subdir/.Trash*"

as clear from the msg here:
{noformat}
rm: Failed to move to trash: hdfs://ns1/user/hrt_4/newdir/subdir2: Source 
/user/hrt_4/newdir/subdir2 and dest 
/user/hrt_4/newdir/subdir/.Trash/hdfs/Current/user/hrt_4/newdir/subdir2 are not 
under the same snapshot root.{noformat}


> Incorrect getTrashRoot return value when a non-snapshottable dir prefix 
> matches the path of a snapshottable dir
> ---
>
> Key: HDFS-15563
> URL: https://issues.apache.org/jira/browse/HDFS-15563
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: snapshots
>Affects Versions: 3.4.0
>Reporter: Nilotpal Nandi
>Assignee: Siyao Meng
>Priority: Major
> Fix For: 3.4.0
>
>
> Note: Only impacts a user if {{dfs.namenode.snapshot.trashroot.enabled}} is 
> enabled.
> Root cause analysis:
> DFSClient#getSnapshotRoot
> Thanks [~shashikant] for the test case addition.
> ---
> Repro:
> {code:java}
> 1. snapshottable directory present in the cluster
> hdfs lsSnapshottableDir
> drwx-x-x 0 hrt_2 hrt_2 0 2020-09-08 07:42 0 65536 /user/hrt_2
> drwxr-xr-x 0 hrt_4 hrt_4 0 2020-09-08 13:16 0 65536 
> /user/hrt_4/newdir/subdir2. Created a new directory outside snapshottable 
> directory
> hdfs dfs -mkdir /user/hrt_4/newdir/subdir23. Tried to delete subdir2 , it 
> failed
> hdfs dfs -rm -r /user/hrt_4/newdir/subdir2
> rm: Failed to move to trash: hdfs://ns1/user/hrt_4/newdir/subdir2: Source 
> /user/hrt_4/newdir/subdir2 and dest 
> /user/hrt_4/newdir/subdir/.Trash/hdfs/Current/user/hrt_4/newdir/subdir2 are 
> not under the same snapshot root.
> {code}
> "*/user/hrt_4/newdir/subdir2*" , the trash root location is coming to be 
> "*/user/hrt_4/newdir/subdir/.Trash*"
> as clear from the msg here:
> {noformat}
> rm: Failed to move to trash: hdfs://ns1/user/hrt_4/newdir/subdir2: Source 
> /user/hrt_4/newdir/subdir2 and dest 
> /user/hrt_4/newdir/subdir/.Trash/hdfs/Current/user/hrt_4/newdir/subdir2 are 
> not under the same snapshot root.{noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15563) Incorrect getTrashRoot return value when a non-snapshottable dir prefix matches the path of a snapshottable dir

2020-09-09 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15563:
--
Summary: Incorrect getTrashRoot return value when a non-snapshottable dir 
prefix matches the path of a snapshottable dir  (was: getTrashRoot() location 
can be wrong when the non-snapshottable directory contains the name of the 
snapshottable directory in its name )

> Incorrect getTrashRoot return value when a non-snapshottable dir prefix 
> matches the path of a snapshottable dir
> ---
>
> Key: HDFS-15563
> URL: https://issues.apache.org/jira/browse/HDFS-15563
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: snapshots
>Affects Versions: 3.4.0
>Reporter: Nilotpal Nandi
>Assignee: Siyao Meng
>Priority: Major
> Fix For: 3.4.0
>
>
> {code:java}
> 1. snapshottable directory present in the cluster
> hdfs lsSnapshottableDir
> drwx-x-x 0 hrt_2 hrt_2 0 2020-09-08 07:42 0 65536 /user/hrt_2
> drwxr-xr-x 0 hrt_4 hrt_4 0 2020-09-08 13:16 0 65536 
> /user/hrt_4/newdir/subdir2. Created a new directory outside snapshottable 
> directory
> hdfs dfs -mkdir /user/hrt_4/newdir/subdir23. Tried to delete subdir2 , it 
> failed
> hdfs dfs -rm -r /user/hrt_4/newdir/subdir2
> rm: Failed to move to trash: hdfs://ns1/user/hrt_4/newdir/subdir2: Source 
> /user/hrt_4/newdir/subdir2 and dest 
> /user/hrt_4/newdir/subdir/.Trash/hdfs/Current/user/hrt_4/newdir/subdir2 are 
> not under the same snapshot root.
> {code}
> "*/user/hrt_4/newdir/subdir2*" , the trash root location is coming to be 
> "*/user/hrt_4/newdir/subdir/.Trash*"
> as clear from the msg here:
> {noformat}
> rm: Failed to move to trash: hdfs://ns1/user/hrt_4/newdir/subdir2: Source 
> /user/hrt_4/newdir/subdir2 and dest 
> /user/hrt_4/newdir/subdir/.Trash/hdfs/Current/user/hrt_4/newdir/subdir2 are 
> not under the same snapshot root.{noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15539) When disallowing snapshot on a dir, throw exception if its trash root is not empty

2020-08-28 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15539:
--
Status: Patch Available  (was: Open)

> When disallowing snapshot on a dir, throw exception if its trash root is not 
> empty
> --
>
> Key: HDFS-15539
> URL: https://issues.apache.org/jira/browse/HDFS-15539
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> When snapshot is disallowed on a dir, {{getTrashRoots()}} won't return the 
> trash root in that dir anymore (if any). The risk is the trash root will be 
> left there forever.
> We need to throw an exception there and prompt the user to clean up or rename 
> the trash root if it is not empty.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15539) When disallowing snapshot on a dir, throw exception if its trash root is not empty

2020-08-26 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15539:
--
Parent: HDFS-15477
Issue Type: Sub-task  (was: Improvement)

> When disallowing snapshot on a dir, throw exception if its trash root is not 
> empty
> --
>
> Key: HDFS-15539
> URL: https://issues.apache.org/jira/browse/HDFS-15539
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> When snapshot is disallowed on a dir, {{getTrashRoots()}} won't return the 
> trash root in that dir anymore (if any). The risk is the trash root will be 
> left there forever.
> We need to throw an exception there and prompt the user to clean up or rename 
> the trash root if it is not empty.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Created] (HDFS-15539) When disallowing snapshot on a dir, throw exception if its snapshot root is not empty

2020-08-26 Thread Siyao Meng (Jira)
Siyao Meng created HDFS-15539:
-

 Summary: When disallowing snapshot on a dir, throw exception if 
its snapshot root is not empty
 Key: HDFS-15539
 URL: https://issues.apache.org/jira/browse/HDFS-15539
 Project: Hadoop HDFS
  Issue Type: Improvement
  Components: hdfs
Reporter: Siyao Meng
Assignee: Siyao Meng


When snapshot is disallowed on a dir, {{getTrashRoots()}} won't return the 
trash root in that dir anymore (if any). The risk is the trash root will be 
left there forever.
We need to throw an exception there and prompt the user to clean up or rename 
the trash root if it is not empty.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15539) When disallowing snapshot on a dir, throw exception if its trash root is not empty

2020-08-26 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15539:
--
Summary: When disallowing snapshot on a dir, throw exception if its trash 
root is not empty  (was: When disallowing snapshot on a dir, throw exception if 
its snapshot root is not empty)

> When disallowing snapshot on a dir, throw exception if its trash root is not 
> empty
> --
>
> Key: HDFS-15539
> URL: https://issues.apache.org/jira/browse/HDFS-15539
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: hdfs
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> When snapshot is disallowed on a dir, {{getTrashRoots()}} won't return the 
> trash root in that dir anymore (if any). The risk is the trash root will be 
> left there forever.
> We need to throw an exception there and prompt the user to clean up or rename 
> the trash root if it is not empty.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15526) Tests in TestOzoneFileSystem should use the existing MiniOzoneCluster

2020-08-12 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15526:
--
Status: Patch Available  (was: Open)

> Tests in TestOzoneFileSystem should use the existing MiniOzoneCluster
> -
>
> Key: HDFS-15526
> URL: https://issues.apache.org/jira/browse/HDFS-15526
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: test
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Trivial
>
> In HDDS-2883, [~adoroszlai] made a change that greatly reduces the run time 
> of the test suite {{TestOzoneFileSystem}} by sharing one {{MiniOzoneCluster}} 
> among the tests.
> But 4 new tests have been added since and are not sharing that 
> {{MiniOzoneCluster}}.
> I am able to cut down the run time of {{TestOzoneFileSystem}} from 3m18s to 
> 1m2s on my Mac. It would only save more run time on GitHub Workflow.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Created] (HDFS-15526) Tests in TestOzoneFileSystem should use the existing MiniOzoneCluster

2020-08-12 Thread Siyao Meng (Jira)
Siyao Meng created HDFS-15526:
-

 Summary: Tests in TestOzoneFileSystem should use the existing 
MiniOzoneCluster
 Key: HDFS-15526
 URL: https://issues.apache.org/jira/browse/HDFS-15526
 Project: Hadoop HDFS
  Issue Type: Improvement
  Components: test
Reporter: Siyao Meng
Assignee: Siyao Meng


In HDDS-2883, [~adoroszlai] made a change that greatly reduces the run time of 
the test suite {{TestOzoneFileSystem}} by sharing one {{MiniOzoneCluster}} 
among the tests.

But 4 new tests have been added since and are not sharing that 
{{MiniOzoneCluster}}.

I am able to cut down the run time of {{TestOzoneFileSystem}} from 3m18s to 
1m2s on my Mac. It would only save more run time on GitHub Workflow.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15525) Make trash root inside each snapshottable directory for WebHDFS

2020-08-12 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15525:
--
Status: Patch Available  (was: Open)

> Make trash root inside each snapshottable directory for WebHDFS
> ---
>
> Key: HDFS-15525
> URL: https://issues.apache.org/jira/browse/HDFS-15525
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: webhdfs
>Affects Versions: 3.3.0
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> Same objective as HDFS-15492, but for WebHDFS due to it having a different 
> call path for {{getTrashRoot}}.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Created] (HDFS-15525) Make trash root inside each snapshottable directory for WebHDFS

2020-08-12 Thread Siyao Meng (Jira)
Siyao Meng created HDFS-15525:
-

 Summary: Make trash root inside each snapshottable directory for 
WebHDFS
 Key: HDFS-15525
 URL: https://issues.apache.org/jira/browse/HDFS-15525
 Project: Hadoop HDFS
  Issue Type: Sub-task
  Components: webhdfs
Affects Versions: 3.3.0
Reporter: Siyao Meng
Assignee: Siyao Meng


Same objective as HDFS-15492, but for WebHDFS due to it having a different call 
path for {{getTrashRoot}}.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15492) Make trash root inside each snapshottable directory

2020-08-11 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15492:
--
Fix Version/s: 3.4.0
   Resolution: Fixed
   Status: Resolved  (was: Patch Available)

> Make trash root inside each snapshottable directory
> ---
>
> Key: HDFS-15492
> URL: https://issues.apache.org/jira/browse/HDFS-15492
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs, hdfs-client
>Affects Versions: 3.2.1
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
> Fix For: 3.4.0
>
>
> We have seen FSImage corruption cases (e.g. HDFS-13101) where files inside 
> one snapshottable directories are moved outside of it. The most common case 
> of this is when trash is enabled and user deletes some file via the command 
> line without skipTrash.
> This jira aims to make a trash root for each snapshottable directory, same as 
> how encryption zone behaves at the moment.
> This will make trash cleanup a little bit more expensive on the NameNode as 
> it will be to iterate all trash roots. But should be fine as long as there 
> aren't many snapshottable directories.
> I could make this improvement as an option and disable it by default if 
> needed, such as {{dfs.namenode.snapshot.trashroot.enabled}}
> One small caveat though, when disabling (disallowing) snapshot on the 
> snapshottable directory when this improvement is in place. The client should 
> merge the snapshottable directory's trash with that user's trash to ensure 
> proper trash cleanup.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15513) Allow client to query snapshot status on one directory

2020-08-05 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15513:
--
Description: 
Alternatively, we can allow the client to query snapshot status on *a list of* 
given directories by the client. Thoughts?

Rationale:
At the moment, we could only retrieve the full list of snapshottable 
directories with 
[{{getSnapshottableDirListing()}}|https://github.com/apache/hadoop/blob/233619a0a462ae2eb7e7253b6bb8ae48eaa5eb19/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java#L6986-L6994].
 This leads to the inefficiency In HDFS-15492 that we have to get the *entire* 
list of snapshottable directory to check if a file being deleted is inside a 
snapshottable directory.

  was:
Alternatively, we can allow the client to query snapshot status on *a list of* 
directories, if necessary. Thoughts?

Rationale:
At the moment, we could only retrieve the full list of snapshottable 
directories with 
[{{getSnapshottableDirListing()}}|https://github.com/apache/hadoop/blob/233619a0a462ae2eb7e7253b6bb8ae48eaa5eb19/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java#L6986-L6994].
 This leads to the inefficiency In HDFS-15492 that we have to get the *entire* 
list of snapshottable directory to check if a file being deleted is inside a 
snapshottable directory.


> Allow client to query snapshot status on one directory
> --
>
> Key: HDFS-15513
> URL: https://issues.apache.org/jira/browse/HDFS-15513
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: hdfs, hdfs-client
>Affects Versions: 3.3.0
>Reporter: Siyao Meng
>Priority: Major
>
> Alternatively, we can allow the client to query snapshot status on *a list 
> of* given directories by the client. Thoughts?
> Rationale:
> At the moment, we could only retrieve the full list of snapshottable 
> directories with 
> [{{getSnapshottableDirListing()}}|https://github.com/apache/hadoop/blob/233619a0a462ae2eb7e7253b6bb8ae48eaa5eb19/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java#L6986-L6994].
>  This leads to the inefficiency In HDFS-15492 that we have to get the 
> *entire* list of snapshottable directory to check if a file being deleted is 
> inside a snapshottable directory.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Created] (HDFS-15513) Allow client to query snapshot status on one directory

2020-08-05 Thread Siyao Meng (Jira)
Siyao Meng created HDFS-15513:
-

 Summary: Allow client to query snapshot status on one directory
 Key: HDFS-15513
 URL: https://issues.apache.org/jira/browse/HDFS-15513
 Project: Hadoop HDFS
  Issue Type: Improvement
  Components: hdfs, hdfs-client
Affects Versions: 3.3.0
Reporter: Siyao Meng


Alternatively, we can allow the client to query snapshot status on *a list of* 
directories, if necessary. Thoughts?

Rationale:
At the moment, we could only retrieve the full list of snapshottable 
directories with 
[{{getSnapshottableDirListing()}}|https://github.com/apache/hadoop/blob/233619a0a462ae2eb7e7253b6bb8ae48eaa5eb19/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java#L6986-L6994].
 This leads to the inefficiency In HDFS-15492 that we have to get the *entire* 
list of snapshottable directory to check if a file being deleted is inside a 
snapshottable directory.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15492) Make trash root inside each snapshottable directory

2020-08-04 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15492:
--
Status: Patch Available  (was: In Progress)

> Make trash root inside each snapshottable directory
> ---
>
> Key: HDFS-15492
> URL: https://issues.apache.org/jira/browse/HDFS-15492
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: hdfs, hdfs-client
>Affects Versions: 3.2.1
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> We have seen FSImage corruption cases (e.g. HDFS-13101) where files inside 
> one snapshottable directories are moved outside of it. The most common case 
> of this is when trash is enabled and user deletes some file via the command 
> line without skipTrash.
> This jira aims to make a trash root for each snapshottable directory, same as 
> how encryption zone behaves at the moment.
> This will make trash cleanup a little bit more expensive on the NameNode as 
> it will be to iterate all trash roots. But should be fine as long as there 
> aren't many snapshottable directories.
> I could make this improvement as an option and disable it by default if 
> needed, such as {{dfs.namenode.snapshot.trashroot.enabled}}
> One small caveat though, when disabling (disallowing) snapshot on the 
> snapshottable directory when this improvement is in place. The client should 
> merge the snapshottable directory's trash with that user's trash to ensure 
> proper trash cleanup.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15492) Make trash root inside each snapshottable directory

2020-07-29 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15492:
--
Description: 
We have seen FSImage corruption cases (e.g. HDFS-13101) where files inside one 
snapshottable directories are moved outside of it. The most common case of this 
is when trash is enabled and user deletes some file via the command line 
without skipTrash.

This jira aims to make a trash root for each snapshottable directory, same as 
how encryption zone behaves at the moment.

This will make trash cleanup a little bit more expensive on the NameNode as it 
will be to iterate all trash roots. But should be fine as long as there aren't 
many snapshottable directories.

I could make this improvement as an option and disable it by default if needed, 
such as {{dfs.namenode.snapshot.trashroot.enabled}}

One small caveat though, when disabling (disallowing) snapshot on the 
snapshottable directory when this improvement is in place. The client should 
merge the snapshottable directory's trash with that user's trash to ensure 
proper trash cleanup.

  was:
We have seen FSImage corruption cases (e.g. HDFS-13101) where files inside one 
snapshottable directories are moved outside of it. The most common case of this 
is when trash is enabled and user deletes some file via the command line 
without skipTrash.

This jira aims to make a trash root for each snapshottable directory, same as 
how encryption zone behaves at the moment.

This will make trash cleanup a little bit more expensive on the NameNode as it 
will be to iterate all trash roots. But should be fine as long as there aren't 
many snapshottable directories.

I could make this improvement as an option and disable it by default if needed, 
such as {{dfs.namenode.snapshot.trashroot.enable}}

One small caveat though, when disabling (disallowing) snapshot on the 
snapshottable directory when this improvement is in place. The client should 
merge the snapshottable directory's trash with that user's trash to ensure 
proper trash cleanup.


> Make trash root inside each snapshottable directory
> ---
>
> Key: HDFS-15492
> URL: https://issues.apache.org/jira/browse/HDFS-15492
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: hdfs, hdfs-client
>Affects Versions: 3.2.1
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> We have seen FSImage corruption cases (e.g. HDFS-13101) where files inside 
> one snapshottable directories are moved outside of it. The most common case 
> of this is when trash is enabled and user deletes some file via the command 
> line without skipTrash.
> This jira aims to make a trash root for each snapshottable directory, same as 
> how encryption zone behaves at the moment.
> This will make trash cleanup a little bit more expensive on the NameNode as 
> it will be to iterate all trash roots. But should be fine as long as there 
> aren't many snapshottable directories.
> I could make this improvement as an option and disable it by default if 
> needed, such as {{dfs.namenode.snapshot.trashroot.enabled}}
> One small caveat though, when disabling (disallowing) snapshot on the 
> snapshottable directory when this improvement is in place. The client should 
> merge the snapshottable directory's trash with that user's trash to ensure 
> proper trash cleanup.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Comment Edited] (HDFS-15495) Decommissioning a DataNode with corrupted EC files should not be blocked indefinitely

2020-07-29 Thread Siyao Meng (Jira)


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

Siyao Meng edited comment on HDFS-15495 at 7/29/20, 10:20 PM:
--

Awesome! Thanks [~sodonnell] for the writeup and unit test.
I tried your UT and it works - I mean it failed because the decom is hung. So 
we can confirm this is still the case on trunk.


was (Author: smeng):
Awesome! Thanks [~sodonnell] for the writeup and unit test.
I tried your UT and it works - I mean it failed because the decom is hang. So 
we can confirm this is still the case on trunk.

> Decommissioning a DataNode with corrupted EC files should not be blocked 
> indefinitely
> -
>
> Key: HDFS-15495
> URL: https://issues.apache.org/jira/browse/HDFS-15495
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: block placement, ec
>Affects Versions: 3.0.0
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> Originally discovered in patched CDH 6.2.1 (with a bunch of EC fixes: 
> HDFS-14699, HDFS-14849, HDFS-14847, HDFS-14920, HDFS-14768, HDFS-14946, 
> HDFS-15186).
> When there's an EC file marked as corrupted on NN, if the admin tries to 
> decommission a DataNode having one of the remaining blocks of the corrupted 
> EC file, *the decom will never finish* unless the file is recovered by 
> putting the missing blocks back in:
> {code:title=The endless DatanodeAdminManager check loop, every 30s}
> 2020-07-23 16:36:12,805 TRACE blockmanagement.DatanodeAdminManager: Processed 
> 0 blocks so far this tick
> 2020-07-23 16:36:12,806 DEBUG blockmanagement.DatanodeAdminManager: 
> Processing Decommission In Progress node 127.0.1.7:5007
> 2020-07-23 16:36:12,806 TRACE blockmanagement.DatanodeAdminManager: Block 
> blk_-9223372036854775728_1013 numExpected=9, numLive=4
> 2020-07-23 16:36:12,806 INFO BlockStateChange: Block: 
> blk_-9223372036854775728_1013, Expected Replicas: 9, live replicas: 4, 
> corrupt replicas: 0, decommissioned replicas: 0, decommissioning replicas: 1, 
> maintenance replicas: 0, live entering maintenance replicas: 0, excess 
> replicas: 0, Is Open File: false, Datanodes having this block: 
> 127.0.1.12:5012 127.0.1.10:5010 127.0.1.8:5008 127.0.1.11:5011 127.0.1.7:5007 
> , Current Datanode: 127.0.1.7:5007, Is current datanode decommissioning: 
> true, Is current datanode entering maintenance: false
> 2020-07-23 16:36:12,806 DEBUG blockmanagement.DatanodeAdminManager: Node 
> 127.0.1.7:5007 still has 1 blocks to replicate before it is a candidate to 
> finish Decommission In Progress.
> 2020-07-23 16:36:12,806 INFO blockmanagement.DatanodeAdminManager: Checked 1 
> blocks and 1 nodes this tick
> {code}
> "Corrupted" file here meaning the EC file doesn't have enough EC blocks in 
> the block group to be reconstructed. e.g. for {{RS-6-3-1024k}}, when there 
> are less than 6 blocks for an EC file, the file can no longer be retrieved 
> correctly.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15495) Decommissioning a DataNode with corrupted EC files should not be blocked indefinitely

2020-07-29 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15495:
--
Description: 
Originally discovered in patched CDH 6.2.1 (with a bunch of EC fixes: 
HDFS-14699, HDFS-14849, HDFS-14847, HDFS-14920, HDFS-14768, HDFS-14946, 
HDFS-15186).

When there's an EC file marked as corrupted on NN, if the admin tries to 
decommission a DataNode having one of the remaining blocks of the corrupted EC 
file, *the decom will never finish* unless the file is recovered by putting the 
missing blocks back in:

{code:title=The endless DatanodeAdminManager check loop, every 30s}
2020-07-23 16:36:12,805 TRACE blockmanagement.DatanodeAdminManager: Processed 0 
blocks so far this tick
2020-07-23 16:36:12,806 DEBUG blockmanagement.DatanodeAdminManager: Processing 
Decommission In Progress node 127.0.1.7:5007
2020-07-23 16:36:12,806 TRACE blockmanagement.DatanodeAdminManager: Block 
blk_-9223372036854775728_1013 numExpected=9, numLive=4
2020-07-23 16:36:12,806 INFO BlockStateChange: Block: 
blk_-9223372036854775728_1013, Expected Replicas: 9, live replicas: 4, corrupt 
replicas: 0, decommissioned replicas: 0, decommissioning replicas: 1, 
maintenance replicas: 0, live entering maintenance replicas: 0, excess 
replicas: 0, Is Open File: false, Datanodes having this block: 127.0.1.12:5012 
127.0.1.10:5010 127.0.1.8:5008 127.0.1.11:5011 127.0.1.7:5007 , Current 
Datanode: 127.0.1.7:5007, Is current datanode decommissioning: true, Is current 
datanode entering maintenance: false
2020-07-23 16:36:12,806 DEBUG blockmanagement.DatanodeAdminManager: Node 
127.0.1.7:5007 still has 1 blocks to replicate before it is a candidate to 
finish Decommission In Progress.
2020-07-23 16:36:12,806 INFO blockmanagement.DatanodeAdminManager: Checked 1 
blocks and 1 nodes this tick
{code}

"Corrupted" file here meaning the EC file doesn't have enough EC blocks in the 
block group to be reconstructed. e.g. for {{RS-6-3-1024k}}, when there are less 
than 6 blocks for an EC file, the file can no longer be retrieved correctly.

  was:
Originally discovered in patched CDH 6.2.1 (with a bunch of EC fixes: 
HDFS-14699, HDFS-14849, HDFS-14847, HDFS-14920, HDFS-14768, HDFS-14946, 
HDFS-15186).

When there's an EC file marked as corrupted on NN, if the admin tries to 
decommission a DataNode having one of the remaining blocks of the corrupted EC 
file, *the decom will never finish* unless the file is recovered by putting the 
missing blocks back in:

{code:title=The endless DatanodeAdminManager check loop, every 30s}
2020-07-23 16:36:12,805 TRACE blockmanagement.DatanodeAdminManager: Processed 0 
blocks so far this tick
2020-07-23 16:36:12,806 DEBUG blockmanagement.DatanodeAdminManager: Processing 
Decommission In Progress node 127.0.1.7:5007
2020-07-23 16:36:12,806 TRACE blockmanagement.DatanodeAdminManager: Block 
blk_-9223372036854775728_1013 numExpected=9, numLive=4
2020-07-23 16:36:12,806 INFO BlockStateChange: Block: 
blk_-9223372036854775728_1013, Expected Replicas: 9, live replicas: 4, corrupt 
replicas: 0, decommissioned replicas: 0, decommissioning replicas: 1, 
maintenance replicas: 0, live entering maintenance replicas: 0, excess 
replicas: 0, Is Open File: false, Datanodes having this block: 127.0.1.12:5012 
127.0.1.10:5010 127.0.1.8:5008 127.0.1.11:5011 127.0.1.7:5007 , Current 
Datanode: 127.0.1.7:5007, Is current datanode decommissioning: true, Is current 
datanode entering maintenance: false
2020-07-23 16:36:12,806 DEBUG blockmanagement.DatanodeAdminManager: Node 
127.0.1.7:5007 still has 1 blocks to replicate before it is a candidate to 
finish Decommission In Progress.
2020-07-23 16:36:12,806 INFO blockmanagement.DatanodeAdminManager: Checked 1 
blocks and 1 nodes this tick
{code}

"Corrupted" file here meaning the EC file doesn't have enough EC blocks in the 
block group to be reconstructed. e.g. for {{RS-6-3-1024k}}, when there are less 
than 6 blocks for an EC file, the file can no longer be retrieved correctly.

Will check on trunk as well soon.


> Decommissioning a DataNode with corrupted EC files should not be blocked 
> indefinitely
> -
>
> Key: HDFS-15495
> URL: https://issues.apache.org/jira/browse/HDFS-15495
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: block placement, ec
>Affects Versions: 3.0.0
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> Originally discovered in patched CDH 6.2.1 (with a bunch of EC fixes: 
> HDFS-14699, HDFS-14849, HDFS-14847, HDFS-14920, HDFS-14768, HDFS-14946, 
> HDFS-15186).
> When there's an EC file marked as corrupted on NN, if the admin tries to 
> decommission a DataNode having one of the remaining blocks of the corrupted 
> EC file, *the decom will never 

[jira] [Commented] (HDFS-15495) Decommissioning a DataNode with corrupted EC files should not be blocked indefinitely

2020-07-29 Thread Siyao Meng (Jira)


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

Siyao Meng commented on HDFS-15495:
---

Awesome! Thanks [~sodonnell] for the writeup and unit test.
I tried your UT and it works - I mean it failed because the decom is hang. So 
we can confirm this is still the case on trunk.

> Decommissioning a DataNode with corrupted EC files should not be blocked 
> indefinitely
> -
>
> Key: HDFS-15495
> URL: https://issues.apache.org/jira/browse/HDFS-15495
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: block placement, ec
>Affects Versions: 3.0.0
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> Originally discovered in patched CDH 6.2.1 (with a bunch of EC fixes: 
> HDFS-14699, HDFS-14849, HDFS-14847, HDFS-14920, HDFS-14768, HDFS-14946, 
> HDFS-15186).
> When there's an EC file marked as corrupted on NN, if the admin tries to 
> decommission a DataNode having one of the remaining blocks of the corrupted 
> EC file, *the decom will never finish* unless the file is recovered by 
> putting the missing blocks back in:
> {code:title=The endless DatanodeAdminManager check loop, every 30s}
> 2020-07-23 16:36:12,805 TRACE blockmanagement.DatanodeAdminManager: Processed 
> 0 blocks so far this tick
> 2020-07-23 16:36:12,806 DEBUG blockmanagement.DatanodeAdminManager: 
> Processing Decommission In Progress node 127.0.1.7:5007
> 2020-07-23 16:36:12,806 TRACE blockmanagement.DatanodeAdminManager: Block 
> blk_-9223372036854775728_1013 numExpected=9, numLive=4
> 2020-07-23 16:36:12,806 INFO BlockStateChange: Block: 
> blk_-9223372036854775728_1013, Expected Replicas: 9, live replicas: 4, 
> corrupt replicas: 0, decommissioned replicas: 0, decommissioning replicas: 1, 
> maintenance replicas: 0, live entering maintenance replicas: 0, excess 
> replicas: 0, Is Open File: false, Datanodes having this block: 
> 127.0.1.12:5012 127.0.1.10:5010 127.0.1.8:5008 127.0.1.11:5011 127.0.1.7:5007 
> , Current Datanode: 127.0.1.7:5007, Is current datanode decommissioning: 
> true, Is current datanode entering maintenance: false
> 2020-07-23 16:36:12,806 DEBUG blockmanagement.DatanodeAdminManager: Node 
> 127.0.1.7:5007 still has 1 blocks to replicate before it is a candidate to 
> finish Decommission In Progress.
> 2020-07-23 16:36:12,806 INFO blockmanagement.DatanodeAdminManager: Checked 1 
> blocks and 1 nodes this tick
> {code}
> "Corrupted" file here meaning the EC file doesn't have enough EC blocks in 
> the block group to be reconstructed. e.g. for {{RS-6-3-1024k}}, when there 
> are less than 6 blocks for an EC file, the file can no longer be retrieved 
> correctly.
> Will check on trunk as well soon.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Created] (HDFS-15495) Decommissioning a DataNode with corrupted EC files should not be blocked indefinitely

2020-07-27 Thread Siyao Meng (Jira)
Siyao Meng created HDFS-15495:
-

 Summary: Decommissioning a DataNode with corrupted EC files should 
not be blocked indefinitely
 Key: HDFS-15495
 URL: https://issues.apache.org/jira/browse/HDFS-15495
 Project: Hadoop HDFS
  Issue Type: Improvement
  Components: block placement, ec
Affects Versions: 3.0.0
Reporter: Siyao Meng
Assignee: Siyao Meng


Originally discovered in patched CDH 6.2.1 (with a bunch of EC fixes: 
HDFS-14699, HDFS-14849, HDFS-14847, HDFS-14920, HDFS-14768, HDFS-14946, 
HDFS-15186).

When there's an EC file marked as corrupted on NN, if the admin tries to 
decommission a DataNode having one of the remaining blocks of the corrupted EC 
file, *the decom will never finish* unless the file is recovered by putting the 
missing blocks back in:

{code:title=The endless DatanodeAdminManager check loop, every 30s}
2020-07-23 16:36:12,805 TRACE blockmanagement.DatanodeAdminManager: Processed 0 
blocks so far this tick
2020-07-23 16:36:12,806 DEBUG blockmanagement.DatanodeAdminManager: Processing 
Decommission In Progress node 127.0.1.7:5007
2020-07-23 16:36:12,806 TRACE blockmanagement.DatanodeAdminManager: Block 
blk_-9223372036854775728_1013 numExpected=9, numLive=4
2020-07-23 16:36:12,806 INFO BlockStateChange: Block: 
blk_-9223372036854775728_1013, Expected Replicas: 9, live replicas: 4, corrupt 
replicas: 0, decommissioned replicas: 0, decommissioning replicas: 1, 
maintenance replicas: 0, live entering maintenance replicas: 0, excess 
replicas: 0, Is Open File: false, Datanodes having this block: 127.0.1.12:5012 
127.0.1.10:5010 127.0.1.8:5008 127.0.1.11:5011 127.0.1.7:5007 , Current 
Datanode: 127.0.1.7:5007, Is current datanode decommissioning: true, Is current 
datanode entering maintenance: false
2020-07-23 16:36:12,806 DEBUG blockmanagement.DatanodeAdminManager: Node 
127.0.1.7:5007 still has 1 blocks to replicate before it is a candidate to 
finish Decommission In Progress.
2020-07-23 16:36:12,806 INFO blockmanagement.DatanodeAdminManager: Checked 1 
blocks and 1 nodes this tick
{code}

"Corrupted" file here meaning the EC file doesn't have enough EC blocks in the 
block group to be reconstructed. e.g. for {{RS-6-3-1024k}}, when there are less 
than 6 blocks for an EC file, the file can no longer be retrieved correctly.

Will check on trunk as well soon.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Work started] (HDFS-15492) Make trash root inside each snapshottable directory

2020-07-27 Thread Siyao Meng (Jira)


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

Work on HDFS-15492 started by Siyao Meng.
-
> Make trash root inside each snapshottable directory
> ---
>
> Key: HDFS-15492
> URL: https://issues.apache.org/jira/browse/HDFS-15492
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: hdfs, hdfs-client
>Affects Versions: 3.2.1
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> We have seen FSImage corruption cases (e.g. HDFS-13101) where files inside 
> one snapshottable directories are moved outside of it. The most common case 
> of this is when trash is enabled and user deletes some file via the command 
> line without skipTrash.
> This jira aims to make a trash root for each snapshottable directory, same as 
> how encryption zone behaves at the moment.
> This will make trash cleanup a little bit more expensive on the NameNode as 
> it will be to iterate all trash roots. But should be fine as long as there 
> aren't many snapshottable directories.
> I could make this improvement as an option and disable it by default if 
> needed, such as {{dfs.namenode.snapshot.trashroot.enable}}
> One small caveat though, when disabling (disallowing) snapshot on the 
> snapshottable directory when this improvement is in place. The client should 
> merge the snapshottable directory's trash with that user's trash to ensure 
> proper trash cleanup.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15492) Make trash root inside each snapshottable directory

2020-07-23 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15492:
--
Affects Version/s: 3.2.1

> Make trash root inside each snapshottable directory
> ---
>
> Key: HDFS-15492
> URL: https://issues.apache.org/jira/browse/HDFS-15492
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: hdfs, hdfs-client
>Affects Versions: 3.2.1
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> We have seen FSImage corruption cases (e.g. HDFS-13101) where files inside 
> one snapshottable directories are moved outside of it. The most common case 
> of this is when trash is enabled and user deletes some file via the command 
> line without skipTrash.
> This jira aims to make a trash root for each snapshottable directory, same as 
> how encryption zone behaves at the moment.
> This will make trash cleanup a little bit more expensive on the NameNode as 
> it will be to iterate all trash roots. But should be fine as long as there 
> aren't many snapshottable directories.
> I could make this improvement as an option and disable it by default if 
> needed, such as {{dfs.namenode.snapshot.trashroot.enable}}
> One small caveat though, when disabling (disallowing) snapshot on the 
> snapshottable directory when this improvement is in place. The client should 
> merge the snapshottable directory's trash with that user's trash to ensure 
> proper trash cleanup.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15492) Make trash root inside each snapshottable directory

2020-07-23 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15492:
--
Target Version/s: 3.3.1

> Make trash root inside each snapshottable directory
> ---
>
> Key: HDFS-15492
> URL: https://issues.apache.org/jira/browse/HDFS-15492
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: hdfs, hdfs-client
>Affects Versions: 3.2.1
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> We have seen FSImage corruption cases (e.g. HDFS-13101) where files inside 
> one snapshottable directories are moved outside of it. The most common case 
> of this is when trash is enabled and user deletes some file via the command 
> line without skipTrash.
> This jira aims to make a trash root for each snapshottable directory, same as 
> how encryption zone behaves at the moment.
> This will make trash cleanup a little bit more expensive on the NameNode as 
> it will be to iterate all trash roots. But should be fine as long as there 
> aren't many snapshottable directories.
> I could make this improvement as an option and disable it by default if 
> needed, such as {{dfs.namenode.snapshot.trashroot.enable}}
> One small caveat though, when disabling (disallowing) snapshot on the 
> snapshottable directory when this improvement is in place. The client should 
> merge the snapshottable directory's trash with that user's trash to ensure 
> proper trash cleanup.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15492) Make trash root inside each snapshottable directory

2020-07-23 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15492:
--
Component/s: hdfs-client
 hdfs

> Make trash root inside each snapshottable directory
> ---
>
> Key: HDFS-15492
> URL: https://issues.apache.org/jira/browse/HDFS-15492
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: hdfs, hdfs-client
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> We have seen FSImage corruption cases (e.g. HDFS-13101) where files inside 
> one snapshottable directories are moved outside of it. The most common case 
> of this is when trash is enabled and user deletes some file via the command 
> line without skipTrash.
> This jira aims to make a trash root for each snapshottable directory, same as 
> how encryption zone behaves at the moment.
> This will make trash cleanup a little bit more expensive on the NameNode as 
> it will be to iterate all trash roots. But should be fine as long as there 
> aren't many snapshottable directories.
> I could make this improvement as an option and disable it by default if 
> needed, such as {{dfs.namenode.snapshot.trashroot.enable}}
> One small caveat though, when disabling (disallowing) snapshot on the 
> snapshottable directory when this improvement is in place. The client should 
> merge the snapshottable directory's trash with that user's trash to ensure 
> proper trash cleanup.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Created] (HDFS-15492) Make trash root inside each snapshottable directory

2020-07-23 Thread Siyao Meng (Jira)
Siyao Meng created HDFS-15492:
-

 Summary: Make trash root inside each snapshottable directory
 Key: HDFS-15492
 URL: https://issues.apache.org/jira/browse/HDFS-15492
 Project: Hadoop HDFS
  Issue Type: Improvement
Reporter: Siyao Meng
Assignee: Siyao Meng


We have seen FSImage corruption cases (e.g. HDFS-13101) where files inside one 
snapshottable directories are moved outside of it. The most common case of this 
is when trash is enabled and user deletes some file via the command line 
without skipTrash.

This jira aims to make a trash root for each snapshottable directory, same as 
how encryption zone behaves at the moment.

This will make trash cleanup a little bit more expensive on the NameNode as it 
will be to iterate all trash roots. But should be fine as long as there aren't 
many snapshottable directories.

I could make this improvement as an option and disable it by default if needed, 
such as {{dfs.namenode.snapshot.trashroot.enable}}

One small caveat though, when disabling (disallowing) snapshot on the 
snapshottable directory when this improvement is in place. The client should 
merge the snapshottable directory's trash with that user's trash to ensure 
proper trash cleanup.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15462) Add fs.viewfs.overload.scheme.target.ofs.impl to core-default.xml

2020-07-09 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15462:
--
Fix Version/s: 3.4.0
   Resolution: Fixed
   Status: Resolved  (was: Patch Available)

> Add fs.viewfs.overload.scheme.target.ofs.impl to core-default.xml
> -
>
> Key: HDFS-15462
> URL: https://issues.apache.org/jira/browse/HDFS-15462
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: configuration, viewfs, viewfsOverloadScheme
>Affects Versions: 3.2.1
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
> Fix For: 3.4.0
>
>
> HDFS-15394 added the existing impls in core-default.xml except ofs. Let's add 
> ofs to core-default here.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15462) Add fs.viewfs.overload.scheme.target.ofs.impl to core-default.xml

2020-07-08 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15462:
--
  Component/s: viewfsOverloadScheme
   viewfs
   configuration
 Target Version/s: 3.4.0
Affects Version/s: 3.2.1

> Add fs.viewfs.overload.scheme.target.ofs.impl to core-default.xml
> -
>
> Key: HDFS-15462
> URL: https://issues.apache.org/jira/browse/HDFS-15462
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>  Components: configuration, viewfs, viewfsOverloadScheme
>Affects Versions: 3.2.1
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> HDFS-15394 added the existing impls in core-default.xml except ofs. Let's add 
> ofs to core-default here.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15462) Add fs.viewfs.overload.scheme.target.ofs.impl to core-default.xml

2020-07-08 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15462:
--
Status: Patch Available  (was: Open)

> Add fs.viewfs.overload.scheme.target.ofs.impl to core-default.xml
> -
>
> Key: HDFS-15462
> URL: https://issues.apache.org/jira/browse/HDFS-15462
> Project: Hadoop HDFS
>  Issue Type: Sub-task
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>
> HDFS-15394 added the existing impls in core-default.xml except ofs. Let's add 
> ofs to core-default here.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Created] (HDFS-15462) Add fs.viewfs.overload.scheme.target.ofs.impl to core-default.xml

2020-07-08 Thread Siyao Meng (Jira)
Siyao Meng created HDFS-15462:
-

 Summary: Add fs.viewfs.overload.scheme.target.ofs.impl to 
core-default.xml
 Key: HDFS-15462
 URL: https://issues.apache.org/jira/browse/HDFS-15462
 Project: Hadoop HDFS
  Issue Type: Sub-task
Reporter: Siyao Meng
Assignee: Siyao Meng


HDFS-15394 added the existing impls in core-default.xml except ofs. Let's add 
ofs to core-default here.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-14920) Erasure Coding: Decommission may hang If one or more datanodes are out of service during decommission

2020-06-29 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-14920:
--
Description: 
Decommission test hangs in our clusters.
Have seen the messages as follow
{quote}
2019-10-22 15:58:51,514 TRACE 
org.apache.hadoop.hdfs.server.blockmanagement.DatanodeAdminManager: Block 
blk_-9223372035600425840_372987973 numExpected=9, numLive=5
2019-10-22 15:58:51,514 INFO BlockStateChange: Block: 
blk_-9223372035600425840_372987973, Expected Replicas: 9, live replicas: 5, 
corrupt replicas: 0, decommissioned replicas: 0, decommissioning replicas: 4, 
maintenance replicas: 0, live entering maintenance replicas: 0, excess 
replicas: 0, Is Open File: false, Datanodes having this block: 
10.255.43.57:50010 10.255.53.12:50010 10.255.63.12:50010 10.255.62.39:50010 
10.255.37.36:50010 10.255.33.15:50010 10.255.69.29:50010 10.255.51.13:50010 
10.255.64.15:50010 , Current Datanode: 10.255.69.29:50010, Is current datanode 
decommissioning: true, Is current datanode entering maintenance: false
2019-10-22 15:58:51,514 DEBUG 
org.apache.hadoop.hdfs.server.blockmanagement.DatanodeAdminManager: Node 
10.255.69.29:50010 still has 1 blocks to replicate before it is a candidate to 
finish Decommission In Progress
{quote}

After digging the source code and cluster log,  guess it happens as follow 
steps.
# Storage strategy is RS-6-3-1024k.
# EC block b consists of b0, b1, b2, b3, b4, b5, b6, b7, b8. b0 is from 
datanode dn0, b1 is from datanode dn1, ...etc
# At the beginning dn0 is in decommission progress, b0 is replicated 
successfully, and dn0 is still in decommission progress.
# Later b1, b2, b3 in decommission progress, and dn4 containing b4 is out of 
service, so need to reconstruct, and create ErasureCodingWork to do it, in the 
ErasureCodingWork, additionalReplRequired is 4
# Because hasAllInternalBlocks is false, Will call 
ErasureCodingWork#addTaskToDatanode -> 
DatanodeDescriptor#addBlockToBeErasureCoded, and send BlockECReconstructionInfo 
task to Datanode
# DataNode can not reconstruction the block because targets is 4, greater than 
3( parity number).

There is a problem as follow, from BlockManager.java#scheduleReconstruction
{code}
  // should reconstruct all the internal blocks before scheduling
  // replication task for decommissioning node(s).
  if (additionalReplRequired - numReplicas.decommissioning() -
  numReplicas.liveEnteringMaintenanceReplicas() > 0) {
additionalReplRequired = additionalReplRequired -
numReplicas.decommissioning() -
numReplicas.liveEnteringMaintenanceReplicas();
  }
{code}
Should reconstruction firstly and then replicate for decommissioning. Because 
numReplicas.decommissioning() is 4, and additionalReplRequired is 4, that's 
wrong,
numReplicas.decommissioning() should be 3, it should exclude live replica. 
If so, additionalReplRequired will be 1, reconstruction will schedule as 
expected. After that, decommission goes on.
 

  was:
Decommission test hangs in our clusters.
Have seen the messages as follow
{quote}
2019-10-22 15:58:51,514 TRACE 
org.apache.hadoop.hdfs.server.blockmanagement.DatanodeAdminManager: Block 
blk_-9223372035600425840_372987973 numExpected=9, numLive=5
2019-10-22 15:58:51,514 INFO BlockStateChange: Block: 
blk_-9223372035600425840_372987973, Expected Replicas: 9, live replicas: 5, 
corrupt replicas: 0, decommissioned replicas: 0, decommissioning replicas: 4, 
maintenance replicas: 0, live entering maintenance replicas: 0, excess 
replicas: 0, Is Open File: false, Datanodes having this block: 
10.255.43.57:50010 10.255.53.12:50010 10.255.63.12:50010 10.255.62.39:50010 
10.255.37.36:50010 10.255.33.15:50010 10.255.69.29:50010 10.255.51.13:50010 
10.255.64.15:50010 , Current Datanode: 10.255.69.29:50010, Is current datanode 
decommissioning: true, Is current datanode entering maintenance: false
2019-10-22 15:58:51,514 DEBUG 
org.apache.hadoop.hdfs.server.blockmanagement.DatanodeAdminManager: Node 
10.255.69.29:50010 still has 1 blocks to replicate before it is a candidate to 
finish Decommission In Progress
{quote}

After digging the source code and cluster log,  guess it happens as follow 
steps.
# Storage strategy is RS-6-3-1024k.
# EC block b consists of b0, b1, b2, b3, b4, b5, b6, b7, b8, b0 is from 
datanode dn0, b1 is from datanode dn1, ...etc
# At the beginning dn0 is in decommission progress, b0 is replicated 
successfully, and dn0 is staill in decommission progress.
# Later b1, b2, b3 in decommission progress, and dn4 containing b4 is out of 
service, so need to reconstruct, and create ErasureCodingWork to do it, in the 
ErasureCodingWork, additionalReplRequired is 4
# Because hasAllInternalBlocks is false, Will call 
ErasureCodingWork#addTaskToDatanode -> 
DatanodeDescriptor#addBlockToBeErasureCoded, and send BlockECReconstructionInfo 
task to Datanode
# DataNode can not reconstruction 

[jira] [Commented] (HDFS-15236) Upgrade googletest to the latest version

2020-05-22 Thread Siyao Meng (Jira)


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

Siyao Meng commented on HDFS-15236:
---

No worries. Glad to help. Reinstalling protobuf 3.7.1 might solve the issue. It 
is possible the protobuf header include path 
({{/usr/local/include/google/protobuf/}} by default) went missing or 
unregistered after updates. I used the one in BUILDING.txt:
{code:title=BUILDING.txt}
* Protocol Buffers 3.7.1 (required to build native code)
  $ mkdir -p /opt/protobuf-3.7-src \
&& curl -L -s -S \
  
https://github.com/protocolbuffers/protobuf/releases/download/v3.7.1/protobuf-java-3.7.1.tar.gz
 \
  -o /opt/protobuf-3.7.1.tar.gz \
&& tar xzf /opt/protobuf-3.7.1.tar.gz --strip-components 1 -C 
/opt/protobuf-3.7-src \
&& cd /opt/protobuf-3.7-src \
&& ./configure\
&& make install \
&& rm -rf /opt/protobuf-3.7-src
{code}

> Upgrade googletest to the latest version
> 
>
> Key: HDFS-15236
> URL: https://issues.apache.org/jira/browse/HDFS-15236
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: native, test
>Reporter: Akira Ajisaka
>Priority: Major
>
> Now libhdfspp is using gmock-1.7.0 with the patch in HDFS-15232. gmock was 
> moved to googletest and the latest version is 1.10.0. Let's upgrade it to 
> remove our own patch.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Commented] (HDFS-15236) Upgrade googletest to the latest version

2020-05-21 Thread Siyao Meng (Jira)


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

Siyao Meng commented on HDFS-15236:
---

[~aajisaka] I am able to compile with {{mvn install -Pnative -DskipTests -e}} 
on Ubuntu 20.04 LTS with OpenJDK 11.0.7.
{code:bash}
$ protoc --version
libprotoc 3.7.1
$ mvn -version
Apache Maven 3.6.3
Maven home: /usr/share/maven
Java version: 11.0.7, vendor: Ubuntu, runtime: 
/usr/lib/jvm/java-11-openjdk-amd64
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.4.0-31-generic", arch: "amd64", family: "unix"
$ JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 mvn install -Pnative -DskipTests 
-e
...
[INFO] 
[INFO] BUILD SUCCESS
[INFO] 
[INFO] Total time:  07:53 min
[INFO] Finished at: 2020-05-21T17:09:52-07:00
[INFO] 
{code}

> Upgrade googletest to the latest version
> 
>
> Key: HDFS-15236
> URL: https://issues.apache.org/jira/browse/HDFS-15236
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: native, test
>Reporter: Akira Ajisaka
>Priority: Major
>
> Now libhdfspp is using gmock-1.7.0 with the patch in HDFS-15232. gmock was 
> moved to googletest and the latest version is 1.10.0. Let's upgrade it to 
> remove our own patch.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15262) Add fsck servlet to Secondary NameNode

2020-04-04 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15262:
--
Description: 
Allows for running fsck on Secondary NameNode.

The diff is one-line:
https://github.com/smengcl/hadoop/commit/0e45887d264258b91d53c09739c182ab02cb23bb

  was:
Allows for running fsck on Secondary NameNode.

https://github.com/smengcl/hadoop/commit/0e45887d264258b91d53c09739c182ab02cb23bb


> Add fsck servlet to Secondary NameNode
> --
>
> Key: HDFS-15262
> URL: https://issues.apache.org/jira/browse/HDFS-15262
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: namenode
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Minor
>
> Allows for running fsck on Secondary NameNode.
> The diff is one-line:
> https://github.com/smengcl/hadoop/commit/0e45887d264258b91d53c09739c182ab02cb23bb



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15262) Add fsck servlet to Secondary NameNode

2020-04-04 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15262:
--
Description: 
Allows for running fsck on Secondary NameNode.

https://github.com/smengcl/hadoop/commit/0e45887d264258b91d53c09739c182ab02cb23bb

  was:Allows for running fsck on Secondary NameNode.


> Add fsck servlet to Secondary NameNode
> --
>
> Key: HDFS-15262
> URL: https://issues.apache.org/jira/browse/HDFS-15262
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: namenode
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Minor
>
> Allows for running fsck on Secondary NameNode.
> https://github.com/smengcl/hadoop/commit/0e45887d264258b91d53c09739c182ab02cb23bb



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Resolved] (HDFS-15262) Add fsck servlet to Secondary NameNode

2020-04-04 Thread Siyao Meng (Jira)


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

Siyao Meng resolved HDFS-15262.
---
Resolution: Won't Fix

After a second thought it doesn't really make sense to put fsck in Secondary 
NameNode if it doesn't receive block reports from DNs.

> Add fsck servlet to Secondary NameNode
> --
>
> Key: HDFS-15262
> URL: https://issues.apache.org/jira/browse/HDFS-15262
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: namenode
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Minor
>
> Allows for running fsck on Secondary NameNode.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Created] (HDFS-15262) Add fsck servlet to Secondary NameNode

2020-04-04 Thread Siyao Meng (Jira)
Siyao Meng created HDFS-15262:
-

 Summary: Add fsck servlet to Secondary NameNode
 Key: HDFS-15262
 URL: https://issues.apache.org/jira/browse/HDFS-15262
 Project: Hadoop HDFS
  Issue Type: Improvement
  Components: namenode
Reporter: Siyao Meng
Assignee: Siyao Meng


Allows for running fsck on Secondary NameNode.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-15262) Add fsck servlet to Secondary NameNode

2020-04-04 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-15262:
--
Priority: Minor  (was: Major)

> Add fsck servlet to Secondary NameNode
> --
>
> Key: HDFS-15262
> URL: https://issues.apache.org/jira/browse/HDFS-15262
> Project: Hadoop HDFS
>  Issue Type: Improvement
>  Components: namenode
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Minor
>
> Allows for running fsck on Secondary NameNode.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-14978) In-place Erasure Coding Conversion

2020-04-03 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-14978:
--
Target Version/s: 3.4.0

> In-place Erasure Coding Conversion
> --
>
> Key: HDFS-14978
> URL: https://issues.apache.org/jira/browse/HDFS-14978
> Project: Hadoop HDFS
>  Issue Type: New Feature
>  Components: erasure-coding
>Affects Versions: 3.0.0
>Reporter: Wei-Chiu Chuang
>Assignee: Aravindan Vijayan
>Priority: Major
> Attachments: In-place Erasure Coding Conversion.pdf
>
>
> HDFS Erasure Coding is a new feature added in Apache Hadoop 3.0. It uses 
> encoding algorithms to reduce disk space usage while retaining redundancy 
> necessary for data recovery. It was a huge amount of work but it is just 
> getting adopted after almost 2 years.
> One usability problem that’s blocking users from adopting HDFS Erasure Coding 
> is that existing replicated files have to be copied to an EC-enabled 
> directory explicitly. Renaming a file/directory to an EC-enabled directory 
> does not automatically convert the blocks. Therefore users typically perform 
> the following steps to erasure-code existing files:
> {noformat}
> Create $tmp directory, set EC policy at it
> Distcp $src to $tmp
> Delete $src (rm -rf $src)
> mv $tmp $src
> {noformat}
> There are several reasons why this is not popular:
> * Complex. The process involves several steps: distcp data to a temporary 
> destination; delete source file; move destination to the source path.
> * Availability: there is a short period where nothing exists at the source 
> path, and jobs may fail unexpectedly.
> * Overhead. During the copy phase, there is a point in time where all of 
> source and destination files exist at the same time, exhausting disk space.
> * Not snapshot-friendly. If a snapshot is taken prior to performing the 
> conversion, the source (replicated) files will be preserved in the cluster 
> too. Therefore, the conversion actually increase storage space usage.
> * Not management-friendly. This approach changes file inode number, 
> modification time and access time. Erasure coded files are supposed to store 
> cold data, but this conversion makes data “hot” again.
> * Bulky. It’s either all or nothing. The directory may be partially erasure 
> coded, but this approach simply erasure code everything again.
> To ease data management, we should offer a utility tool to convert replicated 
> files to erasure coded files in-place.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDFS-13916) Distcp SnapshotDiff to support WebHDFS

2020-03-24 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDFS-13916:
--
Target Version/s: 3.3.1, 3.4.0

> Distcp SnapshotDiff to support WebHDFS
> --
>
> Key: HDFS-13916
> URL: https://issues.apache.org/jira/browse/HDFS-13916
> Project: Hadoop HDFS
>  Issue Type: New Feature
>  Components: distcp, webhdfs
>Affects Versions: 3.0.1, 3.1.1
>Reporter: Xun REN
>Assignee: Xun REN
>Priority: Major
>  Labels: easyfix, newbie, patch
> Attachments: HDFS-13916.002.patch, HDFS-13916.003.patch, 
> HDFS-13916.004.patch, HDFS-13916.005.patch, HDFS-13916.006.patch, 
> HDFS-13916.patch
>
>
> [~ljain] has worked on the JIRA: HDFS-13052 to provide the possibility to 
> make DistCP of SnapshotDiff with WebHDFSFileSystem. However, in the patch, 
> there is no modification for the real java class which is used by launching 
> the command "hadoop distcp ..."
>  
> You can check in the latest version here:
> [https://github.com/apache/hadoop/blob/branch-3.1.1/hadoop-tools/hadoop-distcp/src/main/java/org/apache/hadoop/tools/DistCpSync.java#L96-L100]
> In the method "preSyncCheck" of the class "DistCpSync", we still check if the 
> file system is DFS. 
> So I propose to change the class DistCpSync in order to take into 
> consideration what was committed by Lokesh Jain.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDDS-1987) Fix listStatus API

2019-11-18 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDDS-1987:
-
Status: Patch Available  (was: In Progress)

> Fix listStatus API
> --
>
> Key: HDDS-1987
> URL: https://issues.apache.org/jira/browse/HDDS-1987
> Project: Hadoop Distributed Data Store
>  Issue Type: Sub-task
>Reporter: Bharat Viswanadham
>Assignee: Siyao Meng
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> This Jira is to fix listStatus API in HA code path.
> In HA, we have an in-memory cache, where we put the result to in-memory cache 
> and return the response. It will be picked by double buffer thread and 
> flushed to disk later. So when user call listStatus, it should use both 
> in-memory cache and rocksdb key table to return the correct result.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDDS-2455) Implement MiniOzoneHAClusterImpl#getOMLeader

2019-11-18 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDDS-2455:
-
Status: Patch Available  (was: In Progress)

> Implement MiniOzoneHAClusterImpl#getOMLeader
> 
>
> Key: HDDS-2455
> URL: https://issues.apache.org/jira/browse/HDDS-2455
> Project: Hadoop Distributed Data Store
>  Issue Type: Improvement
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Implement MiniOzoneHAClusterImpl#getOMLeader and use it.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



[jira] [Updated] (HDDS-2105) Merge OzoneClientFactory#getRpcClient functions

2019-11-18 Thread Siyao Meng (Jira)


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

Siyao Meng updated HDDS-2105:
-
Status: Patch Available  (was: In Progress)

> Merge OzoneClientFactory#getRpcClient functions
> ---
>
> Key: HDDS-2105
> URL: https://issues.apache.org/jira/browse/HDDS-2105
> Project: Hadoop Distributed Data Store
>  Issue Type: Sub-task
>Reporter: Siyao Meng
>Assignee: Siyao Meng
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Ref: https://github.com/apache/hadoop/pull/1360#discussion_r321585214
> There will be 5 overloaded OzoneClientFactory#getRpcClient functions (when 
> HDDS-2007 is committed). They contains some redundant logic and unnecessarily 
> increases code paths.
> Goal: Merge those functions into fewer.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org



  1   2   3   4   5   6   7   8   >