[DRBD-user] Strange behavior with non-default ping timeout since 8.3.11

Andreas Hofmeister andi at collax.com
Wed Sep 19 15:34:40 CEST 2012

Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.

Hi all,

We use drbd 8.3.11 as a dual-primary in a pacemaker (1.0.x) cluster.

In our setup, we need a somewhat larger ping-timeout (2s) due to 
interruptions during a firewall restart. That used to work well with 
8.3.10 but caused crm resource stop/start sequences to fail since 8.3.11.

A git bisect showed that this effect occurs since 

It seems that PCMK executes the sequence drbdadm up + drbdadm primary 
rather quickly. If the "drbdadm primary" happens while drbd is still 
waiting for the connection being established (WFConnection), the 
resource startup fails, because then a split-brain is detected and then 
automatic resolution fails because by then both sides are already primary.

Above patch prolongs the time during which the problem may occur: with 
the old 100ms connection timeout it was rather unlikely to happen, with 
a 2s timeout it is almost guaranteed.

We were able to reproduce the problem with ping-timeout 20 on a running 
dual-primary with

   drbdadm down <res>; drbdadm up <res>; drbdadm primary <res>

This sequence however works:

   drbdadm down <res> ; drbdadm up <res> ; drbdadm wait-connect <res>;\
     drbdadm primary test

Our test setup was a 3.0.41 kernel running drbd 8.3.13 under KVM.

Putting this

   test "$rc" = "$OCF_SUCCESS" && drbdadm wait-connect $DRBD_RESOURCE

into the drbd_start function of the RA seems to work for us.


More information about the drbd-user mailing list