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