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

Reply via email to