From: David Zafman Date: Wed, 27 Mar 2013 18:06:07 +0000 (-0700) Subject: OSD fails to start with error assert(values.size() == 2) X-Git-Tag: v0.62~160 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b0103abdee1fecaa9d906efce8e1e8c3325d9ef5;p=ceph.git OSD fails to start with error assert(values.size() == 2) Remove redundant setting of dirty_info Fix PG::upgrade() to conform to programming style Set dirty_big_info in PG::write_info for upgrades BUG: #4562 Signed-off-by: David Zafman Reviewed-by: Sam Just --- diff --git a/src/osd/PG.cc b/src/osd/PG.cc index 59399b704fd3..427ba2b7380a 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -1795,7 +1795,6 @@ void PG::_activate_committed(epoch_t e) if (dirty_info) { ObjectStore::Transaction *t = new ObjectStore::Transaction; - dirty_info = true; write_if_dirty(*t); int tr = osd->store->queue_transaction(osr.get(), t); assert(tr == 0); @@ -2352,9 +2351,8 @@ void PG::init(int role, vector& newup, vector& newacting, pg_history_t write_if_dirty(*t); } -void PG::upgrade( - ObjectStore *store, - const interval_set &snapcolls) { +void PG::upgrade(ObjectStore *store, const interval_set &snapcolls) +{ unsigned removed = 0; for (interval_set::const_iterator i = snapcolls.begin(); i != snapcolls.end(); @@ -2504,6 +2502,7 @@ void PG::write_info(ObjectStore::Transaction& t) info_struct_v = cur_struct_v; ::encode(info_struct_v, attrbl); t.collection_setattr(coll, "info", attrbl); + dirty_big_info = true; } // info. store purged_snaps separately.