Appreciate the catch and the patch !!!

Ack for this. 

You can push it. We are running some tests and would report if any problem pops 
out because of assert.

Thanks
-Nagu

> -----Original Message-----
> From: Hans Feldt [mailto:[email protected]]
> Sent: 17 September 2014 17:47
> To: Nagendra Kumar
> Cc: [email protected]
> Subject: [PATCH 1 of 1] amfd: fix nway assign algorithm [#949]
> 
>  osaf/services/saf/amf/amfd/sg_nway_fsm.cc |  3 +++
>  osaf/services/saf/amf/amfd/su.cc          |  2 ++
>  2 files changed, 5 insertions(+), 0 deletions(-)
> 
> 
> In Nway SUs can be assigned more SIs then configured via
> saAmfSGMaxActiveSIsperSU.
> 
> This is a regression and the problem was introduced in:
> changeset:   5393:cd62d4031f1a
> 
> diff --git a/osaf/services/saf/amf/amfd/sg_nway_fsm.cc
> b/osaf/services/saf/amf/amfd/sg_nway_fsm.cc
> --- a/osaf/services/saf/amf/amfd/sg_nway_fsm.cc
> +++ b/osaf/services/saf/amf/amfd/sg_nway_fsm.cc
> @@ -1302,6 +1302,9 @@ uint32_t avd_sg_nway_si_assign(AVD_CL_CB
>                       TRACE_1("SI fully assigned, next SI");
>                       continue;
>               }
> +
> +             curr_su = NULL;
> +
>               /* we've an unassigned si.. find su for active assignment */
>               /* first, scan based on su rank for this si */
>               for (std::map<std::pair<std::string, uint32_t>,
> AVD_SUS_PER_SI_RANK*>::const_iterator
> diff --git a/osaf/services/saf/amf/amfd/su.cc
> b/osaf/services/saf/amf/amfd/su.cc
> --- a/osaf/services/saf/amf/amfd/su.cc
> +++ b/osaf/services/saf/amf/amfd/su.cc
> @@ -1781,6 +1781,7 @@ static void su_ccb_apply_cb(CcbUtilOpera
> 
>  void AVD_SU::inc_curr_act_si() {
>       saAmfSUNumCurrActiveSIs++;
> +     osafassert(saAmfSUNumCurrActiveSIs <= sg_of_su-
> >saAmfSGMaxActiveSIsperSU);
>       TRACE("%s saAmfSUNumCurrActiveSIs=%u", name.value,
>               saAmfSUNumCurrActiveSIs);
>       m_AVSV_SEND_CKPT_UPDT_ASYNC_UPDT(avd_cb, this,
> AVSV_CKPT_SU_SI_CURR_ACTIVE);
> @@ -1796,6 +1797,7 @@ void AVD_SU::dec_curr_act_si() {
> 
>  void AVD_SU::inc_curr_stdby_si() {
>       saAmfSUNumCurrStandbySIs++;
> +     osafassert(saAmfSUNumCurrStandbySIs <= sg_of_su-
> >saAmfSGMaxStandbySIsperSU);
>       TRACE("%s saAmfSUNumCurrStandbySIs=%u", name.value,
>               saAmfSUNumCurrStandbySIs);
>       m_AVSV_SEND_CKPT_UPDT_ASYNC_UPDT(avd_cb, this,
> AVSV_CKPT_SU_SI_CURR_STBY);

------------------------------------------------------------------------------
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to