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

Manoj Govindassamy updated HDFS-12217:
--------------------------------------
    Attachment: HDFS-12217.04.patch

Thanks for the quick review [~jojochuang]. Attached v04 patch to address the 
following. Can you please take a look at the latest patch.

bq. LeaseManager#getINodeWithLeases() seems to be a test-only method. If so, it 
doesn't need public modifier (package private is sufficient) and we can also 
add a {{@VisibleForTesting }} annotation.
Done.

bq. On a separate note, and this is totally unrelated to this patch. It looks 
like LeaseManager#addLease assumes the inodeId is an id for an INodeFile, which 
makes perfect sense. 
Will take this up in a new patch as there are many callers that need to get 
refactored for this,.

bq. Note that in your patch, DirectorySnapshottableFeature#addSnapshot would 
capture exception, but doesn't log the exception. I also think that in addition 
to the snapshot name, you should print the snapshot root path for the error 
message.
Done.
-- Exception is already logged at LeaseManager#getINodeWithLeases.
-- Now added exception details to the SnapshotException message also.


> HDFS snapshots doesn't capture all open files when one of the open files is 
> deleted
> -----------------------------------------------------------------------------------
>
>                 Key: HDFS-12217
>                 URL: https://issues.apache.org/jira/browse/HDFS-12217
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: snapshots
>    Affects Versions: 3.0.0-alpha1
>            Reporter: Manoj Govindassamy
>            Assignee: Manoj Govindassamy
>         Attachments: HDFS-12217.01.patch, HDFS-12217.02.patch, 
> HDFS-12217.03.patch, HDFS-12217.04.patch
>
>
> With the fix for HDFS-11402, HDFS Snapshots can additionally capture all the 
> open files. Just like all other files, these open files in the snapshots will 
> remain immutable. But, sometimes it is found that snapshots fail to capture 
> all the open files in the system.
> Under the following conditions, LeaseManager will fail to find INode 
> corresponding to an active lease 
> * a file is opened for writing (LeaseManager allots a lease), and
> * the same file is deleted while it is still open for writing and having 
> active lease, and
> * the same file is not referenced in any other Snapshots/Trash
> {{INode[] LeaseManager#getINodesWithLease()}} can thus return null for few 
> leases there by causing the caller to trip over and not return all the open 
> files needed by the snapshot manager.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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

Reply via email to