diff options
author | Greg Farnum <gregory.farnum@dreamhost.com> | 2012-01-10 10:41:36 -0800 |
---|---|---|
committer | Greg Farnum <gregory.farnum@dreamhost.com> | 2012-01-10 10:47:22 -0800 |
commit | ac9b2d092f1f075621f30f77cdbb49bdf35b9ae5 (patch) | |
tree | bda583dea82daf8633d8155dafa9aa12db9eb8e7 /src/mds | |
parent | 45897b52af6586ba213993cdc409a27b8f21a58c (diff) | |
download | ceph-ac9b2d092f1f075621f30f77cdbb49bdf35b9ae5.tar.gz |
mds: initiate monitor reconnect if beacon acks take too long
If it takes 2*mds_beacon_grace (default 30 seconds total) seconds
to get an ack back, maybe it's the monitor and not us. Try a reconnect,
which will just add the teensiest bit of load if we're wrong.
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
Diffstat (limited to 'src/mds')
-rw-r--r-- | src/mds/MDS.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mds/MDS.cc b/src/mds/MDS.cc index a9b4001ff1d..a8c38a90e47 100644 --- a/src/mds/MDS.cc +++ b/src/mds/MDS.cc @@ -623,6 +623,12 @@ bool MDS::is_laggy() dout(5) << "is_laggy " << since << " > " << g_conf->mds_beacon_grace << " since last acked beacon" << dendl; was_laggy = true; + if (since > (g_conf->mds_beacon_grace*2)) { + // maybe it's not us? + dout(5) << "initiating monitor reconnect; maybe we're not the slow one" + << dendl; + monc->reopen_session(); + } return true; } return false; |