Hi Thang,

ACK from me.

Best Regards,
Thien

-----Original Message-----
From: Thang Duc Nguyen <thang.d.ngu...@dektech.com.au> 
Sent: Friday, October 8, 2021 8:28 AM
To: Thien Minh Huynh <thien.m.hu...@dektech.com.au>; Thanh Nguyen 
<thanh.ngu...@dektech.com.au>; Hieu Hong Hoang <hieu.h.ho...@dektech.com.au>
Cc: opensaf-devel@lists.sourceforge.net; Thang Duc Nguyen 
<thang.d.ngu...@dektech.com.au>
Subject: [PATCH 1/1] smf: correct merge bundle rolling to single step [#3290]

In mergeBundleRefRollingToSingleStep(), one alias is used to store m_swAddList 
then it is reused to store m_swRemoveList.
So it causes the data in m_swAddList overwritten.

The fix is to separate alias to store them.
---
 src/smf/smfd/SmfUpgradeProcedure.cc | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/smf/smfd/SmfUpgradeProcedure.cc 
b/src/smf/smfd/SmfUpgradeProcedure.cc
index 56af4a6ae..f8aac815c 100644
--- a/src/smf/smfd/SmfUpgradeProcedure.cc
+++ b/src/smf/smfd/SmfUpgradeProcedure.cc
@@ -1589,8 +1589,8 @@ bool 
SmfUpgradeProcedure::mergeBundleRefRollingToSingleStep(
   // Add the old steps AMF node to the plmExecEnv of the bundle ref to make it
   // install on the right node/nodes.
 
-  std::list<SmfBundleRef> &bundlesOldStep = i_oldStep->getSwAddList();
-  for (auto &oldStepBundleIter : bundlesOldStep) {
+  std::list<SmfBundleRef> &bundlesOldSwAddStep = 
+ i_oldStep->getSwAddList();  for (auto &oldStepBundleIter : 
+ bundlesOldSwAddStep) {
     // Read the list of already saved bundles, if already exist only add the 
new
     // swNode to the existing bundle
     std::list<SmfBundleRef> &bundlesNewStep = io_newStep->getSwAddList(); @@ 
-1628,8 +1628,9 @@ bool SmfUpgradeProcedure::mergeBundleRefRollingToSingleStep(
 
   LOG_NO(
       "Merge SwRemoveLists from the rolling steps into a single step bundle 
list");
-  bundlesOldStep = i_oldStep->getSwRemoveList();
-  for (auto &oldStepBundleElem : bundlesOldStep) {
+  std::list<SmfBundleRef> &bundlesOldSwRemoveStep =
+    i_oldStep->getSwRemoveList();
+  for (auto &oldStepBundleElem : bundlesOldSwRemoveStep) {
     // Read the list of already saved bundles, if already exist only add the 
new
     // swNode to the existing bundle
     std::list<SmfBundleRef> &bundlesNewStep = io_newStep->getSwRemoveList();
--
2.25.1



_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to