Ack from me.

/AndersBj

On 04/17/2015 03:25 PM, [email protected] wrote:
>   osaf/services/saf/immsv/immnd/ImmModel.cc |   9 ++-------
>   osaf/services/saf/immsv/immnd/immnd_evt.c |  18 ++++++------------
>   2 files changed, 8 insertions(+), 19 deletions(-)
>
>
> If an CCB is aborted, and the ERR_FAILED_OPERATION is returned to the client.
>
> 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
> @@ -5629,10 +5629,8 @@ ImmModel::ccbAbort(SaUint32T ccbId, Conn
>           }
>       }
>   
> -    if (ccb->mVeto == SA_AIS_ERR_TIMEOUT) {
> -        *nodeId = ccb->mOriginatingNode;
> -        *client = ccb->mOriginatingConn;
> -    }
> +    *nodeId = ccb->mOriginatingNode;
> +    *client = ccb->mOriginatingConn;
>   
>       ccb->mState = IMM_CCB_ABORTED;
>       ccb->mVeto = SA_AIS_ERR_FAILED_OPERATION;
> @@ -12502,11 +12500,8 @@ ImmModel::cleanTheBasement(InvocVector&
>                           (*i3)->mPbeRestartId, (*i3)->mId);
>                   } else if(now - (*i3)->mWaitStartTime >= 
> (int)max_oi_timeout) {
>                       oi_timeout = 0;
> -                    (*i3)->mVeto = SA_AIS_ERR_TIMEOUT;
>                       TRACE_5("CCB %u timeout while waiting on implementer 
> reply",
>                           (*i3)->mId);
> -                    setCcbErrorString(*i3, "Resource Error: CCB timeout 
> while "
> -                         "waiting on implementer reply");
>                   }
>   
>                   if((*i3)->mState == IMM_CCB_CRITICAL) {
> diff --git a/osaf/services/saf/immsv/immnd/immnd_evt.c 
> b/osaf/services/saf/immsv/immnd/immnd_evt.c
> --- a/osaf/services/saf/immsv/immnd/immnd_evt.c
> +++ b/osaf/services/saf/immsv/immnd/immnd_evt.c
> @@ -6620,8 +6620,9 @@ static void immnd_evt_ccb_abort(IMMND_CB
>               dummyClient = 0; /* dont reply to client here*/
>       }
>   
> -        if (nodeId) {
> +        if (nodeId && cb->node_id == dummynodeId) {
>                   *nodeId = dummynodeId;
> +             TRACE_2("ccb:%u is originated from this node", ccbId);
>           }
>   
>       if (arrSize) {
> @@ -7350,10 +7351,9 @@ static void immnd_evt_proc_ccb_finalize(
>       osafassert(evt);
>       immnd_evt_ccb_abort(cb, evt->info.ccbId, &client, &nodeId);
>   
> -     if (nodeId && err == SA_AIS_OK) {
> -             /* nodeId will be set only when OI ccb timeout happens. An OI 
> timeout on
> -                a ccb callback will always abort the CCB. so, any reply 
> forwarded towards
> -                the OM CCB client should be an ERR_FAILED_OPERATION and not 
> ERR_TIMEOUT.
> +     if (nodeId && err == SA_AIS_OK && !originatedAtThisNd) {
> +             /* nodeId will be set when CCB is originated from this node.The 
> CCB is aborted,
> +                and the error response forwarded to client will be 
> ERR_FAILED_OPERATION.
>               */
>   
>               originatedAtThisNd = SA_TRUE;
> @@ -7382,13 +7382,7 @@ static void immnd_evt_proc_ccb_finalize(
>               memset(&send_evt, '\0', sizeof(IMMSV_EVT));
>   
>               send_evt.type = IMMSV_EVT_TYPE_IMMA;
> -             send_evt.info.imma.info.errRsp.errStrings = 
> immModel_ccbGrabErrStrings(cb, evt->info.ccbId);
> -             if(send_evt.info.imma.info.errRsp.errStrings) {
> -                     send_evt.info.imma.type = IMMA_EVT_ND2A_IMM_ERROR_2;
> -             } else {
> -                     send_evt.info.imma.type = IMMA_EVT_ND2A_IMM_ERROR;
> -             }
> -
> +             send_evt.info.imma.type = IMMA_EVT_ND2A_IMM_ERROR;
>               send_evt.info.imma.info.errRsp.error = err;
>   
>               TRACE_2("SENDRSP %u", err);


------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to