On 28 May 2014, at 4:10 pm, Andrew Beekhof <and...@beekhof.net> wrote:

> 
> On 28 May 2014, at 3:04 pm, renayama19661...@ybb.ne.jp wrote:
> 
>> Hi Andrew,
>> 
>>>> I'd expect that block to hit this clause though:
>>>> 
>>>>     } else if(mainloop_timer_running(a->timer)) {
>>>>        crm_info("Write out of '%s' delayed: timer is running", a->id);
>>>>        return;
>>> 
>>> Which point of the source code does the suggested code mentioned above 
>>> revise?
>>> (Which line of the source code is it?)
>> 
>> Is it the next cord that you pointed?
> 
> right
> 
>> 
>> void
>> write_attribute(attribute_t *a)
>> {
>>   int updates = 0;
>> (snip)
>>   } else if(mainloop_timer_running(a->timer)) {
>>       crm_info("Write out of '%s' delayed: timer is running", a->id);
>>       return;
>>   }
>> (snip)
>> 
>> At the time of phenomenon of the problem, the timer does not yet block it by 
>> this processing because it does not start.
> 
> Thats the curious part

Perhaps try:

diff --git a/attrd/commands.c b/attrd/commands.c
index 7f1b4b0..7342e23 100644
--- a/attrd/commands.c
+++ b/attrd/commands.c
@@ -464,6 +464,15 @@ attrd_peer_update(crm_node_t *peer, xmlNode *xml, bool 
filter)
 
     a->changed |= changed;
 
+    if(changed) {
+        if(a->timer) {
+            crm_trace("Delayed write out (%dms) for %s", a->timeout_ms, a->id);
+            mainloop_timer_start(a->timer);
+        } else {
+            write_or_elect_attribute(a);
+        }
+    }
+
     /* this only involves cluster nodes. */
     if(v->nodeid == 0 && (v->is_remote == FALSE)) {
         if(crm_element_value_int(xml, F_ATTRD_HOST_ID, (int*)&v->nodeid) == 0) 
{
@@ -476,15 +485,6 @@ attrd_peer_update(crm_node_t *peer, xmlNode *xml, bool 
filter)
             }
         }
     }
-
-    if(changed) {
-        if(a->timer) {
-            crm_trace("Delayed write out (%dms) for %s", a->timeout_ms, a->id);
-            mainloop_timer_start(a->timer);
-        } else {
-            write_or_elect_attribute(a);
-        }
-    }
 }
 
 void



Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

_______________________________________________
Pacemaker mailing list: Pacemaker@oss.clusterlabs.org
http://oss.clusterlabs.org/mailman/listinfo/pacemaker

Project Home: http://www.clusterlabs.org
Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
Bugs: http://bugs.clusterlabs.org

Reply via email to