[ 
https://issues.apache.org/jira/browse/HDDS-11348?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17875747#comment-17875747
 ] 

Tanvi Penumudy commented on HDDS-11348:
---------------------------------------

Yes, verified that the regression is being caused by HDDS-11235 for fs.mkdirs().

The operation was restricted previously when called on OBS buckets (an 
IllegalArgumentException was thrown). The patch skips the getBucket() call when 
we already know that the bucket exists (uses RPCClient#createDirectory directly 
instead), but this also resulting in the skipping of the 
OzoneFSUtils#validateBucketLayout check on the OFS client-side allowing for the 
creation of the directory eventually.

On the server-side, OMDirectoryCreateRequest is invoked based on the logic in 
BucketLayoutAwareOMKeyRequestFactory. 
OMClientRequestUtils#checkClientRequestPrecondition does not help restrict this 
operation in anyway as the associated bucket's layout matches the one 
associated with the request (OBJECT_STORE).

cc: [~weichiu], [~pifta] 

> 'fs -mkdir' is creating directories for OBS type bucket
> -------------------------------------------------------
>
>                 Key: HDDS-11348
>                 URL: https://issues.apache.org/jira/browse/HDDS-11348
>             Project: Apache Ozone
>          Issue Type: Bug
>          Components: Ozone Filesystem
>            Reporter: Jyotirmoy Sinha
>            Assignee: Tanvi Penumudy
>            Priority: Major
>
> 'fs -mkdir' is creating directories for OBS type bucket
> Other fs operations such as _ls_ and _copyfromLocal_ are throwing unsupported 
> file semantics error -
> {code:java}
> -copyFromLocal: Bucket: buck1 has layout: OBJECT_STORE, which does not 
> support file system semantics. Bucket Layout must be FILE_SYSTEM_OPTIMIZED or 
> LEGACY. {code}
> {code:java}
> -ls: Bucket: buck1 has layout: OBJECT_STORE, which does not support file 
> system semantics. Bucket Layout must be FILE_SYSTEM_OPTIMIZED or LEGACY. 
> {code}
> Its working correctly with _mkdir_ operation -
> {code:java}
> # ozone sh volume create vol1
> 24/08/21 04:57:58 INFO rpc.RpcClient: Creating Volume: vol1, with om as owner 
> and space quota set to -1 bytes, counts quota set to -1
> # ozone sh bucket create vol1/buck1 -l OBJECT_STORE
> 24/08/21 04:58:19 INFO rpc.RpcClient: Creating Bucket: vol1/buck1, with 
> bucket layout OBJECT_STORE, om as owner, Versioning false, Storage Type set 
> to DISK and Encryption set to false, Replication Type set to server-side 
> default replication type, Namespace Quota set to -1, Space Quota set to -1
> # ozone sh bucket info vol1/buck1
> {
>   "metadata" : { },
>   "volumeName" : "vol1",
>   "name" : "buck1",
>   "storageType" : "DISK",
>   "versioning" : false,
>   "listCacheSize" : 1000,
>   "usedBytes" : 0,
>   "usedNamespace" : 0,
>   "creationTime" : "2024-08-21T04:58:19.184Z",
>   "modificationTime" : "2024-08-21T04:58:19.184Z",
>   "sourcePathExist" : true,
>   "quotaInBytes" : -1,
>   "quotaInNamespace" : -1,
>   "bucketLayout" : "OBJECT_STORE",
>   "owner" : "om",
>   "link" : false
> }
> # ozone fs -mkdir -p ofs://ozone1724175935/vol1/buck1/dir1
> # ozone fs -mkdir ofs://ozone1724175935/vol1/buck1/dir2
> # ozone sh key ls vol1/buck1
> [ {
>   "volumeName" : "vol1",
>   "bucketName" : "buck1",
>   "name" : "dir1/",
>   "owner" : "om",
>   "dataSize" : 0,
>   "creationTime" : "2024-08-21T04:59:05.563Z",
>   "modificationTime" : "2024-08-21T04:59:05.563Z",
>   "replicationConfig" : {
>     "replicationFactor" : "THREE",
>     "requiredNodes" : 3,
>     "replicationType" : "RATIS"
>   },
>   "metadata" : { },
>   "tags" : { },
>   "file" : false
> }, {
>   "volumeName" : "vol1",
>   "bucketName" : "buck1",
>   "name" : "dir2/",
>   "owner" : "om",
>   "dataSize" : 0,
>   "creationTime" : "2024-08-21T05:03:40.704Z",
>   "modificationTime" : "2024-08-21T05:03:40.704Z",
>   "replicationConfig" : {
>     "replicationFactor" : "THREE",
>     "requiredNodes" : 3,
>     "replicationType" : "RATIS"
>   },
>   "metadata" : { },
>   "tags" : { },
>   "file" : false
> } ] {code}



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

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

Reply via email to