diff options
author | Samuel Just <sam.just@inktank.com> | 2013-08-02 11:58:52 -0700 |
---|---|---|
committer | Samuel Just <sam.just@inktank.com> | 2013-08-02 20:59:42 -0700 |
commit | 9e7d6d547e0e8a6db6ba611882afa9bf74ea0195 (patch) | |
tree | 60996c0cc6ae9f1bab38233f04d5721b96b5356f | |
parent | ef036bd4bc0e79bff8a5805800fbdeb0cc2db6ae (diff) | |
download | ceph-9e7d6d547e0e8a6db6ba611882afa9bf74ea0195.tar.gz |
PG: set !flushed in Reset()
Otherwise, we might serve a pull before we start_flush in the
ReplicaActive constructor.
Fixes: #5799
Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
-rw-r--r-- | src/osd/PG.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/osd/PG.cc b/src/osd/PG.cc index f731441e8a4..63e760e3b21 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -4510,7 +4510,7 @@ void PG::start_flush(ObjectStore::Transaction *t, FlushStateRef flush_trigger( new FlushState(this, get_osdmap()->get_epoch())); t->nop(); - flushed = false; + assert(!flushed); on_applied->push_back(new ContainerContext<FlushStateRef>(flush_trigger)); on_safe->push_back(new ContainerContext<FlushStateRef>(flush_trigger)); } @@ -5217,6 +5217,7 @@ PG::RecoveryState::Reset::Reset(my_context ctx) state_name = "Reset"; context< RecoveryMachine >().log_enter(state_name); PG *pg = context< RecoveryMachine >().pg; + pg->flushed = false; pg->set_last_peering_reset(); } |