> Yeah, this is definitely broken, but I think it's broken even beyond that
> specific case.  It looks like it's just an ill-conceived optimization.
> The problem is that peer_missing needs to have missing in terms of the
> master log (on the primary), not the peer's log, and in order to
> calculate that we need pull the log+missing.  (In the
> last_update==last_complete case I was trying to optimize, the missing set
> will just be empty.)  The current code missing the case where the replica
> has a divergent log or and older last_update (even one > log.tail).
>
> I think this shortcut _only_ makes sense when the replica is perfectly up
> to date, i.e.
>
>      if (pi.last_update == pi.last_complete &&
>          pi.last_update == info.last_update) {
>
> Does that sound right?

Yeah, thanks for the clarification. :)

-- 
Henry Chang
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to