Hi Vu, See my comments below:
Thanks Lennart -----Original Message----- From: Vu Minh Nguyen [mailto:[email protected]] Sent: den 22 september 2015 04:51 To: Lennart Lund; [email protected] Cc: [email protected] Subject: RE: [devel] [PATCH 1 of 1] log: Rt obj for showing service config is not created during upgrade [#1491] Hi Lennart, When switch-over, seems that the standby logsv gets "rda callback" first, then logsv does change "ha_state" in the callback. In that case, when getting 'active assignement' from AMF, the job 'create conf runtime obj' could be ignored as HA state is already changed. [Lennart] Switch over will work. In this case conf_runtime_obj_create() will be called. When AMF is started during cluster start we get an active assignment while already active but in this case conf_runtime_obj_create() is called during log service init. If failover conf_runtime_obj_create() is not called because we are already active. The problem with a missing Rt object can only occur when upgrading from a log version that does not support Rt object to a version that does. The upgrade sequence is: - Create the OpenSafLogCurrentConfig class - Update log service on standby - Switch over (Rt object will be created) - Upgrade log service on new standby So, in my opinion, we should add ` conf_runtime_obj_create()` in `imm_impl_restore_thread()` too. [Lennart] This I actually agree with but not as a solution for not running active handler. If there is something wrong with IMM and we get BAD HANDLE when trying to create the Rt object there will be no more attempts to do so and we will not have any until a switch over is done or the cluster is restarted. Regards, Vu >-----Original Message----- >From: Lennart Lund [mailto:[email protected]] >Sent: Monday, September 21, 2015 7:04 PM >To: [email protected] >Cc: [email protected] >Subject: [devel] [PATCH 1 of 1] log: Rt obj for showing service config is not >created during upgrade [#1491] > > osaf/services/saf/logsv/lgs/lgs_amf.c | 7 ++++++- > 1 files changed, 6 insertions(+), 1 deletions(-) > > >Server running on standby shall create the runtime object for showing >log service configuration if not exist > >diff --git a/osaf/services/saf/logsv/lgs/lgs_amf.c >b/osaf/services/saf/logsv/lgs/lgs_amf.c >--- a/osaf/services/saf/logsv/lgs/lgs_amf.c >+++ b/osaf/services/saf/logsv/lgs/lgs_amf.c >@@ -78,13 +78,18 @@ static SaAisErrorT amf_active_state_hand > LOG_ER("saImmOiClassImplementerSet (SaLogStreamConfig) >failed: %d", error); > goto done; > } >- /* Do this only if the class exists */ >+ /* Do this only if the log service configuration class exists */ > if (*(bool*) >lgs_cfg_get(LGS_IMM_LOG_OPENSAFLOGCONFIG_CLASS_EXIST)) { > if ((error = immutil_saImmOiClassImplementerSet(cb- >>immOiHandle, "OpenSafLogConfig")) > != SA_AIS_OK) { > LOG_ER("saImmOiClassImplementerSet >(OpenSafLogConfig) failed: %d", error); > goto done; > } >+ >+ /* Create a log service configuration runtime object if the >+ * configuration runtime class exist and no object exist >+ */ >+ conf_runtime_obj_create(cb->immOiHandle); > } > > /* check existing streams */ > >--------------------------------------------------------------------------- --- >_______________________________________________ >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
