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