logo       

RE: DRBD8: Split-brain false positive on Primary/primarypotential patch: msg#00015

linux.kernel.drbd.devel

Subject: RE: DRBD8: Split-brain false positive on Primary/primarypotential patch

> I agree here.
> But see below why I still think Philipp is "right", too :)
>
> But I think the provided patch (doing it only in al_begin_io) is
> wrong.
> actually it needs to be done as soon as the bitmap is touched,
> so it needs be done in "set_out_of_sync", which may be called in the
> cleanup code after connection loss, too, and will be, typically, on
> the
> actually active node.
>

Yes, you are, of course, quite right -- any modification should result
in the UUID update and not just updates by the file system above DRBD.

> one alternative would be to update the uuids where it is done now,
> but only if we have been opened RW (we have that information anyways
> somewhere), and do it again (unless already done) as soon as we are
> opened rw. that would be correct, I think, and easy.

I agree - that's actually a much better solution that is more in line
with Phil's desire to protect against mounting a 1-node fs on both
nodes; this decouples primaryness from the reality of which nodes are
_actually_ using the volume.

We can rework the patch to do it this way if this is acceptable.

>
> Why we could leave the code as is, anyways:
>
> we can leave it like it is right now, because the "after split brain
> recovery" strategy "discard least changes" would do the same thing:
> your assumtion was that the "inactive" node does no changes.
> zero is less than anything else...
>

Yes - if this is actually possible in a 2p case then it would work - I
see that the current behavior of this setting is based on bit-0 of the
current UUID which is set based on primaryness; since in a 2p case both
will have the bit set I don't think this works. I'm not sure how you
would track updates to be able to calculate 'least changes'...

Simon


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise