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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 |
|
variable
credswas moved into theRGWRESTConnconstructor 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 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 windowsjenkins test rook e2e