osaf/services/saf/clmsv/clms/clms_imm.c | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)
It is possible that IMM (probably because of 1057) returns BAD_OPER.
This requires hardening of the CLM imm reinit mechanism when error such as
BAD_OPER is returned.
As a part of admin-state updates, clm need to check for impl_set flag before
attempting rtobject update.
diff --git a/osaf/services/saf/clmsv/clms/clms_imm.c
b/osaf/services/saf/clmsv/clms/clms_imm.c
--- a/osaf/services/saf/clmsv/clms/clms_imm.c
+++ b/osaf/services/saf/clmsv/clms/clms_imm.c
@@ -449,12 +449,20 @@ void clms_admin_state_update_rattr(CLMS_
TRACE_ENTER2("Admin state %d update for node %s", nd->admin_state,
nd->node_name.value);
CLMS_CLUSTER_NODE *node = NULL;
- /* If this update was attempted was for a node down and as a part of
try-again-later, then
+ /* If this update being attempted was for a node down and as a part of
try-again-later, then
* we need to lookup using name, because the node_id record would
* have been deleted as a part of node down processing
*/
osafassert((node = clms_node_get_by_name(&nd->node_name)));
+ if (clms_cb->is_impl_set == false) {
+ TRACE("Implementer not yet set: Switching on the tryagain
flag");
+ node->rtu_pending = true;
+ clms_cb->rtu_pending = true;
+ TRACE_LEAVE();
+ return;
+ }
+
SaImmAttrValueT attrUpdateValue[] = { &nd->admin_state };
const SaImmAttrModificationT_2 *attrMods[] = {
&attr_Mod[0],
------------------------------------------------------------------------------
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel