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: RGWMetaSyncShardCR drops stack refs on destruction #12605
Conversation
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, has it been tested?
i added a dout to the
and the valgrind came out clean |
rebased onto kraken and pushed wip-18300 to ceph-ci so we can run through rgw suite |
http://pulpito.ceph.com/sage-2016-12-26_18:32:29-rgw-wip-sage-testing---basic-smithi/ still has some valgrind failures, both leaks and the invalid read. see /a/sage-2016-12-26_18:32:29-rgw-wip-sage-testing---basic-smithi/668072 |
thanks for running this @liewegas! looking through the results |
i identified 4 different valgrind failures in those results. one was the invalid read bug that Matt's been working on. i opened tracker issues for the other three:
the original leak addressed by this PR did not reproduce |
added two commits to address the use-after-free issue that was uncovered by the initial fix. teuthology run pending.. |
updates:
|
I didn't realize that there's a loop in |
if the coroutine is canceled before collect_children() can clean up all of its child stacks, those stack refs will leak. store these stacks as boost::intrusive_ptr so the ref is dropped automatically on destruction Fixes: http://tracker.ceph.com/issues/18300 Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
Fixes: http://tracker.ceph.com/issues/18412 Signed-off-by: Casey Bodley <cbodley@redhat.com>
latest run had some leaks of |
teuthology results were green, except for a single valgrind failure in the osd and an s3test failure due to timeouts on slow requests |
@cbodley The jewel backport is non-trivial due to the use of boost::intrusive_ptr which is not available in jewel. If you want to do it, the backport tracker issue is http://tracker.ceph.com/issues/18563 |
if the coroutine is canceled before collect_children() can clean up
all of its child stacks, those stack refs will leak. store these
stacks as boost::intrusive_ptr so the ref is dropped automatically on
destruction
Fixes: http://tracker.ceph.com/issues/18300