[Linux-ha-dev] attrd and repeated changes

2011-10-20 Thread Philipp Marek
Hello,

when constantly sending new data via attrd the changes are never used.


Example:
   while sleep 1
 do attrd_updater -l reboot -d 5 -n rep_chg -U try$SECONDS
 cibadmin -Ql | grep rep_chg
   done

This always returns the same value - the one that was given with more than 5 
seconds delay afterwards, so that the dampen interval wasn't broken by the 
next change.


I've attached two draft patches; one for allowing the _first_ value in a 
dampen interval to be used (effectively ignoring changes until this value is 
written), and one for using the _last_ value in the dampen interval (by not 
changing the dampen timer). [1]


***  Note: they are for discussion only!
***  I didn't test them, not even for compilation.


Perhaps this bug [2] was introduced with one of these changes (the hashes 
are the GIT numbers)

High: crmd: Bug lf#2528 - Introduce a slight delay when
  creating a transition to allow attrd time to perform its updates
e7f5da92490844d190609931f434e08c0440da0f

Low: attrd: Indicate when attrd clients are updating fields
69b49b93ff6fd25ac91f589d8149f2e71a5114c5


What is the correct way to handle multiple updates within the dampen 
interval?


Thank you for any hints or ideas.


Regards,

Phil


Ad [1]: I even tried to provide an average, median or some other value here; 
but a) this isn't necessarily valid (for boolean or integer values), and b) 
as the data gets stored and transmitted as string it wouldn't easily work 
anyway.
So the question remaining is just first or last value, IMO.

Ad [2]: if this _is_ a bug -- but I'd certainly argue that way, as _not_ 
propagating a change is worse than a changing value.
From d06837c2637fea792b71fbd7a70db48ab0258a77 Mon Sep 17 00:00:00 2001
From: Philipp Marek philipp.ma...@linbit.com
Date: Wed, 19 Oct 2011 16:09:47 +0200
Subject: [PATCH] Only allow a single change to be queued.

---
 tools/attrd.c |6 --
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git tools/attrd.c tools/attrd.c
index 83e029e..ab756c1 100644
--- tools/attrd.c
+++ tools/attrd.c
@@ -823,8 +823,8 @@ attrd_local_callback(xmlNode * msg)
 }
 
   set_unexpanded:
-if (safe_str_eq(value, hash_entry-value)  hash_entry-timer_id) {
-/* We're already waiting to set this value */
+if (hash_entry-timer_id) {
+		/* We're already waiting to set this value */
 return;
 }
 
@@ -835,6 +835,8 @@ attrd_local_callback(xmlNode * msg)
 crm_debug(New value of %s is %s, attr, value);
 }
 
+	// don't allow change if in progress?
+	// don't restart timer?
 stop_attrd_timer(hash_entry);
 
 if (hash_entry-timeout  0) {
-- 
1.7.6.3

From 9674ac1ae8e106b71fcc13ff1521dedd9def9b6e Mon Sep 17 00:00:00 2001
From: Philipp Marek philipp.ma...@linbit.com
Date: Wed, 19 Oct 2011 16:13:19 +0200
Subject: [PATCH] The last written value is propagated.

---
 tools/attrd.c |5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

diff --git tools/attrd.c tools/attrd.c
index 83e029e..11d25a1 100644
--- tools/attrd.c
+++ tools/attrd.c
@@ -835,11 +835,10 @@ attrd_local_callback(xmlNode * msg)
 crm_debug(New value of %s is %s, attr, value);
 }
 
-stop_attrd_timer(hash_entry);
-
 if (hash_entry-timeout  0) {
-hash_entry-timer_id = g_timeout_add(hash_entry-timeout, attrd_timer_callback, hash_entry);
+/* Keep previous timeout */
 } else {
+stop_attrd_timer(hash_entry);
 attrd_trigger_update(hash_entry);
 }
 
-- 
1.7.6.3

___
Linux-HA-Dev: Linux-HA-Dev@lists.linux-ha.org
http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
Home Page: http://linux-ha.org/


Re: [Linux-ha-dev] Stonith turns node names to lowercase

2011-10-20 Thread Alan Robertson
On 10/19/2011 04:11 AM, Lars Marowsky-Bree wrote:
 On 2011-10-18T12:40:40, Florian Haasflor...@hastexo.com  wrote:

g_strdown(nodecopy);

 Is there a reason for this ?
 I suppose Dejan will accept a patch making this configurable.
 Please, no. We fence by hostname; hostnames are case insensitive by
 definition. Plugins need to handle that.
More specifically - this patch was put in to make this work in the real 
world.  In the real world, host names correspond to DNS names (or you 
will go crazy).  DNS names are case-insensitive - and that's how it is.


-- 
 Alan Robertsonal...@unix.sh

Openness is the foundation and preservative of friendship...  Let me claim 
from you at all times your undisguised opinions. - William Wilberforce
___
Linux-HA-Dev: Linux-HA-Dev@lists.linux-ha.org
http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
Home Page: http://linux-ha.org/


Re: [Linux-ha-dev] attrd and repeated changes

2011-10-20 Thread Alan Robertson
On 10/20/2011 03:41 AM, Philipp Marek wrote:
 Hello,

 when constantly sending new data via attrd the changes are never used.


 Example:
 while sleep 1
   do attrd_updater -l reboot -d 5 -n rep_chg -U try$SECONDS
   cibadmin -Ql | grep rep_chg
 done

 This always returns the same value - the one that was given with more than 5
 seconds delay afterwards, so that the dampen interval wasn't broken by the
 next change.


 I've attached two draft patches; one for allowing the _first_ value in a
 dampen interval to be used (effectively ignoring changes until this value is
 written), and one for using the _last_ value in the dampen interval (by not
 changing the dampen timer). [1]


 ***  Note: they are for discussion only!
 ***  I didn't test them, not even for compilation.


 Perhaps this bug [2] was introduced with one of these changes (the hashes
 are the GIT numbers)

  High: crmd: Bug lf#2528 - Introduce a slight delay when
creating a transition to allow attrd time to perform its updates
  e7f5da92490844d190609931f434e08c0440da0f

  Low: attrd: Indicate when attrd clients are updating fields
  69b49b93ff6fd25ac91f589d8149f2e71a5114c5


 What is the correct way to handle multiple updates within the dampen
 interval?
Personally, I'd vote for the last value.  I agree with you about this 
being a bug.


-- 
 Alan Robertsonal...@unix.sh

Openness is the foundation and preservative of friendship...  Let me claim 
from you at all times your undisguised opinions. - William Wilberforce
___
Linux-HA-Dev: Linux-HA-Dev@lists.linux-ha.org
http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
Home Page: http://linux-ha.org/