---

** [tickets:#1202] IMM: Local immnd crashes on assert in executing 
saImmOiObjectImplementerSet**

**Status:** assigned
**Milestone:** 4.4.2
**Created:** Wed Nov 05, 2014 09:47 AM UTC by Anders Bjornerstedt
**Last Updated:** Wed Nov 05, 2014 09:47 AM UTC
**Owner:** Anders Bjornerstedt


>From syslog:

 2014-10-28 15:16:27 SystemEvent osafimmnd SC-2-1 err osafimmnd[8813]:
  immnd_evt.c:3178: immnd_fevs_local_checks: Assertion 'error != SA_AIS_OK' 
  failed.

This assertion is in immnd_evt.c in function immnd_fevs_local_checks at:
 -----------------------------------
        case IMMND_EVT_A2ND_OI_OBJ_IMPL_SET:

                if(fevsReq->sender_count != 0x1) {
                        LOG_WA("ERR_LIBRARY: IMMND_EVT_A2ND_OI_OBJ_IMPL_SET 
fevsReq->sender_count != 0x1");
                        error = SA_AIS_ERR_LIBRARY;
                } else  if(immModel_immNotWritable(cb)) {// sync is on-going
                        SaUint32T ccbId=0;
                        error = immModel_objectImplementerSet(cb, 
&(frwrd_evt.info.immnd.info.implSet), conn,
                                nodeId, &ccbId);
                        osafassert(error != SA_AIS_OK); <======
                  /* OK is impossible since we are not writable */ 

 -----------------------------------------------------------

Analyzing the code executed below immModel_objectImplementerSet() it appears
that this case can happen if the objectImplementerSet is done incrementally
over several objects in a tree, bottom up.

The more efficent way to set object implementer over a tree of objects would
be to set it for the root object, with scope SA_IMM_SUBTREE. This would result
in the same object implementer being set for the tree (cascading).

If *different* objects in the tree are to have different object imeplementers
then care would be needed to set implementer on each object using the scope
argument to saImmOiObjectimplementerSet to SA_IMM_ONE to avoid cascading.

This incident appears however to be triggered by a cascading variant, where 
for some reason a sub-object has alrady had object-implementer-set to the 
same implementer.

So it is a case of an inefficient, but not an incorrect, implementation by the
application. Combined with a sync ocurring in the midle of such an operation.



---

Sent from sourceforge.net because [email protected] is 
subscribed to https://sourceforge.net/p/opensaf/tickets/

To unsubscribe from further messages, a project admin can change settings at 
https://sourceforge.net/p/opensaf/admin/tickets/options.  Or, if this is a 
mailing list, you can unsubscribe from the mailing list.
------------------------------------------------------------------------------
_______________________________________________
Opensaf-tickets mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-tickets

Reply via email to