Hi Zoran, Reviewed and tested the patch. Ack from me.
BR, Hung Nguyen - DEK Technologies -------------------------------------------------------------------------------- From: Zoran Milinkovic [email protected] Sent: Tuesday, December 29, 2015 7:28PM To: Neelakanta Reddy [email protected] Cc: Opensaf-devel [email protected] Subject: [devel] [PATCH 1 of 1] imm: skip sending admin ops to slave PBE in 1safe2PBE mode [#1652] osaf/services/saf/immsv/immpbed/immpbe_daemon.cc | 19 +++++++++++++++---- 1 files changed, 15 insertions(+), 4 deletions(-) When PBE is running in 1safe2PBE mode, syncing admin op to the second PBE will be skipped. Adding OPENSAF_IMM_FLAG_2PBE1_ALLOW check to OPENSAF_IMM_PBE_CLASS_CREATE, OPENSAF_IMM_PBE_CLASS_DELETE and OPENSAF_IMM_PBE_UPDATE_EPOCH will skip sending unnecessary admin op to slave PBE. diff --git a/osaf/services/saf/immsv/immpbed/immpbe_daemon.cc b/osaf/services/saf/immsv/immpbed/immpbe_daemon.cc --- a/osaf/services/saf/immsv/immpbed/immpbe_daemon.cc +++ b/osaf/services/saf/immsv/immpbed/immpbe_daemon.cc @@ -244,6 +244,12 @@ static bool pbe2_start_prepare_ccb_A_to_ osafassert(sPbe2 && !sPbe2B); /* Must be 2PBE and NOT at slave. */ + if((sNoStdFlags & OPENSAF_IMM_FLAG_2PBE1_ALLOW)) { + // 2PBE is in 1safe2PBE state. Sending syncing admin op will be ignored + TRACE_LEAVE(); + return true; + } + do{ rc2B = saImmOmAdminOperationInvoke_2(sOwnerHandle, &slavePbeRtObjName, 0, OPENSAF_IMM_PBE_CCB_PREPARE, params, &slavePbeRtReply, SA_TIME_ONE_SECOND * 10); @@ -436,7 +442,9 @@ static void saImmOiAdminOperationCallbac osafassert(className.size()); - if(sPbe2 && !sPbe2B) { + if(sPbe2 && !sPbe2B && (sNoStdFlags & OPENSAF_IMM_FLAG_2PBE1_ALLOW)) { + LOG_IN("PBE is in 1safe2PBE state. Ignoring class create towards slave PBE"); + } else if(sPbe2 && !sPbe2B) { /* Primary PBE forwards class create to slave PBE. */ SaAisErrorT rc2B = SA_AIS_OK; SaNameT slavePbeRtObjName; @@ -650,7 +658,9 @@ static void saImmOiAdminOperationCallbac osafassert(className.size()); - if(sPbe2 && !sPbe2B) { + if(sPbe2 && !sPbe2B && (sNoStdFlags & OPENSAF_IMM_FLAG_2PBE1_ALLOW)) { + LOG_IN("PBE is in 1safe2PBE state. Ignoring class delete towards slave PBE"); + } else if(sPbe2 && !sPbe2B) { /* Primary PBE forwards class delete to slave PBE. */ SaAisErrorT rc2B = SA_AIS_OK; SaNameT slavePbeRtObjName; @@ -774,8 +784,9 @@ static void saImmOiAdminOperationCallbac ++ix; } while (param); - - if(sPbe2 && !sPbe2B) { + if(sPbe2 && !sPbe2B && (sNoStdFlags & OPENSAF_IMM_FLAG_2PBE1_ALLOW)) { + LOG_IN("PBE is in 1safe2PBE state. Ignoring update epoch towards slave PBE"); + } else if(sPbe2 && !sPbe2B) { /* Primary PBE forward update epoch to slave PBE. */ SaAisErrorT rc2B = SA_AIS_OK; SaNameT slavePbeRtObjName; ------------------------------------------------------------------------------ _______________________________________________ Opensaf-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/opensaf-devel ------------------------------------------------------------------------------ _______________________________________________ Opensaf-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/opensaf-devel
