HomeClusterLabs Projects

Refactor: controller: Remove redundant failed stop/start offset globals

Description

Refactor: controller: Remove redundant failed stop/start offset globals

This is simpler and probably correct, but there is one change to be
aware of.

Previously, if the transitioner (do_te_invoke()) received a graph with a
NULL value for failed_{stop,start}_offset, it would ignore it and
continue using the controller's old global value of
failed_{stop,start}_offset. Now, if the transitioner receives such a
graph, it will behave as though the (former) global variable is NULL.

For example, say we receive a graph with failed-start-offset="1". Then
later we receive a graph with failed-start-offset unset (NULL).

  • Before: We continue using "1" as the failed_start_offset and don't modify the transition_graph global or offset global. Then controld_te_events.c:update_failcounts() uses "value++" as the update value.
  • Now: We set controld_globals.transition_graph->failed_start_offset to NULL (via pcmk__unpack_graph()). Then controld_te_events.c:update_failcounts() uses "INFINITY" as the update value.

I don't expect this to cause a problem.

  • I think we should always get an offset with our incoming transition graph.
  • If we don't get an offset, we should probably overwrite with NULL (so that we use the default), instead of reusing an old value as we used to do.

However, if we're concerned about this change, then we can store a
static variable in do_te_invoke(), and reuse the static variable if the
new graph has a NULL value.

Ref T239

Signed-off-by: Reid Wahl <nrwahl@protonmail.com>

Details

Provenance
nrwahl2Authored on Nov 14 2022, 8:19 PM
Parents
rP5c8050427b69: Refactor: libpacemaker: Add failed stop, start offsets to pcmk__graph_t
Branches
Unknown
Tags
Unknown
Tasks
Restricted Maniphest Task