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