-
Notifications
You must be signed in to change notification settings - Fork 32
rgw_sal_motr:[CORTX-33799] Handle progress_cb response in case of copy-object operation failure. #386
Conversation
copy-object operation failure. Problem: If copy operation failed after copying some data, then it was throwing an invalid XML error due to partial progress response. i.e rgw was not closing 'CopyObjectResult' tag in case of failure. Solution: Remove progress_cb call from rgw_sal_motr layer, and send 'dump_continue' signal to avoid client timeout during copy operation. Signed-off-by: Shriya Deshmukh <shriya.deshmukh@seagate.com>
6cb1b85
to
5702139
Compare
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 good.
please test with ceph test tool job
Sanity test -https://eos-jenkins.colo.seagate.com/job/Cortx-Automation/job/S3Server/job/S3-Compatibility-Test-Ceph-RGW/195/ (UNSTABLE) |
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.
In PR solution, also mention what is the AWS & RADOS behavior and if anything expected from copy progress perspective, like copy % finished or remaining, todays progress_cb doesnt serve that since it doesnt tell what is the total size of object being copied, so remaining copy cant be determined anyways
Signed-off-by: Shriya Deshmukh <shriya.deshmukh@seagate.com>
done |
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.
Added comment.
Signed-off-by: Shriya Deshmukh <shriya.deshmukh@seagate.com>
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 good.
…y-object operation failure. (#386) Problem: If copy operation failed after copying some data, then it was throwing an invalid XML error due to partial progress response. i.e rgw was not closing 'CopyObjectResult' tag in case of failure. Solution: Remove progress_cb call from rgw_sal_motr layer, and send 'dump_continue' signal to avoid client timeout during copy operation. Signed-off-by: Shriya Deshmukh <shriya.deshmukh@seagate.com>
Problem:
If copy operation failed after copying some data, its throwing an invalid XML error due to partial progress response. i.e rgw was not closing 'CopyObjectResult' tag in case of failure.
progress_cb() is not sending copy progress percentage or the total size of the object being copied during the copy operation, but periodically keeps sending copied bytes till now, which is not enough to know copy progress anyways as total obj size not known, and in negative cases, no proper response is sent by Copy object, instead progress_cb() response is seen, which is originally meant as partial response only.
Solution:
Replace progress_cb() call from rgw_sal_motr layer, with dump_continue() signal, which responds with HTTP 100 Continue header to avoid client timeout during the long copy operation.
Behavior comparison with AWS S3 & RGW(RADOS)
Signed-off-by: Shriya Deshmukh shriya.deshmukh@seagate.com
Checklist
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