Hi Anders,
Just realized, there is a problem in below patch.
The problem with the floated patch is in ImmModel::discardImplementer,
the value passed for reallyDiscard is false for
immnd_proc_imma_discard_connection which is used at the time of
Oifinalize . Because of this info->mDying is set to true.
The patch should have been:
diff --git a/osaf/services/saf/immsv/immnd/ImmModel.cc
b/osaf/services/saf/immsv/immnd/ImmModel.cc
--- a/osaf/services/saf/immsv/immnd/ImmModel.cc
+++ b/osaf/services/saf/immsv/immnd/ImmModel.cc
@@ -1508,6 +1508,7 @@ immModel_implIsFree(IMMND_CB *cb, const
if(!impl) {return SA_AIS_OK;}
if(impl->mId == 0) {return SA_AIS_OK;}
+ if(impl->mDying) {return SA_AIS_ERR_TRY_AGAIN;}
return SA_AIS_ERR_EXIST;
}
/Neel.
On Thursday 04 September 2014 05:37 PM, Anders Bjornerstedt wrote:
> Ack from me with the nano-optimization suggested below
>
> [email protected] wrote:
>> osaf/services/saf/immsv/immnd/ImmModel.cc | 1 +
>> 1 files changed, 1 insertions(+), 0 deletions(-)
>>
>>
>> At the time of OIfinalizing of the OI handle, An FEVS message is sent
>> to clear the implementer. A FEVs message is sent from local IMMND to
>> active IMMD and active IMMD broadcast the message to all IMMND.
>> Before the broadcast FEVS message arrived from IMMD, the AMFD tries
>> to set the implementer again with the same name and ERR_EXISTS is
>> returned.
>>
>> if the implementer is not yet discarded and marked as not-dying (this
>> is because the implementer set is arrived before clearing it in
>> IMMNDs,) then TRY_AGAIN will be returned.
>>
>> diff --git a/osaf/services/saf/immsv/immnd/ImmModel.cc
>> b/osaf/services/saf/immsv/immnd/ImmModel.cc
>> --- a/osaf/services/saf/immsv/immnd/ImmModel.cc
>> +++ b/osaf/services/saf/immsv/immnd/ImmModel.cc
>> @@ -1508,6 +1508,7 @@ immModel_implIsFree(IMMND_CB *cb, const
>> if(!impl) {return SA_AIS_OK;}
>>
>> if(impl->mId == 0) {return SA_AIS_OK;}
>> + if(impl->mId && !impl->mDying) {return SA_AIS_ERR_TRY_AGAIN;
> If impl->mId is zero then the previous if statement would have
> returned OK from the function.
> So this new if statement does not really need to check that impl->mId
> is not zero.
>
> /AndersBj
>>
>> return SA_AIS_ERR_EXIST;
>> }
>
------------------------------------------------------------------------------
Slashdot TV.
Video for Nerds. Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel