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

Pascal BERTON pascal.berton3 at free.fr
Mon Feb 25 01:09:16 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.

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!






De : drbd-user-bounces at lists.linbit.com
[mailto:drbd-user-bounces at lists.linbit.com] De la part de Pascal BERTON
Envoyé : dimanche 24 février 2013 11:24
À : drbd-user at lists.linbit.com
Objet : [DRBD-user] drbd 8.3.15 - crm_fence_peer.sh - problem in




I’m currently updating a Pacemaker+drbd+scst cluster from drbd-8.3.12 to
drbd-8.3.15, and I found something odd regarding unfencing. Basic symptom is
that unfencing does nothing, cluster logs report unfencing had been done,
but in reality nothing has occurred.


For instance here’s the rule I’ve got in my CIB after volume teardown :

location drbd-fence-by-handler-ms-rdmVDR ms-rdmVDR \

        rule $id="drbd-fence-by-handler-rule-ms-rdmVDR" $role="Master" -inf:
#uname ne ipstore21


Now, I have instrumented the fence_peer_init() function within
crm_fence_peer.sh script as follows :



        # we know which instance we are: $OCF_RESOURCE_INSTANCE.

echo "fence_peer_init() :" >> /var/log/unfence.log

echo "===== $id_prefix =====" >> /var/log/unfence.log

echo "===== $master_id =====" >> /var/log/unfence.log

        have_constraint=$(set +x; echo "$cib_xml" |


echo "===== $have_constraint =====" >> /var/log/unfence.log

echo "End of fence_peer_init()" >> /var/log/unfence.log

echo >> /var/log/unfence.log

        return 0



When resync finishes, here’s what I get in my logfile :

fence_peer_init() :

===== drbd-fence-by-handler-rdmVDR =====

===== ms-rdmVDR =====

=====  =====

End of fence_peer_init()


As a result, it searches a location rule named
drbd-fence-by-handler-rdmVDR-ms-rdmVDR for deletion that effectively doesn’t
exists in the CIB and have_constraint returns empty


I’ve compared to 8.3.12 version of the script which used to work, and there
seems to have some changes

I will unfence by hand in the meantime but I think it requires some fix,
right ?






-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linbit.com/pipermail/drbd-user/attachments/20130225/5c0e5fe3/attachment.htm>

More information about the drbd-user mailing list