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
mon/OSDMonitor: do not send_pg_creates with stale info #17065
Conversation
<< " not using stale creating_pgs@" << creating_pgs_epoch << dendl; | ||
// the subscribers will be updated when the mapping is completed anyway | ||
return next; | ||
} |
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.
Hmm, we don't send creates on a timer or anything that I can see. Is it really safe to assume we'll get asked to send them again if we just skip it here?
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.
@gregsfortytwo C_UpdateCreatingPGs
calls update_creating_pgs()
and check_pg_creates_subs()
when it's done with the mapping. so i think, once creating_pgs_by_osd_epoch
is sync'ed with creating_pgs.pgs
, we will send the pg creates to OSDs.
and we always try to start the mapping when the osdmap is committed, see OSDMonitor::on_active()
. so it's safe to assume so, i believe.
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.
LGTM
@tchaikov, should run this through testing before merge? |
@gregsfortytwo yes, should run it thru rados qa suite. |
|
we reset the "creating_pgs" with the newly accepted paxos proposal, but the creating_pgs_by_osd_epoch is out-of-sync with the new creating_pgs. so we are at risk of using stale creating_pgs_by_osd_epoch along with the new creating_pgs.pgs. to avoid this racing, we need to check the creating_pgs_epoch before sending pg-creates using creating_pgs_by_osd_epoch. Fixes: http://tracker.ceph.com/issues/20785 Signed-off-by: Kefu Chai <kchai@redhat.com>
changelog
|
retest this please |
|
we reset the "creating_pgs" with the newly accepted paxos proposal, but
the creating_pgs_by_osd_epoch is out-of-sync with the new creating_pgs.
so we are at risk of using stale creating_pgs_by_osd_epoch along with
the new creating_pgs.pgs. to avoid this racing, we need to check the
creating_pgs_epoch before sending pg-creates using
creating_pgs_by_osd_epoch.
Fixes: http://tracker.ceph.com/issues/20785
Signed-off-by: Kefu Chai kchai@redhat.com