[Drbd-dev] Primary/Diskless node cannot reconnect

Graham, Simon Simon.Graham at stratus.com
Tue Nov 3 04:47:54 CET 2009


> 8.2 is dead.

Hmmm... it hasn't stopped moving yet... are you saying you won't make
any more fixes to it? 


> has been fixed differently in 8.3 already,
> where the corresponding code looks like
> 
>  if (mdev->state.conn < C_CONNECTED &&
>             mdev->state.disk < D_INCONSISTENT &&
>             mdev->state.role == R_PRIMARY &&
>             (mdev->ed_uuid & ~((u64)1)) != (p_uuid[UI_CURRENT] &
> ~((u64)1))) {
> 

I must admit I haven't looked at 8.3 in any detail yet but that code you
quote looks suspiciously like the 8.2 code to me -- D_DISKLESS is still
a value less than D_INCONSISTENT...

Shouldn't this be:

  if (mdev->state.conn < C_CONNECTED &&
             mdev->state.disk > D_DISKLESS &&
             mdev->state.disk < D_INCONSISTENT &&
             mdev->state.role == R_PRIMARY &&
             (mdev->ed_uuid & ~((u64)1)) != (p_uuid[UI_CURRENT] &
~((u64)1))) {

To fix this same issue???
Simon


More information about the drbd-dev mailing list