mirror of
https://github.com/ceph/ceph
synced 2024-12-17 17:05:42 +00:00
mon: OSDMonitor: only thrash and propose if we are the leader
'thrash_map' is only set if we are the leader, so we would thrash and propose the pending value if we are the leader. However, we should keep the 'is_leader()' check not only for clarity's sake (an unfamiliar reader may cry OMGBUG, prompting to a patch much like this), but also because we may lose a subsequent election and become a peon instead, while still holding a 'thrash_map' value > 0 -- and we really don't want to propose while being a peon. Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com> Reviewed-by: Sage Weil <sage@inktank.com>
This commit is contained in:
parent
b19ec576e6
commit
5eac38797d
@ -297,8 +297,14 @@ void OSDMonitor::on_active()
|
||||
send_to_waiting();
|
||||
check_subs();
|
||||
|
||||
if (thrash_map && thrash())
|
||||
propose_pending();
|
||||
if (thrash_map) {
|
||||
if (is_leader()) {
|
||||
if (thrash())
|
||||
propose_pending();
|
||||
} else {
|
||||
thrash_map = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (mon->is_leader())
|
||||
mon->clog.info() << "osdmap " << osdmap << "\n";
|
||||
|
Loading…
Reference in New Issue
Block a user