When all procedures executed, the complete action invokes and clean/remove versioned types. At the time commit campaign, reboot active SC to test robustness of SMF. Standby SC takes active role, SMFD on new active start procedure threads and it failed in addStepModifications due to these versioned types deleted in complete action steps.
In this case, SMFD should ignore these types if the campaign is in completed state. --- src/smf/smfd/SmfUpgradeProcedure.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/smf/smfd/SmfUpgradeProcedure.cc b/src/smf/smfd/SmfUpgradeProcedure.cc index dfe98536e..56af4a6ae 100644 --- a/src/smf/smfd/SmfUpgradeProcedure.cc +++ b/src/smf/smfd/SmfUpgradeProcedure.cc @@ -1993,9 +1993,11 @@ bool SmfUpgradeProcedure::addStepModifications( // fail if the reboot is performed when the versioned types are removed i.e. // during test traffic, if the types was removed in campaign wrapup/complete // section. - SmfUpgradeCampaign *ucamp = - SmfCampaignThread::instance()->campaign()->getUpgradeCampaign(); - if (ucamp->getProcExecutionMode() != SMF_BALANCED_MODE) { + SmfCampaign* camp = SmfCampaignThread::instance()->campaign(); + SmfUpgradeCampaign *ucamp = camp->getUpgradeCampaign(); + + if ((ucamp->getProcExecutionMode() != SMF_BALANCED_MODE) || + (camp->getState() == SA_SMF_CMPG_EXECUTION_COMPLETED)) { // getImmStepsSingleStep handles this case for balanced mode if (getState() == SA_SMF_PROC_COMPLETED) { TRACE("Procedure is completed, skipping addStepModifications"); -- 2.25.1 _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel