I think that case may be possible, and that the assert may be wrong. We have probably never seen a problem there due to osd_min_pg_log_entries. It's also possible that there is a subtle bug between there and calc_acting(). -Sam On Sat, Jun 8, 2013 at 1:16 AM, Loic Dachary <loic@xxxxxxxxxxx> wrote: > [Note: ceph-devel cc'ed] > > Hi Sam, > > While trying to create the conditions for the following to happen in PGLog::rewind_divergent_log: > > if (p == log.log.begin()) { > // yikes, the whole thing is divergent! > divergent.swap(log.log); > break; > } > > https://github.com/ceph/ceph/blob/master/src/osd/PGLog.cc#L355 > > I created this ( matching the drawing attached ), and the test case works. > > { > pg_log_entry_t e; > > info.log_tail = log.tail = eversion_t(1, 1); > newhead = eversion_t(1, 3); > e.version = divergent_version = eversion_t(1, 5); > e.soid.hash = 0x9; > divergent_object = e.soid; > e.op = pg_log_entry_t::DELETE; > e.prior_version = prior_version = eversion_t(0, 2); > log.log.push_back(e); > log.head = e.version; > } > > https://github.com/dachary/ceph/commit/d592d7f10968c56139cb470a4111ddfbe08a4030#L0R136 > > But it does not look like a situation that is actually going to happen. I feel something is missing and a hint would be much appreciated :-) > > Cheers > > -- > Loïc Dachary, Artisan Logiciel Libre > All that is necessary for the triumph of evil is that good people do nothing. -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html