Re: PGLog::rewind_divergent_log use case

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux