Hi Canh ACK with comments See comments inline [Lennart]
Thanks Lennart > -----Original Message----- > From: Canh Truong [mailto:canh.v.tru...@dektech.com.au] > Sent: den 4 augusti 2016 13:25 > To: Lennart Lund <lennart.l...@ericsson.com>; 'A V Mahesh' > <mahesh.va...@oracle.com>; Vu Minh Nguyen > <vu.m.ngu...@dektech.com.au> > Cc: opensaf-devel@lists.sourceforge.net > Subject: RE: [PATCH 1 of 1] log: fix issue with priority of messages adding to > mailbox in the server[1396] > > Hi Lennart, > > I'd like to send to you latest patch that shall be reviewed. > > Thanks, > Canh. > > -----Original Message----- > From: Lennart Lund [mailto:lennart.l...@ericsson.com] > Sent: Thursday, August 04, 2016 5:38 PM > To: A V Mahesh; Canh Van Truong; Vu Minh Nguyen > Cc: opensaf-devel@lists.sourceforge.net > Subject: RE: [PATCH 1 of 1] log: fix issue with priority of messages adding to > mailbox in the server[1396] > > Hi Canh > > My comments are very old, October 2015 and they are mostly about list > handling (see attached mail). Since then the log server has been refactored > to C++ so C++ tools for lists can be used. > There seems to be a lot of mail conversations with included patches etc. and > since I haven't been following this I have some problem understanding what > to review. Can you please send out a review request containing the latest > patches that shall actually be reviewed. > > Thanks > Lennart > > > -----Original Message----- > > From: A V Mahesh [mailto:mahesh.va...@oracle.com] > > Sent: den 21 juni 2016 08:49 > > To: Canh Van Truong <canh.v.tru...@dektech.com.au>; Vu Minh Nguyen > > <vu.m.ngu...@dektech.com.au>; Lennart Lund > <lennart.l...@ericsson.com> > > Cc: opensaf-devel@lists.sourceforge.net > > Subject: Re: [PATCH 1 of 1] log: fix issue with priority of messages > > adding to mailbox in the server[1396] > > > > Hi Canh, > > > > It seems Lennart already provide comments please check. > > > > -AVM > > > > > > On 6/21/2016 12:07 PM, Canh Truong wrote: > > > Hi Mahesh, > > > > > > Thanks for your comments. I will send new version after Lennart > > comments. > > > I have checked your idea about multiple thread test case. The idea > > > may be > > same with patch that I sent it before. > > > > > > Regards, > > > Canh. > > > > > > -----Original Message----- > > > From: A V Mahesh [mailto:mahesh.va...@oracle.com] > > > Sent: Tuesday, June 21, 2016 11:47 AM > > > To: Canh Truong; vu.m.ngu...@dektech.com.au; > > lennart.l...@ericsson.com > > > Cc: opensaf-devel@lists.sourceforge.net > > > Subject: Re: [PATCH 1 of 1] log: fix issue with priority of messages > > > adding to > > mailbox in the server[1396] > > > > > > Hi Canh, > > > > > > It will be good to send V2 patch with Lennart comments and adding > > > new > > test cases. > > > > > > -AVM > > > On 6/21/2016 9:46 AM, A V Mahesh wrote: > > >> Hi Canh, > > >> > > >> Some how we were not able to open your attachment , so my self > > >> written > > >> > > >> a multi threaded test case ( attached > > >> `thread_LogInitializeFinalize.c` > > >> ) and reviewed/tested it is working fine. > > >> > > >> ACK from me with following : > > >> > > >> - Please add such as attached multi threaded test case to logtest, > > >> before pushing > > >> > > >> - add # before ticket number in commit message #1396 > > >> > > >> -AVM > > >> > > >> > > >> On 6/14/2016 2:47 PM, Canh Truong wrote: > > >>> Hi Mahesh, > > >>> > > >>> I have created new test case for multiple threads. Please help > > >>> check new patch in attachment. > > >>> > > >>> Thanks, > > >>> Canh. > > >>> > > >>> -----Original Message----- > > >>> From: A V Mahesh [mailto:mahesh.va...@oracle.com] > > >>> Sent: Tuesday, June 14, 2016 11:03 AM > > >>> To: Canh Van Truong; vu.m.ngu...@dektech.com.au; > > >>> lennart.l...@ericsson.com > > >>> Cc: opensaf-devel@lists.sourceforge.net > > >>> Subject: Re: [PATCH 1 of 1] log: fix issue with priority of > > >>> messages adding to mailbox in the server[1396] > > >>> > > >>> Hi Canh Van Truong, > > >>> > > >>> I hope this patch will work for multiple threads doing > > >>> saLogInitialize() , saLogStreamOpen_2() and saLogFinalize() > > >>> concurrently in a single process and reaches lga_use_count = 0 , > > >>> againg restarting > > >>> saLogInitialize() , saLogStreamOpen_2() and > > >>> saLogFinalize() > > >>> without process exist. > > >>> > > >>> If so let us have a test case like for multiple threads doing > > >>> saLogInitialize() , saLogStreamOpen_2() and saLogFinalize() > > >>> concurrently > > >>> > > >>> -AVM > > >>> > > >>> > > >>> On 6/13/2016 12:37 PM, Canh Van Truong wrote: > > >>>> osaf/libs/agents/saf/lga/lga_api.c | 3 ++- > > >>>> osaf/libs/agents/saf/lga/lga_util.c | 21 ++++++++++++--------- > > >>>> tests/logsv/logtest.h | 1 + > > >>>> tests/logsv/tet_saLogStreamOpen_2.c | 29 > > >>>> +++++++++++++++++++++++++++++ > > >>>> 4 files changed, 44 insertions(+), 10 deletions(-) > > >>>> > > >>>> > > >>>> Sometimes, Log service can handle LGSV_INITIALIZE_REQ before > > handle > > >>>> LGSV_LGS_EVT_LGA_DOWN, although LGSV_LGS_EVT_LGA_DOWN > > was sent first > > >>>> whenever > > >>>> finalize() is call for last client. Because lgs can not > > >>>> distinguish MDS address between new connection (initializing new > > >>>> client) and old connection (finalizing last client before). This > > >>>> patch fixes to keep MDS connection when last client finalized, > > >>>> and re-use it when next > > >>> initialize() called. > > >>>> diff --git a/osaf/libs/agents/saf/lga/lga_api.c > > >>>> b/osaf/libs/agents/saf/lga/lga_api.c > > >>>> --- a/osaf/libs/agents/saf/lga/lga_api.c > > >>>> +++ b/osaf/libs/agents/saf/lga/lga_api.c > > >>>> @@ -41,7 +41,8 @@ > > >>>> /* The main controle block */ > > >>>> lga_cb_t lga_cb = { > > >>>> .cb_lock = PTHREAD_MUTEX_INITIALIZER, > > >>>> - .lgs_state = LGS_START > > >>>> + .lgs_state = LGS_START, > > >>>> + .mds_hdl = 0 > > >>>> }; > > >>>> static bool is_well_know_stream(const char* dn) diff --git > > >>>> a/osaf/libs/agents/saf/lga/lga_util.c > > >>>> b/osaf/libs/agents/saf/lga/lga_util.c > > >>>> --- a/osaf/libs/agents/saf/lga/lga_util.c > > >>>> +++ b/osaf/libs/agents/saf/lga/lga_util.c > > >>>> @@ -308,21 +308,17 @@ unsigned int lga_startup(lga_cb_t *cb) > > >>>> osaf_mutex_lock_ordie(&lga_lock); > > >>>> TRACE_ENTER2("lga_use_count: %u", lga_use_count); > > >>>> - if (lga_use_count > 0) { > > >>>> - /* Already created, just increment the use_count */ > > >>>> - lga_use_count++; > > >>>> - goto done; > > >>>> - } else { > > >>>> + > > >>>> + if (cb->mds_hdl == 0) { > > >>>> if ((rc = ncs_agents_startup()) != NCSCC_RC_SUCCESS) { > > >>>> TRACE("ncs_agents_startup FAILED"); > > >>>> goto done; > > >>>> } > > >>>> if ((rc = lga_create()) != NCSCC_RC_SUCCESS) { > > >>>> + cb->mds_hdl = 0; > > >>>> ncs_agents_shutdown(); > > >>>> goto done; > > >>>> - } else { > > >>>> - lga_use_count = 1; > > >>>> } > > >>>> /* Agent has successfully been started including > > >>> communication @@ > > >>>> -331,6 +327,9 @@ unsigned int lga_startup(lga_cb_t *cb) > > >>>> set_lga_state(LGA_NORMAL); > > >>>> } > > >>>> + /* Increase the use_count */ > > >>>> + lga_use_count++; > > >>>> + > > >>>> done: > > >>>> osaf_mutex_unlock_ordie(&lga_lock); > > >>>> @@ -361,8 +360,12 @@ unsigned int lga_shutdown_after_last_cli > > >>>> /* Users still exist, just decrement the use count */ > > >>>> lga_use_count--; > > >>>> } else if (lga_use_count == 1) { > > >>>> - lga_destroy(); > > >>>> - rc = ncs_agents_shutdown(); > > >>>> + /* > > >>>> + * Disable MDS_UNINSTALL and ncs agent shutdown to keep > > >>>> + MDS > > >>> connection. > > >>>> + * Fix ticket 1396. Msg NCSMDS_DOWN and Initialize are > > >>>> + out > > >>> of order in Mbx. > > >>>> + */ [Lennart] Remove this comment. #1396 is fixed > > >>>> + /* lga_destroy(); */ > > >>>> + /* rc = ncs_agents_shutdown(); */ [Lennart] Remove out-commented code > > >>>> lga_use_count = 0; > > >>>> } > > >>>> diff --git a/tests/logsv/logtest.h b/tests/logsv/logtest.h > > >>>> --- a/tests/logsv/logtest.h > > >>>> +++ b/tests/logsv/logtest.h > > >>>> @@ -27,6 +27,7 @@ > > >>>> #include <utest.h> > > >>>> #include <util.h> > > >>>> #include <sys/wait.h> > > >>>> +#include <unistd.h> > > >>>> #include <osaf_time.h> > > >>>> #include <logtrace.h> > > >>>> diff --git a/tests/logsv/tet_saLogStreamOpen_2.c > > >>>> b/tests/logsv/tet_saLogStreamOpen_2.c > > >>>> --- a/tests/logsv/tet_saLogStreamOpen_2.c > > >>>> +++ b/tests/logsv/tet_saLogStreamOpen_2.c > > >>>> @@ -704,6 +704,34 @@ done: > > >>>> } > > >>>> } > > >>>> +/* > > >>>> + * Ticket 1396 > > >>>> + * Verify that saLogInitialize() then saLogFinalize() multiple > > >>>> +time OK */ void saLogMultipleInitialize(void) { > > >>>> + SaLogStreamHandleT logStreamHandle1; > > >>>> + int count = 100; > > >>>> + SaAisErrorT rc = SA_AIS_OK; > > >>>> + > > >>>> + while (count--) { > > >>>> + rc = saLogInitialize(&logHandle, &logCallbacks, > > >>> &logVersion); > > >>>> + if (rc != SA_AIS_OK) > > >>>> + break; > > >>>> + > > >>>> + rc = saLogStreamOpen_2(logHandle, > > >>>> + &app1StreamName, > > >>> &appStream1LogFileCreateAttributes, > > >>>> + SA_LOG_STREAM_CREATE, > > >>> SA_TIME_ONE_SECOND, &logStreamHandle1); > > >>>> + safassert(rc, SA_AIS_OK); > > >>>> + > > >>>> + rc = saLogFinalize(logHandle); > > >>>> + if (rc != SA_AIS_OK) > > >>>> + break; > > >>>> + > > >>>> + } > > >>>> + test_validate(rc, SA_AIS_OK); > > >>>> + > > >>>> +} > > >>>> + > > >>>> extern void saLogStreamOpenAsync_2_01(void); > > >>>> extern void saLogStreamOpenCallbackT_01(void); > > >>>> extern void saLogWriteLog_01(void); @@ -790,5 +818,6 @@ > > >>>> extern void saLogStreamClose_01(void); > > >>>> test_case_add(2, verFixLogRec_Max_Err, "saLogStreamOpen_2 > > >>>> with > > >>> maxLogRecordSize > MAX_RECSIZE, ERR"); > > >>>> test_case_add(2, verFixLogRec_Min_Err, "saLogStreamOpen_2 > > >>>> with > > >>> maxLogRecordSize < 150, ERR"); > > >>>> test_case_add(2, saLogStreamOpen_2_50, "saLogStreamOpen_2 > > >>>> with stream number out of the limitation, ERR"); > > >>>> + test_case_add(2, saLogMultipleInitialize, "saLogInitialize() > > >>>> + then > > >>>> + saLogFinalize() multiple time. keep MDS connection, OK"); > > >>>> } ------------------------------------------------------------------------------ _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel