-
Notifications
You must be signed in to change notification settings - Fork 5.9k
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: fix use of creds in forward_iam_request() #55148
Conversation
variable `creds` was moved into the `RGWRESTConn` constructor before being passed into `forward_iam_request()`. change `forward_iam_request()` so it uses the member variable from the constructor instead of taking it as an argument Fixes: https://tracker.ceph.com/issues/63994 Signed-off-by: Casey Bodley <cbodley@redhat.com>
in testing, i was seeing meta sync checkpoints finish even though sync hadn't started yet: ``` rgw_multi.tests: DEBUG: current meta sync status={ "sync_status": { "info": { "status": "building-full-sync-maps", ``` wait for the global status to reach "sync" before starting to compare period epochs or sync markers Signed-off-by: Casey Bodley <cbodley@redhat.com>
fix a regression from commit d3ad0ef which changed how we parse the response bufferlist: - std::string r = response.c_str(); + std::string r = response.to_str(); when the response contains a trailing null character, this now ends up in `r` and breaks json parsing in `parser.parse(r.c_str(), r.length(), 1)` replace `response.to_str()` with `rgw_bl_str(response)` which trims trailing nulls Signed-off-by: Casey Bodley <cbodley@redhat.com>
where bl contains multiple buffer segments, c_str() has to rellocate and copy those segments into a single buffer. use c_str() instead, which just copies each segment into the resulting string this allows the function to take the bufferlist argument by const ref Signed-off-by: Casey Bodley <cbodley@redhat.com>
failed qa in https://pulpito.ceph.com/cbodley-2024-01-11_18:40:08-rgw:multisite-wip-63994-distro-default-smithi/
creation of role2 on the secondary zone gets forwarded to the metadata master zone where it succeeds, but the secondary rgw fails to parse that response:
that parse failure results in a 500 response which boto retries. when forwarded to the metedata master, the retried CreateRole request fails with "409 EntityAlreadyExists". the secondary rgw maps that 409 error to "409 BucketNotEmpty" |
that was a separate regression from #50599 which changed how trailing null characters were handled. with that fixed, i see test_role_sync passing |
jenkins test api |
https://pulpito.ceph.com/cbodley-2024-01-12_19:40:46-rgw:multisite-wip-63994-distro-default-smithi/
|
passed full rgw suite in https://pulpito.ceph.com/cbodley-2024-01-14_15:58:18-rgw-wip-63994-distro-default-smithi/ |
variable
creds
was moved into theRGWRESTConn
constructor before being passed intoforward_iam_request()
. changeforward_iam_request()
so it uses the member variable from the constructor instead of taking it as an argumentFixes: https://tracker.ceph.com/issues/63994
Show available Jenkins commands
jenkins retest this please
jenkins test classic perf
jenkins test crimson perf
jenkins test signed
jenkins test make check
jenkins test make check arm64
jenkins test submodules
jenkins test dashboard
jenkins test dashboard cephadm
jenkins test api
jenkins test docs
jenkins render docs
jenkins test ceph-volume all
jenkins test ceph-volume tox
jenkins test windows
jenkins test rook e2e