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/MgrStatMonitor: keep mgrstat version ahead of pgmon #15584

Merged
merged 2 commits into from Jun 12, 2017

Conversation

Projects
None yet
3 participants
@liewegas
Member

liewegas commented Jun 8, 2017

Pre-luminous, statfs and getpoolstats come from pgmon, and clients will
see and track the paxos version for that. After the switchover, those
move to mgrstatmon. If a clients sends a version ahead of the current
mgrstat version, it will block until the paxos version catches up, which
may be years for an aged cluster.

Fix by keeping mgrstat version ahead of pgmon's every time it updates.
This only really matters right at the transition point (we don't update
before that, and after that pgmon doesn't update).

Fixes: http://tracker.ceph.com/issues/20219
Signed-off-by: Sage Weil sage@redhat.com

qa

  • upgrade/jewel-x
  • rados
@gregsfortytwo

Reviewed-by: Greg Farnum gfarnum@redhat.com

@liewegas liewegas added the needs-qa label Jun 8, 2017

@@ -100,6 +100,11 @@ void MgrStatMonitor::create_pending()
void MgrStatMonitor::encode_pending(MonitorDBStore::TransactionRef t)
{
++version;
if (version < mon->pgmon()->get_last_committed()) {

This comment has been minimized.

@tchaikov

tchaikov Jun 9, 2017

Contributor

maybe we can just fix this in MgrStatMonitor::create_initial() instead of doing this check in every encode_pending().

@liewegas

This comment has been minimized.

Member

liewegas commented Jun 9, 2017

liewegas added some commits Jun 12, 2017

mon/MgrStatMonitor: keep mgrstat version ahead of pgmon
Pre-luminous, statfs and getpoolstats come from pgmon, and clients will
see and track the paxos version for that.  After the switchover, those
move to mgrstatmon.  If a clients sends a version ahead of the current
mgrstat version, it will block until the paxos version catches up, which
may be years for an aged cluster.

Fix by keeping mgrstat version ahead of pgmon's every time it updates.
This only really matters right at the transition point (we don't update
before that, and after that pgmon doesn't update).

Fixes: http://tracker.ceph.com/issues/20219
Signed-off-by: Sage Weil <sage@redhat.com>
mon/PGMonitor: assert PGMonitor stops proposing after luminous
One hacky exception here for the rebuild-mondb case.

Signed-off-by: Sage Weil <sage@redhat.com>

@liewegas liewegas merged commit 0c2e02e into ceph:master Jun 12, 2017

2 of 3 checks passed

make check make check failed
Details
Signed-off-by all commits in this PR are signed
Details
Unmodified Submodules submodules for project are unmodified
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment