[Pacemaker] [Problem] The "dampen" parameter of the attrd_updater command is ignored, and an attribute is updated.
renayama19661014 at ybb.ne.jp
renayama19661014 at ybb.ne.jp
Wed May 28 08:36:30 CEST 2014
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 <andrew at beekhof.net> wrote:
>
> On 28 May 2014, at 4:10 pm, Andrew Beekhof <andrew at beekhof.net> wrote:
>
> >
> > On 28 May 2014, at 3:04 pm, renayama19661014 at 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
>
>
>
>
More information about the Pacemaker
mailing list