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

Mingliang Liu updated HADOOP-14226:
-----------------------------------
    Description: 
UPDATE: Instead of changing the test, in this JIRA we make sure for each path 
to put, DDBMS::move() has records of each directory up to the root. See 
[~fabbri]'s comment in this JIRA for more detail.

After running {{ITestDynamoDBMetadataStoreScale}}, the test data is not cleaned 
up. There is a call to {{clearMetadataStore(ms, count);}} in the finally clause 
though. The reason is that, the internally called method 
{{DynamoDBMetadataStore::deleteSubtree()}} is assuming there should be an item 
for the parent dest path:
{code}
parent=/fake-bucket, child=moved-here, is_dir=true
{code}

In DynamoDBMetadataStore implementation, we assume that _if a path exists, all 
its ancestors will also exist in the table_. We need to pre-create dest path to 
maintain this invariant so that test data can be cleaned up successfully.

I think there may be other tests with the same problem. Let's identify/address 
them separately.

  was:
After running {{ITestDynamoDBMetadataStoreScale}}, the test data is not cleaned 
up. There is a call to {{clearMetadataStore(ms, count);}} in the finally clause 
though. The reason is that, the internally called method 
{{DynamoDBMetadataStore::deleteSubtree()}} is assuming there should be an item 
for the parent dest path:
{code}
parent=/fake-bucket, child=moved-here, is_dir=true
{code}

In DynamoDBMetadataStore implementation, we assume that _if a path exists, all 
its ancestors will also exist in the table_. We need to pre-create dest path to 
maintain this invariant so that test data can be cleaned up successfully.

I think there may be other tests with the same problem. Let's identify/address 
them separately.


> S3Guard: DynamoDBMetadata::move() should populate ancestor directories of 
> destination paths
> -------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-14226
>                 URL: https://issues.apache.org/jira/browse/HADOOP-14226
>             Project: Hadoop Common
>          Issue Type: Sub-task
>          Components: fs/s3
>    Affects Versions: HADOOP-13345
>            Reporter: Mingliang Liu
>            Assignee: Mingliang Liu
>         Attachments: HADOOP-14226-HADOOP-13345.000.patch
>
>
> UPDATE: Instead of changing the test, in this JIRA we make sure for each path 
> to put, DDBMS::move() has records of each directory up to the root. See 
> [~fabbri]'s comment in this JIRA for more detail.
> After running {{ITestDynamoDBMetadataStoreScale}}, the test data is not 
> cleaned up. There is a call to {{clearMetadataStore(ms, count);}} in the 
> finally clause though. The reason is that, the internally called method 
> {{DynamoDBMetadataStore::deleteSubtree()}} is assuming there should be an 
> item for the parent dest path:
> {code}
> parent=/fake-bucket, child=moved-here, is_dir=true
> {code}
> In DynamoDBMetadataStore implementation, we assume that _if a path exists, 
> all its ancestors will also exist in the table_. We need to pre-create dest 
> path to maintain this invariant so that test data can be cleaned up 
> successfully.
> I think there may be other tests with the same problem. Let's 
> identify/address them separately.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to