You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ozone.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2023/06/07 15:33:00 UTC

[jira] [Updated] (HDDS-8630) Trash operation doesn't work as expected with Namespace quota set

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

ASF GitHub Bot updated HDDS-8630:
---------------------------------
    Labels: proton pull-request-available  (was: proton)

> Trash operation doesn't work as expected with Namespace quota set
> -----------------------------------------------------------------
>
>                 Key: HDDS-8630
>                 URL: https://issues.apache.org/jira/browse/HDDS-8630
>             Project: Apache Ozone
>          Issue Type: Sub-task
>          Components: Ozone Manager
>            Reporter: Arun Sarin
>            Assignee: Sumit Agrawal
>            Priority: Major
>              Labels: proton, pull-request-available
>
> Trash operation doesn't work as expected with Namespace quota set
> Scenario 1 : 
> {code:java}
> [root@quasar-vavoom-1 ~]# ozone fs -rm  ofs://ozone1/volume555/bucket555/file1
> 23/05/16 17:05:27 INFO Configuration.deprecation: io.bytes.per.checksum is deprecated. Instead, use dfs.bytes-per-checksum
> 23/05/16 17:05:27 WARN om.TrashPolicyOzone: Can't create trash directory: ofs://ozone1/volume555/bucket555/.Trash/hdfs/Current
> QUOTA_EXCEEDED org.apache.hadoop.ozone.om.exceptions.OMException: The namespace quota of Bucket:bucket555 exceeded: quotaInNamespace: 2 but namespace consumed: 4.
> 	at org.apache.hadoop.ozone.om.protocolPB.OzoneManagerProtocolClientSideTranslatorPB.handleError(OzoneManagerProtocolClientSideTranslatorPB.java:709)
> 	at org.apache.hadoop.ozone.om.protocolPB.OzoneManagerProtocolClientSideTranslatorPB.createDirectory(OzoneManagerProtocolClientSideTranslatorPB.java:1834)
> 	at org.apache.hadoop.ozone.client.rpc.RpcClient.createDirectory(RpcClient.java:1931)
> 	at org.apache.hadoop.ozone.client.OzoneBucket.createDirectory(OzoneBucket.java:764)
> 	at org.apache.hadoop.fs.ozone.BasicRootedOzoneClientAdapterImpl.createDirectory(BasicRootedOzoneClientAdapterImpl.java:512)
> 	at org.apache.hadoop.fs.ozone.BasicRootedOzoneFileSystem.mkdir(BasicRootedOzoneFileSystem.java:903)
> 	at org.apache.hadoop.fs.ozone.BasicRootedOzoneFileSystem.mkdirs(BasicRootedOzoneFileSystem.java:914)
> 	at org.apache.hadoop.ozone.om.TrashPolicyOzone.moveToTrash(TrashPolicyOzone.java:175)
> 	at org.apache.hadoop.fs.Trash.moveToTrash(Trash.java:110)
> 	at org.apache.hadoop.fs.Trash.moveToAppropriateTrash(Trash.java:96)
> 	at org.apache.hadoop.fs.shell.Delete$Rm.moveToTrash(Delete.java:153)
> 	at org.apache.hadoop.fs.shell.Delete$Rm.processPath(Delete.java:118)
> 	at org.apache.hadoop.fs.shell.Command.processPathInternal(Command.java:370)
> 	at org.apache.hadoop.fs.shell.Command.processPaths(Command.java:333)
> 	at org.apache.hadoop.fs.shell.Command.processPathArgument(Command.java:306)
> 	at org.apache.hadoop.fs.shell.Command.processArgument(Command.java:288)
> 	at org.apache.hadoop.fs.shell.Command.processArguments(Command.java:272)
> 	at org.apache.hadoop.fs.shell.FsCommand.processRawArguments(FsCommand.java:120)
> 	at org.apache.hadoop.fs.shell.Command.run(Command.java:179)
> 	at org.apache.hadoop.fs.FsShell.run(FsShell.java:328)
> 	at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:81)
> 	at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:95)
> 	at org.apache.hadoop.fs.ozone.OzoneFsShell.execute(OzoneFsShell.java:90)
> 	at org.apache.hadoop.fs.ozone.OzoneFsShell.lambda$main$0(OzoneFsShell.java:84)
> 	at org.apache.hadoop.hdds.tracing.TracingUtil.executeInNewSpan(TracingUtil.java:153)
> 	at org.apache.hadoop.fs.ozone.OzoneFsShell.main(OzoneFsShell.java:83)
> rm: Failed to move to trash: ofs://ozone1/volume555/bucket555/file1: The namespace quota of Bucket:bucket555 exceeded: quotaInNamespace: 2 but namespace consumed: 4.. Consider using -skipTrash option
> [root@quasar-vavoom-1 ~]#  {code}
> Scenario 2 
> {code:java}
> [root@quasar-vavoom-1 ~]# ozone fs -rm ofs://ozone1/volume555/bucket555/l1/l2
> 23/05/16 17:12:27 INFO Configuration.deprecation: io.bytes.per.checksum is deprecated. Instead, use dfs.bytes-per-checksum
> 23/05/16 17:12:27 WARN om.TrashPolicyOzone: Can't create trash directory: ofs://ozone1/volume555/bucket555/.Trash/hdfs/Current/l1
> QUOTA_EXCEEDED org.apache.hadoop.ozone.om.exceptions.OMException: The namespace quota of Bucket:bucket555 exceeded: quotaInNamespace: 2 but namespace consumed: 6.
> 	at org.apache.hadoop.ozone.om.protocolPB.OzoneManagerProtocolClientSideTranslatorPB.handleError(OzoneManagerProtocolClientSideTranslatorPB.java:709)
> 	at org.apache.hadoop.ozone.om.protocolPB.OzoneManagerProtocolClientSideTranslatorPB.createDirectory(OzoneManagerProtocolClientSideTranslatorPB.java:1834)
> 	at org.apache.hadoop.ozone.client.rpc.RpcClient.createDirectory(RpcClient.java:1931)
> 	at org.apache.hadoop.ozone.client.OzoneBucket.createDirectory(OzoneBucket.java:764)
> 	at org.apache.hadoop.fs.ozone.BasicRootedOzoneClientAdapterImpl.createDirectory(BasicRootedOzoneClientAdapterImpl.java:512)
> 	at org.apache.hadoop.fs.ozone.BasicRootedOzoneFileSystem.mkdir(BasicRootedOzoneFileSystem.java:903)
> 	at org.apache.hadoop.fs.ozone.BasicRootedOzoneFileSystem.mkdirs(BasicRootedOzoneFileSystem.java:914)
> 	at org.apache.hadoop.ozone.om.TrashPolicyOzone.moveToTrash(TrashPolicyOzone.java:175)
> 	at org.apache.hadoop.fs.Trash.moveToTrash(Trash.java:110)
> 	at org.apache.hadoop.fs.Trash.moveToAppropriateTrash(Trash.java:96)
> 	at org.apache.hadoop.fs.shell.Delete$Rm.moveToTrash(Delete.java:153)
> 	at org.apache.hadoop.fs.shell.Delete$Rm.processPath(Delete.java:118)
> 	at org.apache.hadoop.fs.shell.Command.processPathInternal(Command.java:370)
> 	at org.apache.hadoop.fs.shell.Command.processPaths(Command.java:333)
> 	at org.apache.hadoop.fs.shell.Command.processPathArgument(Command.java:306)
> 	at org.apache.hadoop.fs.shell.Command.processArgument(Command.java:288)
> 	at org.apache.hadoop.fs.shell.Command.processArguments(Command.java:272)
> 	at org.apache.hadoop.fs.shell.FsCommand.processRawArguments(FsCommand.java:120)
> 	at org.apache.hadoop.fs.shell.Command.run(Command.java:179)
> 	at org.apache.hadoop.fs.FsShell.run(FsShell.java:328)
> 	at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:81)
> 	at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:95)
> 	at org.apache.hadoop.fs.ozone.OzoneFsShell.execute(OzoneFsShell.java:90)
> 	at org.apache.hadoop.fs.ozone.OzoneFsShell.lambda$main$0(OzoneFsShell.java:84)
> 	at org.apache.hadoop.hdds.tracing.TracingUtil.executeInNewSpan(TracingUtil.java:153)
> 	at org.apache.hadoop.fs.ozone.OzoneFsShell.main(OzoneFsShell.java:83)
> rm: Failed to move to trash: ofs://ozone1/volume555/bucket555/l1/l2: The namespace quota of Bucket:bucket555 exceeded: quotaInNamespace: 2 but namespace consumed: 6.. Consider using -skipTrash option {code}
> RCA:
> Currently it is considering
> /.Trash/<user>/Current/ as 3 namespace + for every directory level inside the bucket is added as one [1]
>  



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