RGW - Zipper - remove RGWObjectCtx from SAL API#44616
Conversation
src/rgw/rgw_putobj_processor.cc
Outdated
| obj_ctx, head_obj.get()); | ||
| RGWRados::Object::Write obj_op(&op_target); | ||
|
|
||
| ldpp_dout(dpp, 0) << "Luke 2 if_match=" << if_match << dendl; |
src/rgw/rgw_op.cc
Outdated
| emplace_attr(RGW_ATTR_OBJECT_RETENTION, std::move(obj_retention_bl)); | ||
| } | ||
|
|
||
| ldpp_dout(this, 0) << "Luke 1 if_match=" << if_match << dendl; |
soumyakoduri
left a comment
There was a problem hiding this comment.
Overall changes look good to me.
| return 0; | ||
| } | ||
|
|
||
| //int DB::Object::get_manifest(const DoutPrefixProvider *dpp, RGWObjManifest **pmanifest) |
There was a problem hiding this comment.
This function may be removed completely from DBStore.
e191996 to
e25f775
Compare
| /** Mark further operations on this object as being atomic */ | ||
| virtual void set_atomic(RGWObjectCtx* rctx) const = 0; | ||
| virtual void set_atomic() { | ||
| state.is_atomic = true; |
There was a problem hiding this comment.
what does "is_atomic" signify? what semantics should the backend store ensure if it is set to true?
There was a problem hiding this comment.
It seems to cause atomic RADOS ops to be used instead of non-atomic ops.
There was a problem hiding this comment.
okay..thanks! I am unsure if its needed for other stores. But I guess that can be confirmed and cleaned up once the other stores are fully ready.
|
|
||
| int get_state(const DoutPrefixProvider *dpp, RGWObjState **pstate, bool follow_olh); | ||
| int get_manifest(const DoutPrefixProvider *dpp, RGWObjManifest **pmanifest); | ||
| /*int get_manifest(const DoutPrefixProvider *dpp, RGWObjManifest **pmanifest);*/ |
soumyakoduri
left a comment
There was a problem hiding this comment.
sal* changes look good to me.
|
This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved |
e25f775 to
1bdd4fb
Compare
|
jenkins test make check |
|
jenkins test make check arm64 |
|
jenkins test api |
1bdd4fb to
94b30f7
Compare
|
@andriytk can you review the MOTR bits? |
|
This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved |
RGWObjectCtx is a RADOS-specific concept, but it's threaded through the whole of RGW. Remove it from the SAL API, and from everything above the line, leaving it only in RadosStore. As part of this, move RGWObjState to SAL and use it as the key for an Object. Signed-off-by: Daniel Gryniewicz <dang@fprintf.net>
94b30f7 to
88bcacc
Compare
|
jenkins test api |
1 similar comment
|
jenkins test api |
|
jenkins test windows |
|
Hello @dang, I have a question: in the latest motr sal code we are using BTW, it seems the problem with setting the correct error msg also exists with RADOS backend, but I'm not 100% sure. Here is what I found in the latest code in the main branch: Lines 5255 to 5259 in 72f8cfa Thank you in advance! |
@andriytk @cdeshmukh this feels like a layering violation to me. if there's a need to pass more-specific errors back up to the calling if i understand correctly, all radosgw backends would lack these error messages, so this shouldn't be solved in the motr layer that linked PR mentions "copy object operation" specifically, so i'd start with |
get_obj_head_ioctx returns an int where 0 indicates success. When called in RGWRados::check_disk_state the result was treated as a booleann with inverted logic. This fixes that error. This was already fixed in PR ceph#44616 as part of a larger commit, but this PR unifies the codebase, so various backports are consistent. Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
get_obj_head_ioctx returns an int where 0 indicates success. When called in RGWRados::check_disk_state the result was treated as a booleann with inverted logic. This fixes that error. This was already fixed in PR ceph#44616 as part of a larger commit, but this PR unifies the codebase, so various backports are consistent. This also adds additional logging. Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
get_obj_head_ioctx returns an int where 0 indicates success. When called in RGWRados::check_disk_state the result was treated as a booleann with inverted logic. This fixes that error. This was already fixed in PR ceph#44616 as part of a larger commit, but this PR unifies the codebase, so various backports are consistent. This also adds additional logging. Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
get_obj_head_ioctx returns an int where 0 indicates success. When called in RGWRados::check_disk_state the result was treated as a booleann with inverted logic. This fixes that error. This was already fixed in PR ceph#44616 as part of a larger commit, but this PR unifies the codebase, so various backports are consistent. This also adds additional logging. Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
thanks @cbodley for the details, we raised this to understand proper ways of handling it.
Yes, its needed for AWS S3 compliance
Agree, our approach was for time being until we understand proper ways, for which this query was raised.
Yes, targeting in S3 alone for AWS compliance. |
we've never really considered these error messages to be part of the s3 api for compliance purposes - only the error codes like these error messages are helpful for clients trying to debug issues so i definitely support adding more, but we shouldn't require them to match AWS' error messages verbatim |
get_obj_head_ioctx returns an int where 0 indicates success. When called in RGWRados::check_disk_state the result was treated as a booleann with inverted logic. This fixes that error. This was already fixed in PR ceph#44616 as part of a larger commit, but this PR unifies the codebase, so various backports are consistent. This also adds additional logging. Signed-off-by: J. Eric Ivancich <ivancich@redhat.com> (cherry picked from commit 28d04e8)
get_obj_head_ioctx returns an int where 0 indicates success. When called in RGWRados::check_disk_state the result was treated as a booleann with inverted logic. This fixes that error. This was already fixed in PR ceph#44616 as part of a larger commit, but this PR unifies the codebase, so various backports are consistent. This also adds additional logging. Signed-off-by: J. Eric Ivancich <ivancich@redhat.com> (cherry picked from commit 28d04e8)
get_obj_head_ioctx returns an int where 0 indicates success. When called in RGWRados::check_disk_state the result was treated as a booleann with inverted logic. This fixes that error. This was already fixed in PR ceph#44616 as part of a larger commit, but this PR unifies the codebase, so various backports are consistent. This also adds additional logging. Signed-off-by: J. Eric Ivancich <ivancich@redhat.com> (cherry picked from commit 28d04e8)
get_obj_head_ioctx returns an int where 0 indicates success. When called in RGWRados::check_disk_state the result was treated as a booleann with inverted logic. This fixes that error. This was already fixed in PR ceph#44616 as part of a larger commit, but this PR unifies the codebase, so various backports are consistent. This also adds additional logging. Signed-off-by: J. Eric Ivancich <ivancich@redhat.com> (cherry picked from commit 28d04e8)
RGWObjectCtx is a RADOS-specific concept, but it's threaded through the
whole of RGW. Remove it from the SAL API, and from everything above the
line, leaving it only in RadosStore. As part of this, move RGWObjState
to SAL and use it as the key for an Object.
Signed-off-by: Daniel Gryniewicz dang@fprintf.net
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 tox