[DRBD-user] drbd 8.3.15 - crm_fence_peer.sh - problem in fence_peer_init()

Lars Ellenberg lars.ellenberg at linbit.com
Tue Feb 26 10:24:58 CET 2013

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

On Mon, Feb 25, 2013 at 01:09:16AM +0100, Pascal BERTON wrote:
> Well, thinking about it, the only conclusion that I can honestly make after
> this instrumentation is that $id_prefix is effectively incorrect when
> entering fence_peer_init()  and doesn’t permit to remove the fence rule
> then, but in no case fence_peer_init() seems faulty, it just does what he
> has to with the parameter he’s given.
> Back to the starting point…
> To keep investigating further and may be save some time, does anybody know
> where id_prefix value is set up ? within DRBD code itself I guess ? If it’s
> the DRBD code that manages resync, it’s probably also it that can trigger
> cleanup actions afterwards, right ?
> In any case, I have to work a bit more before bothering you guys, especially
> when my config is a good mess at the moment, being only partially updated,
> one foot in a version, the other in another. Plus, I just have identified
> that my resource agents are not exactly the same version on both nodes, the
> rest of the cluster stack being identical. 
> If someone has any advice or idea, he’s welcome!

The change actually happened between 8.3.11 and 8.3.12,
and was done to support constructs like

     <primitive drbd0
     <primitive drbd1
     <primitive drbd2

the id prefix used to be "drbd-fence-by-handler".
Appended would be the found xml id of the enclosing <master> tag.
Which for a master of group of several drbd primitives would be
ambiguous and create conflicts.

It now includes the resource name to make it unique.

constraints created by a 8.3.11 script would not be found by the 8.3.12
or later script.

You should update both sides, at least have both sides use the same
fencing script.

You may workaround it for not by explicitly configuring the id prefix.
  fence-peer "crm-fence-peer.sh --id-prefix drbd-fence-by-handler-$DRBD_RESOURCE ...other options ...";

should do it -- though maybe you need to expand the resource name
yourself in the config file already, I did not double check that it will
be properly expanded by the shell.

Hope that helps,


: Lars Ellenberg
: LINBIT | Your Way to High Availability
: DRBD/HA support and consulting http://www.linbit.com

DRBD® and LINBIT® are registered trademarks of LINBIT, Austria.
please don't Cc me, but send to list   --   I'm subscribed

More information about the drbd-user mailing list