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. > >>>> + */ > >>>> + /* lga_destroy(); */ > >>>> + /* rc = ncs_agents_shutdown(); */ > >>>> 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"); > >>>> }
lgs_fix_prio_lga_down_r3.patch
Description: Binary data
------------------------------------------------------------------------------
_______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel