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
rgw: handle old clients with transfer-encoding: chunked. #50235
Conversation
s3 clients *should* provide an x-amz-decoded-content-length field when they use transport-encoding: chunked. Some clients do not. With swift we already allow chunked uploads that do not specify the content length in advance. This commit adds similar support for s3. Known client affected by this: boto2. Fixes: https://tracker.ceph.com/issues/45789 Resolves: rhbz#2152801 Signed-off-by: Marcus Watts <mwatts@redhat.com>
|
if there's a reproducer for this, can we please turn it into a s3test case? if boto2 is required, we still have some boto2 tests under s3tests/ |
Before the RGW fix PR was responding with 411 instead of 200 RGW fix PR: ceph/ceph#50235 Signed-off-by: Mark Kogan <mkogan@redhat.com>
@cbodley added s3test PR: ceph/s3-tests#501 |
|
jenkins test make check |
|
we'll need to make sure this gets run against a suite-branch that modifies |
|
jenkins test api |
|
@ivancich sorry, currently it will fail wip-eric-testing-1 |
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.
marcus says sounds plausible, he will review
|
added java_s3test PR: ceph/java_s3tests#13 |
following ceph PR ceph/ceph#50235 it was found that the test 'object create w/negative content length, fails' test falsely fails on object PUT with chunked transfer encoding and does not attempts to create an object with a negative content length for details referring to discussion on: ceph#13 Signed-off-by: Mark Kogan <mkogan@redhat.com>
following ceph PR ceph/ceph#50235 it was found that the test 'object create w/negative content length, fails' test falsely fails on object PUT with chunked transfer encoding and does not attempts to create an object with a negative content length for details referring to discussion on: #13 Signed-off-by: Mark Kogan <mkogan@redhat.com> (cherry picked from commit d625bfa)
following ceph PR ceph/ceph#50235 it was found that the test 'object create w/negative content length, fails' test falsely fails on object PUT with chunked transfer encoding and does not attempts to create an object with a negative content length for details referring to discussion on: #13 Signed-off-by: Mark Kogan <mkogan@redhat.com> (cherry picked from commit d625bfa)
|
In my QA branch all my rgw/verify jobs fail due to this: Of the 4 PRs on the branch, this seems the most likely to involve this. I'm verifying. |
|
thanks @ivancich. this was expected, yeah:
|
Sorry, I missed that comment directed at me above. How would you like me to handle QA then -- pull this PR out of the QA run or count this as a pass? |
following this ceph/java_s3tests#14 merging it should be OK to test again and it should pass now |
|
@cbodley https://pulpito.ceph.com/mkogan-2023-03-21_13:51:47-rgw:verify-wip-chuncked-put-i04-distro-default-smithi/ --> is @ivancich |
|
jenkins test windows |
|
jenkins test make check arm64 |
please run the whole rgw suite. we run s3tests in other subsuites like rgw/multifs, rgw/sts, rgw/crypt, etc |
|
Looks fine - only thing I can see is do you really still want to call this "rgw/civetweb"? |
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.
Looks fine (other than calling it a "civetweb" change)
thank you, changed the PR title, preferred to leave the commit title to keep track all the way back when searching the commit history of various old release branches by commit tile |
|
jenkins test make check arm64 |
|
queued full rgw suite tueuthology run, |
|
I think we should wait until this passes the rgw upgrade suite. |
we're waiting on Mark's results, which are running against the new test case in ceph/s3-tests#501 |
OK, then I'll pull this off of my QA run and won't merge. |
|
@cbodley @ivancich ACK |
@cbodley may please ask to take another look when there's time, any additional tests? |
Before the RGW fix PR was responding with 411 instead of 200 RGW fix PR: ceph/ceph#50235 Signed-off-by: Mark Kogan <mkogan@redhat.com> (cherry picked from commit 13a9bfc)
rgw: handle old clients with transfer-encoding: chunked. Reviewed-by: Casey Bodley <cbodley@redhat.com> Reviewed-by: Marcus Watts <mwatts@redhat.com>
s3 clients should provide an x-amz-decoded-content-length field when they use transport-encoding: chunked. Some clients do not. With swift we already allow chunked uploads that do not specify the
content length in advance. This commit adds similar support
for s3. Known client affected by this: boto2.
Fixes: https://tracker.ceph.com/issues/45789
Resolves: rhbz#2152801
Signed-off-by: Marcus Watts mwatts@redhat.com
= = = = = 8< = = = = =
Additional details from the BZ:
Description of problem:
Cu confirmed following implementation details:
Cu script:
Contribution Guidelines
To sign and title your commits, please refer to Submitting Patches to Ceph.
If you are submitting a fix for a stable branch (e.g. "pacific"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.
Checklist
Show available Jenkins commands
jenkins retest this pleasejenkins test classic perfjenkins test crimson perfjenkins test signedjenkins test make checkjenkins test make check arm64jenkins test submodulesjenkins test dashboardjenkins test dashboard cephadmjenkins test apijenkins test docsjenkins render docsjenkins test ceph-volume alljenkins test ceph-volume toxjenkins test windows