All of lore.kernel.org
 help / color / mirror / Atom feed
* PGLog::rewind_divergent_log use case
@ 2013-06-08  8:16 Loic Dachary
  2013-06-10 23:02 ` Samuel Just
  0 siblings, 1 reply; 3+ messages in thread
From: Loic Dachary @ 2013-06-08  8:16 UTC (permalink / raw)
  To: Samuel Just; +Cc: Ceph Development


[-- Attachment #1.1: Type: text/plain, Size: 1188 bytes --]

[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.

[-- Attachment #1.2: a.png --]
[-- Type: image/png, Size: 6068 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 262 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-06-11 19:51 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-08  8:16 PGLog::rewind_divergent_log use case Loic Dachary
2013-06-10 23:02 ` Samuel Just
2013-06-11 19:51   ` Loic Dachary

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.