Hung's analysis:

When committing a ccb, immnd loops through mutation list of that ccb and commit 
them one by one.
If the creation is committed before the modification, IMM_CREATE_LOCK flag will 
be cleared and no dangling reference is failed to be added to 
sReverseRefsNoDanglingMMap in addNewNoDanglingRefs().
Notice that items in mMutations are always sorted by object DN so the order of 
mutations to be committed depends on the object DNs.
That's why the problem only occurs in Case 2.


---

** [tickets:#1377] imm: IMM deletes object with NO_DANGLING reference**

**Status:** unassigned
**Milestone:** 4.5.2
**Created:** Fri May 29, 2015 08:45 AM UTC by Zoran Milinkovic
**Last Updated:** Fri May 29, 2015 08:45 AM UTC
**Owner:** nobody

In a certain case with bidirectional references between objects, IMM is able to 
delete object with NO_DANGLING reference from another object.

- Case 1: IMM worked as expected and rejected the deletion

<pre>
SC-1:~ # immcfg -c TestClass testClassId=1
SC-1:~ # immcfg
> immcfg -c TestClass -a reference="testClassId=1" testClassId=2
> immcfg -a reference="testClassId=2" testClassId=1
>(Ctrl+D)
{Note that the above object-create and object-modify have to occur in the same 
CCB. 
 This is to simulate the actions when creating objects with bidirectional 
associations}
SC-1:~ # immcfg -d testClassId=2
error - saImmOmCcbApply FAILED: SA_AIS_ERR_FAILED_OPERATION (21)
SC-1:~ # immcfg -d testClassId=1
error - saImmOmCcbApply FAILED: SA_AIS_ERR_FAILED_OPERATION (21)
SC-1:~ #
</pre>

*syslog messages*
..........
May 27 04:01:48 SC-1 osafimmnd[4671]: ER ERR_FAILED_OPERATION: Delete of object 
testClassId=2 would violate NO_DANGLING reference from object testClassId=1, 
not scheduled for delete by this Ccb:58
May 27 04:01:48 SC-1 osafimmnd[4671]: NO Ccb 58 ABORTED (immcfg_SC-1_13712)
May 27 04:01:51 SC-1 osafimmnd[4671]: ER ERR_FAILED_OPERATION: Delete of object 
testClassId=1 would violate NO_DANGLING reference from object testClassId=2, 
not scheduled for delete by this Ccb:59
May 27 04:01:51 SC-1 osafimmnd[4671]: NO Ccb 59 ABORTED (immcfg_SC-1_13715)
..........

- Case 2: IMM worked unexpectedly and approved the deletion

<pre>
SC-1:~ # immcfg -c TestClass testClassId=2
SC-1:~ # immcfg
> immcfg -c TestClass -a reference="testClassId=2" testClassId=1
> immcfg -a reference="testClassId=1" testClassId=2
> (Ctrl+D) 
{Note that the above object-create and object-modify have to occur in the same 
CCB. 
 This is to simulate the actions when creating objects with bidirectional 
associations} 
SC-1:~ # immcfg -d testClassId=1
SC-1:~ # immfind | grep testClass
testClassId=2
SC-1:~ #
</pre>

*syslog messages*
..........
May 27 04:20:58 SC-1 osafimmnd[4671]: NO Ccb 73 COMMITTED (immcfg_SC-1_14511)
..........



---

Sent from sourceforge.net because opensaf-tickets@lists.sourceforge.net 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
Opensaf-tickets@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-tickets

Reply via email to