-
Notifications
You must be signed in to change notification settings - Fork 9.2k
HDFS-14984. HDFS setQuota: Error message should be added for invalid … #2037
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 1 commit
887ff39
3c4f9ee
a2dbe5d
597aeb1
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -201,8 +201,19 @@ private static class SetQuotaCommand extends DFSAdminCommand { | |
| super(conf); | ||
| CommandFormat c = new CommandFormat(2, Integer.MAX_VALUE); | ||
| List<String> parameters = c.parse(args, pos); | ||
| this.quota = | ||
| StringUtils.TraditionalBinaryPrefix.string2long(parameters.remove(0)); | ||
| String str = parameters.get(0).trim(); | ||
| try { | ||
| this.quota = StringUtils.TraditionalBinaryPrefix | ||
| .string2long(parameters.remove(0)); | ||
| } catch(NumberFormatException e){ | ||
| throw new IllegalArgumentException("\"" + str + | ||
| "\" is not a valid value for a quota."); | ||
| } | ||
| if (HdfsConstants.QUOTA_DONT_SET == this.quota) { | ||
| System.out.print("WARN: \"" + this.quota + | ||
|
||
| "\" means QUOTA_DONT_SET, quota will not be set, " | ||
| + "it keep the old values. \n"); | ||
| } | ||
| this.args = parameters.toArray(new String[parameters.size()]); | ||
| } | ||
|
|
||
|
|
@@ -323,6 +334,11 @@ private static class SetSpaceQuotaCommand extends DFSAdminCommand { | |
| } catch (NumberFormatException nfe) { | ||
| throw new IllegalArgumentException("\"" + str + "\" is not a valid value for a quota."); | ||
| } | ||
| if (HdfsConstants.QUOTA_DONT_SET == quota) { | ||
| System.out.print("WARN: \"" + this.quota + | ||
|
||
| "\" means QUOTA_DONT_SET, quota will not be set, " | ||
| + "it keep the old values. \n"); | ||
| } | ||
| String storageTypeString = | ||
| StringUtils.popOptionWithArgument("-storageType", parameters); | ||
| if (storageTypeString != null) { | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this condition statement should be
if (storagesapceQuoat <= 0)?Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Hexiaoqiao Thanks for review!
(-9223372036854775808L - 1) == Long.MAX_VALUEandQUOTA_RESET = -1Lso I think it's better to check more conditions.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I mean if we should update
storagespaceQuota < 0tostoragespaceQuota <= 0, rather than whole condition statement.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I see. If so, seems the -1L will throw the exception, but it should be OK for the internal use, such as clear quota.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @zhaoyim for your explanation. But I am still confused why this condition is different with
namespacequota? Sorry I do not find user manuals about set*Quota.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Hexiaoqiao In my understand, the diff is after created a dir, the name quota is already 1 and the name quota count it self, but the space quota can be 0.