You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ozone.apache.org by "Hemant Kumar (Jira)" <ji...@apache.org> on 2023/02/06 18:08:00 UTC

[jira] [Updated] (HDDS-7910) OFS CLI should copy the file to /tmp dir while copying to bucket and destination bucket doesn't exist or direct write is disbled.

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

Hemant Kumar updated HDDS-7910:
-------------------------------
    Description: 
When OFS CLI is used to copy a key from a bucket to another bucket and either destination bucket doesn't exist or direct write is disabled, it creates a temporary dir/file with ._copying_ extension and rename the file name later. [[code]|https://github.com/apache/hadoop/blob/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/shell/CommandWithDestination.java#L425].

Instead of creating a temporary dir/file in the actual path, we should copy it to /tmp dir and move it to actual path once data is copied.

Prerequisite Jira: HDDS-7885

  was:
OFS cli fails to copy keys from source bucket to destination bucket if destination bucket doesn't exist with exception message {*}cp: Bucket or Volume name has an unsupported character : _{*}.

In actual, CLI tries to create bucket when it doesn't exist with ._ COPYING _ extension [code|https://github.com/apache/hadoop/blob/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/shell/CommandWithDestination.java#L425].

We need to update Ozone to be compatible with Hadoop and allow copy if bucket doesn't exist.

Step to reproduce: Similar to [test|https://github.com/apache/ozone/blob/HDDS-6517-Snapshot/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestOzoneSnapshotRestore.java#L196]
 * Create a source volume: *vol1* and bucket: *bucket1*
 * Add key: *key1* to */vol1/bucket1*
 * Run -cp command using OFS CLI with source path: */vol1/bucket1/key1* and destination path: {*}/vol1/bucket2{*}.
 * It would fail with exception message {*}cp: Bucket or Volume name has an unsupported character : _{*}.

This is discovered while debugging HDDS-7861, a snapshot test. During debugging, we passed the wrong bucket and test failed with above exception.


> OFS CLI should copy the file to /tmp dir while copying to bucket and destination bucket doesn't exist or direct write is disbled.
> ---------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HDDS-7910
>                 URL: https://issues.apache.org/jira/browse/HDDS-7910
>             Project: Apache Ozone
>          Issue Type: Bug
>          Components: Ozone Filesystem
>            Reporter: Hemant Kumar
>            Priority: Major
>
> When OFS CLI is used to copy a key from a bucket to another bucket and either destination bucket doesn't exist or direct write is disabled, it creates a temporary dir/file with ._copying_ extension and rename the file name later. [[code]|https://github.com/apache/hadoop/blob/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/shell/CommandWithDestination.java#L425].
> Instead of creating a temporary dir/file in the actual path, we should copy it to /tmp dir and move it to actual path once data is copied.
> Prerequisite Jira: HDDS-7885



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

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@ozone.apache.org
For additional commands, e-mail: issues-help@ozone.apache.org