-
Notifications
You must be signed in to change notification settings - Fork 5.9k
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
crimson/common: re-implement do_for_each #48932
Conversation
Seems there's a compilation issue |
yes, I found that there is no |
e75f39d
to
1a7f3fb
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.
Probably need to schedule CI as the fix also impacts OSD? @athanatos
Signed-off-by: Xinyu Huang <xinyu.huang@intel.com>
779ee68
to
59805ef
Compare
59805ef
to
4ac18f6
Compare
Changed the reference in the second commit to ensure a more accurate reference type |
Signed-off-by: Xinyu Huang <xinyu.huang@intel.com>
4ac18f6
to
76a7020
Compare
The current implementation of crimson::do_for_each might meet stack overflow when future is available but seastar::need_preempt is true. This new implementation mirror to the seastar::do_for_each with crimson errorator mechanism will solve this problem. Fixes: https://tracker.ceph.com/issues/58005. Signed-off-by: Xinyu Huang <xinyu.huang@intel.com>
76a7020
to
298af6b
Compare
jenkins retest this please |
make check error, seems not related, looking...
|
jenkins test make check |
jenkins retest this please |
jenkins test make check |
When future is available but
seastar::need_preempt
is true,crimson::do_for_each
will become a big recursive function, which might cause stackoverflow.According to the unittest I added in first commit, this problem can be reproduced.
It seems that
crimson::repeat
will not meet this situation.Contribution Guidelines
To sign and title your commits, please refer to Submitting Patches to Ceph.
If you are submitting a fix for a stable branch (e.g. "pacific"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.
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
jenkins test windows