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