Hi Andrew, > 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
Okay! I confirm movement. Many Thanks! Hideo Yamauchi. --- On Wed, 2014/5/28, Andrew Beekhof <and...@beekhof.net> wrote: > > 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 > > > > _______________________________________________ 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