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

Pascal BERTON pascal.berton3 at free.fr
Sun Mar 3 00:52:06 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.

Hi Lars!

Thanks for the tip! I would have sworn my older node was running 8.3.12, but back home today I checked it and saw that it was effectively running 8.3.11 : What you said turned crystal clear. I will unfence the volumes by hand as they are definitely in sync, and will upgrade the eldest node in 8.3.15 to make everything clean.
Thanks for your help!



-----Message d'origine-----
De : drbd-user-bounces at lists.linbit.com [mailto:drbd-user-bounces at lists.linbit.com] De la part de Lars Ellenberg
Envoyé : mardi 26 février 2013 10:25
À : drbd-user at lists.linbit.com
Objet : Re: [DRBD-user] drbd 8.3.15 - crm_fence_peer.sh - problem in fence_peer_init()

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
drbd-user mailing list
drbd-user at lists.linbit.com

More information about the drbd-user mailing list