Hi Lennart, all, Thanks for your explanation. I would like to update the patch by adding an explanation at the beginning of lgs_mbcsv.c and remove my incorrect comments. File is attached.
Version 3 checking is already removed in the patch. @all: Please have a look and give your comments if any.. md5sum: e22b13a7ea3f0cbacfaf921ce7a55b55 lgs_ckpt_1459_r1b.patch Regards, Vu >-----Original Message----- >From: Lennart Lund [mailto:[email protected]] >Sent: Tuesday, September 08, 2015 6:02 PM >To: Vu Nguyen M; [email protected]; Giang Do T >Cc: [email protected] >Subject: RE: [PATCH 1 of 1] log: Log server crash if SC nodes is not of same >chkpt version [#1459] > >Hi Vu > >If possible remove version 3 checking entirely, see my previous mail > >Thanks >Lennart > >-----Original Message----- >From: Vu Minh Nguyen [mailto:[email protected]] >Sent: den 8 september 2015 09:48 >To: [email protected]; Lennart Lund; Giang Do T >Cc: [email protected] >Subject: [PATCH 1 of 1] log: Log server crash if SC nodes is not of same chkpt >version [#1459] > > osaf/services/saf/logsv/lgs/lgs_mbcsv.c | 20 ++++++++++---------- > tests/logsv/README | 32 ++++++++++++++++++++++++++++++++ > 2 files changed, 42 insertions(+), 10 deletions(-) > > >Fix incorrect handling of version 3/4 checkpoint handling > >diff --git a/osaf/services/saf/logsv/lgs/lgs_mbcsv.c >b/osaf/services/saf/logsv/lgs/lgs_mbcsv.c >--- a/osaf/services/saf/logsv/lgs/lgs_mbcsv.c >+++ b/osaf/services/saf/logsv/lgs/lgs_mbcsv.c >@@ -782,7 +782,7 @@ static uint32_t ckpt_encode_async_update > data_v3 = (lgsv_ckpt_msg_v3_t *)(long)cbk_arg- >>info.encode.io_reo_hdl; > vdata = data_v3; > edp_function = edp_ed_ckpt_msg_v3; >- } else if (lgs_is_peer_v2()) { >+ } else if (lgs_is_peer_v2()) { /* Checkpoint version 2/3 is the same >*/ > data_v2 = (lgsv_ckpt_msg_v2_t *)(long)cbk_arg- >>info.encode.io_reo_hdl; > vdata = data_v2; > edp_function = edp_ed_ckpt_msg_v2; >@@ -1098,7 +1098,7 @@ static uint32_t ckpt_decode_log_cfg(lgs_ > ckpt_msg_v3 = ckpt_msg; > lgs_cfg = &ckpt_msg_v3->ckpt_rec.lgs_cfg; > edp_function = edp_ed_lgs_cfg_rec_v3; >- } else if (lgs_is_peer_v2()) { >+ } else if (lgs_is_peer_v2()) { /* Checkpoint version 2/3 is the same >*/ > ckpt_msg_v2 = ckpt_msg; > lgs_cfg = &ckpt_msg_v2->ckpt_rec.lgs_cfg; > edp_function = edp_ed_lgs_cfg_rec_v2; @@ -1151,10 +1151,10 >@@ static uint32_t ckpt_decode_async_update > if (lgs_is_peer_v5()) { > ckpt_msg_v5->header = hdr; > ckpt_msg = ckpt_msg_v5; >- } else if (lgs_is_peer_v4() && (hdr_ptr->ckpt_rec_type == >LGS_CKPT_LGS_CFG_V3)) { >+ } else if (lgs_is_peer_v4()) { > ckpt_msg_v3->header = hdr; > ckpt_msg = ckpt_msg_v3; >- } else if (lgs_is_peer_v2()) { >+ } else if (lgs_is_peer_v2()) { /* Checkpoint version 2/3 is the same >+*/ > ckpt_msg_v2->header = hdr; > ckpt_msg = ckpt_msg_v2; > } else { >@@ -1168,9 +1168,9 @@ static uint32_t ckpt_decode_async_update > TRACE_2("\tINITIALIZE REC: UPDATE"); > if (lgs_is_peer_v5()) { > reg_rec = &ckpt_msg_v5->ckpt_rec.initialize_client; >- } else if (lgs_is_peer_v3()) { >+ } else if (lgs_is_peer_v4()) { > reg_rec = &ckpt_msg_v3->ckpt_rec.initialize_client; >- } else if (lgs_is_peer_v2()) { >+ } else if (lgs_is_peer_v2()) { /* Checkpoint version 2/3 is the >same >+*/ > reg_rec = &ckpt_msg_v2->ckpt_rec.initialize_client; > } else { > reg_rec = &ckpt_msg_v1->ckpt_rec.initialize_client; >@@ -1193,9 +1193,9 @@ static uint32_t ckpt_decode_async_update > TRACE_2("\tSTREAM OPEN: UPDATE"); > if (lgs_is_peer_v5()) { > stream_open = &ckpt_msg_v5->ckpt_rec.stream_open; >- } else if (lgs_is_peer_v3()) { >+ } else if (lgs_is_peer_v4()) { > stream_open = &ckpt_msg_v3->ckpt_rec.stream_open; >- } else if (lgs_is_peer_v2()) { >+ } else if (lgs_is_peer_v2()) { /* Checkpoint version 2/3 is the >same >+*/ > stream_open = &ckpt_msg_v2->ckpt_rec.stream_open; > } else { > stream_open = &ckpt_msg_v1->ckpt_rec.stream_open; >@@ -1449,7 +1449,7 @@ static uint32_t process_ckpt_data(lgs_cb > } else if (lgs_is_peer_v4()) { > data_v3 = data; > lgsv_ckpt_msg_type = data_v3->header.ckpt_rec_type; >- } else if (lgs_is_peer_v2()) { >+ } else if (lgs_is_peer_v2()) { /* Checkpoint version 2/3 is the same >+*/ > data_v2 = data; > lgsv_ckpt_msg_type = data_v2->header.ckpt_rec_type; > } else { >@@ -2182,7 +2182,7 @@ uint32_t lgs_ckpt_send_async(lgs_cb_t *c > } else if (lgs_is_peer_v4()) { > lgsv_ckpt_msg_v3_t *ckpt_rec_v3 = ckpt_rec; > ckpt_rec_type = ckpt_rec_v3->header.ckpt_rec_type; >- } else if (lgs_is_peer_v2()) { >+ } else if (lgs_is_peer_v2()) { /* Checkpoint version 2/3 is the same >+*/ > lgsv_ckpt_msg_v2_t *ckpt_rec_v2 = ckpt_rec; > ckpt_rec_type = ckpt_rec_v2->header.ckpt_rec_type; > } else { >diff --git a/tests/logsv/README b/tests/logsv/README >--- a/tests/logsv/README >+++ b/tests/logsv/README >@@ -10,3 +10,35 @@ The second TC tries to set the data grou In order to help >the TC passed, "log-data" group must be existing and be added to >supplementary group list of the user as which LOGSV is running. > Otherwise that TC will be skipped. >+ >+ >+SET UP A CLUSTER 02 NODES WITH DIFFERENT CKPT VERSIONS >+------------------------------------------------------ >+There was issue when two nodes runs with different ckpt versions. >+Ticket #1459 is an example. How to setup this on UML? >+ >+Here is guideline for environment preparing for the case active logsv >+with version #5, standby logsv with version #4. >+ >+1. Create 02 separate folders, one refers to branch 5.0.x (folder A), >+ other one refers to 4.6.x branch (folder B). >+ >+2. Build OpenSAF and UML for them (refer to Wiki) >+ >+3. Open 2 terminals. On each one, change directory to >+../tools/cluster_sim_uml >+ >+4. Start active node SC-1 with logsv version #5. >+ cluster_sim_uml> ./opensaf nodestart 1 >+ >+5. Start standby node SC-2 with logsv version #4 >+ cluster_sim_uml> ./opensaf nodestart 2 >+ >+6. Wait for seconds to make sure all OpenSAF services come up. >+ >+7. Run test by `logtest` app with no option. >+ >+8. Observe both nodes if there is any issue (e.g: node is rebooted) >+ >+If want to test the case active logsv version #4, standby logsv version #5, >reboot above SC-1 (swithover). >+ >+
lgs_ckpt_1459_r1b.patch
Description: Binary data
------------------------------------------------------------------------------
_______________________________________________ Opensaf-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/opensaf-devel
