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");
> >>>>     }

Attachment: 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

Reply via email to