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
osd: PeeringState: fix selection order in calc_replicated_acting_stretch #44518
Conversation
Our lack of upstream tests around stretch mode is a problem here: I don't really see how to properly test this except giving it to the folks who have seen it (Red Hat QE; thanks guys!). So I think we just do our due diligence that it doesn't break the suite and then merge it in. |
9d02068
to
b79b7da
Compare
We were previously mis-ordering these to *de*prioritize the existing acting set. That is bad! We generate OSD candidates from the acting set and strays, and push them into the candidates list as a tuple of <<!in_acting,pg_info.last_update>,osd_id>. Then we sort the list. Then we go through the list from front to back and push_back entries into the appropriate ancestor lists. And then we pop_back() off the lists to select the acting set. Which of course turns our nice careful order backwards! So don't do that. Fixes: https://tracker.ceph.com/issues/53824 Signed-off-by: Greg Farnum <gfarnum@redhat.com>
b79b7da
to
0af5eb6
Compare
No patch changes, just rebased to latest master since the doc and make check both failed on not-my-code? |
jenkins test api |
what kind of test scenario uncovered this bug? |
jenkins test api |
2 similar comments
jenkins test api |
jenkins test api |
The failed api test showed this line: In any case, we'll see if it passes now. |
We were previously mis-ordering these to deprioritize the existing acting set. That is bad!
We generate OSD candidates from the acting set and strays, and push
them into the candidates list as a tuple of <<!in_acting,pg_info.last_update>,osd_id>.
Then we sort the list. Then we go through the list from front to back and
push_back entries into the appropriate ancestor lists.
And then we pop_back() off the lists to select the acting set.
Which of course turns our nice careful order backwards! So don't do that.
Fixes: https://tracker.ceph.com/issues/53824
Signed-off-by: Greg Farnum gfarnum@redhat.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