Skip to content
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

Improve error messages when the multipart upload part limit is reached. #5406

Merged
merged 3 commits into from
Dec 17, 2024

Conversation

teo-tsirpanis
Copy link
Member

SC-54602

If an S3 multipart upload gets too large, it can exceed the limit of 10000 parts, and it will fail with the confusing message of Failed to upload part of S3 object 's3://my-bucket/my-object[Error Type: 100] [HTTP Response Code: 400] [Exception: InvalidArgument] […] : Unable to parse ExceptionName: InvalidArgument Message: Part number must be an integer between 1 and 10000, inclusive, that does not clearly indicate to the user how to resolve it. With this PR, if an error happened while uploading a part, and the part size is greater than 10000, a message is appended suggesting that the error might be resolved by increasing the vfs.s3.multipart_part_size config option.

The logic is robust against a potential increase of the limit by S3, since we don't cause the error, but enhance an already caused one.

We also do the same for Azure, whose limit is five times higher than S3. GCS' compose model does not place any limits on the number of parts of an object.


TYPE: IMPROVEMENT
DESC: Improved error messages when the S3 or Azure multipart upload part size is too low, and suggest improving it.

@teo-tsirpanis teo-tsirpanis requested a review from ypatia December 13, 2024 20:20
uri.c_str() + "' " + outcome_error_message(upload_part_outcome);
if (ctx.upload_part_num > max_multipart_part_num) {
msg +=
" This error might be resolved by increasing the value of the "
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would phrase it as: Maximum part limit might have been hit, try increasing the value of "'vfs.s3.multipart_part_size' config option

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that the fact that a part limit has been reached is effectively conveyed in the Part number must be an integer between 1 and 10000, inclusive message returned by S3.

@teo-tsirpanis teo-tsirpanis merged commit 2d8d63f into dev Dec 17, 2024
64 checks passed
@teo-tsirpanis teo-tsirpanis deleted the teo/mp-upload-limit branch December 17, 2024 15:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants