-
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 <[email protected]>
6cb1b85 to
5702139
Compare
sachitanands
left a comment
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) |
cdeshmukh
left a comment
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 <[email protected]>
done |
sjain09
left a comment
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 <[email protected]>
sjain09
left a comment
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 <[email protected]>
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 [email protected]
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