I am currently working on ticket #1057 which displays a set of 2PBE issues.
But I dont see how any of those issues could lead to BAD_OPERATION ?

I see in the ticket one case where ClassImplementerSet gets error code 9, which
is BAD_HANLDE  not BAD_OPERATION.

Do you really mean BAD_OPERATION ?
That error code for saImmOiClassImplementerSet has only one meaning/case:
The class-name is a runtime-class, not a config-class. 

/AndersBj

-----Original Message-----
From: [email protected] [mailto:[email protected]] 
Sent: den 12 september 2014 21:05
To: [email protected]
Cc: [email protected]
Subject: [devel] [PATCH 1 of 1] clm: imm reinit mechanism shall check for 
impl_set flag in BAD_OPER scenarios [#1067]

 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

------------------------------------------------------------------------------
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

Reply via email to