<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Oct 14, 2021 at 10:51 PM martin doc <<a href="mailto:db1280@hotmail.com">db1280@hotmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">




<div dir="ltr">
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div id="gmail-m_-7621347952489550594appendonsend"></div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<hr style="display:inline-block;width:98%">
<div id="gmail-m_-7621347952489550594divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From: </b>Andrei Borzenkov <<a href="mailto:arvidjaar@gmail.com" target="_blank">arvidjaar@gmail.com</a>>,  Friday, 15 October 2021 4:59 AM<br>
</font></div>
<div id="gmail-m_-7621347952489550594divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>...</b></font></div>
<div><font size="2"><span style="font-size:11pt">
<div>> Dampening defines delay before attributes are committed to CIB.</div>
<div>> Private attributes are never ever written into CIB, so dampening</div>
<div>> makes no sense here. Private attributes are managed by attrd</div>
<div>> itself and you see the latest value.<br>
<br>
> If you change transient attribute (without -p option) value you<br>
> will see different values reported by<br>
<br>
> attrd_updater -n my_ping -Q<br>
<br>
> and<br>
<br>
> cibadmin -Q -A "//nvpair[@name='my_ping']"<br>
<br>
> until dampening timeout expires.<br>
<br>
> This applies even to deleting attribute.<br>
<br>
Ok, now I understand what the dampen function does.</div>
<div><br>
</div>
<div>If I understand this correctly then this probably makes every documented example of using ocf:pacemaker:ping with a colocation statement wrong because the only way to see the effect of dampen is to use a rule that references the value
 of pingd directly. That or the script for ping has a major flaw with respect to dampen.</div></span></font></div></div></blockquote><div><br></div><div>As we've already tried to explain, purpose of dampening is not implementation of any</div><div>kind of resilience against loss of a certain percentage of packets or anything similar.</div><div><br></div><div>Basic idea is to have more than one ping host so that - given failure_score is low enough -</div><div>there is gonna be a certain resilience against packet loss.</div><div>If your number of ping-hosts isn't large enough you might play with adding them in multiple</div><div>times to get some kind of resilience.</div><div>But I agree that this one out of two behavior is probably too resilient for most cases and</div><div>thus there might be room for improvement.</div><div>Main pain-point here is that ping-RA allows us to configure the count of pings sent, but it</div><div>is just using the exit-value from ping that becomes negative already when one of the</div><div>answers is missing.</div><div>This is why with</div><div><a href="https://github.com/ClusterLabs/fence-agents/blob/master/agents/heuristics_ping/fence_heuristics_ping.py">https://github.com/ClusterLabs/fence-agents/blob/master/agents/heuristics_ping/fence_heuristics_ping.py</a></div><div>I chose to both give the number of packets sent + number received necessary to be</div><div>assumed as alive. If we assume the latter, when not given at all, as equal to the number</div><div>of packets sent we would preserve unchanged behavior for existent configurations.</div><div><br></div><div>Klaus</div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><font size="2"><span style="font-size:11pt">
<div><br>
</div>
<div>That is when I do this:</div>
<div><br>
</div>
<div>pcs resource create myPing ocf:pacemaker:ping host_list=192.168.1.1 failure_score=1</div>
<div>pcs resource create database ocf:heartbeat:pgsql</div>
<div>pcs group add pgrp myPing database</div>
<div><br>
</div>
<div>PCS will move everything to a new node if there is even 1 ping failure because monitor in ping doesn't look at the dampened value, only the value of the immediate returned value.</div>
<div><br>
</div>
<div>The same is true with colocation statements - if a constraint is made with a ping resource without using a rule that references pingd then  the dampen behaviour is ignored completely.</div>
<div><br>
</div>
<div>Is the ping'er missing something that does this:</div>
<div><br>
</div>
<div>score=`cibadmin -Q -A "//nvpair[@name='ping']" | sed -e 's/.*value="\([^"]*\)".*/\1/'`</div>
<div><br>
</div>
<div>before it checks if $score is less than $OCF_RESKEY_failure_score?</div>
<div><br>
</div>
<div>Thanks</div>
<div><br>
</div>
</span></font></div>
</div>

_______________________________________________<br>
Manage your subscription:<br>
<a href="https://lists.clusterlabs.org/mailman/listinfo/users" rel="noreferrer" target="_blank">https://lists.clusterlabs.org/mailman/listinfo/users</a><br>
<br>
ClusterLabs home: <a href="https://www.clusterlabs.org/" rel="noreferrer" target="_blank">https://www.clusterlabs.org/</a><br>
</blockquote></div></div>