Hi AndersBj,

Reviewed the patch.
Ack.

/Neel.
On Monday 22 September 2014 08:22 PM, Anders Bjornerstedt wrote:
>   osaf/services/saf/immsv/immnd/immnd_evt.c |  3 ++-
>   1 files changed, 2 insertions(+), 1 deletions(-)
>
>
> The case is where a CCB has passed validation by all involved OIs. Normally 
> the
> next step, if PBE is enabled, is to send the completed callbac to the PBE-OI.
> The PBE actually commits the ccb/sqlite-transaction in the completed callback.
>
> But in this case, the PBE has detached after the ccb has been built up, but
> before imm-ram can send the completed-callback to the PBE. In this case it is
> in princple ok for imm-ram to abort the CCB, since the PBE has not received
> any completed callback and can not have comitted this ccb to disk.
>
> But instead of complicating the ccb-state machine in ImmModel, just to 
> optimize
> an error case, the solution has been to just drop the send of completed to PBE
> and let this error case merge with the case when the message was successfully
> sent to the PBE yet the PBE restarted before replying.
>
> The problem was that continued execution in this branch implied use of
> the client node, which was missing.
>
> The solution is to goto the end of the function.
>
> 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
> @@ -3727,7 +3727,7 @@ static void immnd_evt_proc_ccb_compl_rsp
>                       if(pbeConn) {
>                               TRACE_5("PBE is LOCAL - send completed upcall 
> for %u", evt->info.ccbUpcallRsp.ccbId);
>                               /* The PBE is connected at THIS node. Make the 
> completed upcall.
> -                                If the PBE decides to commit it soes so 
> immediately.
> +                                If the PBE decides to commit it does so 
> immediately.
>                                  It does not wait for the apply upcall.
>                                */
>                               SaImmOiHandleT implHandle = 
> m_IMMSV_PACK_HANDLE(pbeConn, pbeNodeId);
> @@ -3745,6 +3745,7 @@ static void immnd_evt_proc_ccb_compl_rsp
>                                          But actually we know here that we 
> have not sent the completed call to
>                                          the pbe. This means it should be 
> easy to abort!
>                                        */
> +                                     goto done;
>                               }
>   
>                               memset(&send_evt, '\0', sizeof(IMMSV_EVT));


------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to