On 2/17/2017 2:59 PM, Anders Widell wrote: > we should check that our README refers to the RFC somewhere.
That will be even good for completely understand the New MDS log format. -AVM On 2/17/2017 2:59 PM, Anders Widell wrote: > Hi! > > > On 02/17/2017 10:16 AM, A V Mahesh wrote: >> Hi Anders Widell, >> >> ACK with following ( tested as well ) >> >> On 2/17/2017 2:22 PM, Anders Widell wrote: >>> Yes the max value is INT_MAX (2147483647), after which the next >>> sequence number will start from 1 again. >> >> Do we have to mention the things in some README ? > > This limit is documented in the RFC, but we should check that our > README refers to the RFC somewhere. > >> >> -AVM >> >> On 2/17/2017 2:22 PM, Anders Widell wrote: >>> See below. >>> >>> regards, >>> >>> Anders Widell >>> >>> >>> On 02/17/2017 06:21 AM, A V Mahesh wrote: >>>> Hi Anders Widell, >>>> >>>> Can you please clarify below : >>>> >>>> 1) is this meta sequenceId is rotates after reaching some value ? >>>> ( Max value ) >>> >>> Yes the max value is INT_MAX (2147483647), after which the next >>> sequence number will start from 1 again. >>> >>>> >>>> 2) is this meta sequenceId persistent even after application >>>> respawn ? >>> >>> No, but you can detect application restart using the PID, which is >>> also included in the log message. >>> >>>> >>>> ============================================================================================================================================================= >>>> >>>> >>>> >>>> <143>1 2017-02-17T10:44:21.59772+05:30 PL-1 osafimmloadd 10183 - >>>> [meta sequenceId="431572"] MDS_SND_RCV : calling cb ptr enc or enc >>>> flatin mcm_msg_encode_full_or_flat_and_send >>>> <143>1 2017-02-17T10:44:21.597733+05:30 PL-1 osafimmloadd 10183 - >>>> [meta sequenceId="431573"] >> mds_get_subtn_res_tbl_by_adest >>>> >>>> <143>1 2017-02-17T10:44:21.597771+05:30 PL-1 osafimmloadd 10183 - >>>> [meta sequenceId="431576"] << mcm_msg_encode_full_or_flat_and_send >>>> <142>1 2017-02-17T10:44:21.597784+05:30 PL-1 osafimmloadd 10183 - >>>> [meta sequenceId="431577"] MDTM: User Sending Data lenght=384 From >>>> svc_id = IMMA_OM(26) to svc_id = IMMND(25) >>>> <143>1 2017-02-17T10:44:21.597798+05:30 PL-1 osafimmloadd 10183 - >>>> [meta sequenceId="431578"] MDTM: Sending message with Service >>>> Seqno=7482, TO Dest_id=<0x0002020f:9253> >>>> >>>> <143>1 2017-02-17T10:44:21.597875+05:30 PL-1 osafimmnd 9253 - [meta >>>> sequenceId="1532911"] >> mds_vdest_tbl_get_role >>>> <143>1 2017-02-17T10:44:21.597879+05:30 PL-1 osafimmnd 9253 - [meta >>>> sequenceId="1532912"] << mds_vdest_tbl_get_role >>>> >>>> ============================================================================================================================================================= >>>> >>>> >>>> >>>> -AVM >>>> >>>> >>>> On 2/13/2017 8:11 PM, Anders Widell wrote: >>>>> src/mds/mds_log.cc | 24 ++++++++++++++++-------- >>>>> 1 files changed, 16 insertions(+), 8 deletions(-) >>>>> >>>>> >>>>> Use the meta sequenceId structured element for message sequence >>>>> numbers instead >>>>> of the MSGID field, as per RFC-5424. >>>>> >>>>> Also use a mutex to protect the UnixSocket instance, since users >>>>> of this class >>>>> will be reponsible for thread safety after ticket [#2293]. >>>>> >>>>> diff --git a/src/mds/mds_log.cc b/src/mds/mds_log.cc >>>>> --- a/src/mds/mds_log.cc >>>>> +++ b/src/mds/mds_log.cc >>>>> @@ -27,7 +27,6 @@ >>>>> #include <sys/time.h> >>>>> #include <time.h> >>>>> #include <unistd.h> >>>>> -#include <atomic> >>>>> #include <cstdarg> >>>>> #include <cstdio> >>>>> #include <cstring> >>>>> @@ -35,6 +34,7 @@ >>>>> #include "base/buffer.h" >>>>> #include "base/log_message.h" >>>>> #include "base/macros.h" >>>>> +#include "base/mutex.h" >>>>> #include "base/ncsgl_defs.h" >>>>> #include "base/osaf_utility.h" >>>>> #include "base/time.h" >>>>> @@ -54,12 +54,14 @@ class MdsLog { >>>>> uint32_t proc_id, const char* socket_name); >>>>> void LogInternal(base::LogMessage::Severity severity, const >>>>> char *fmt, >>>>> va_list ap); >>>>> + static constexpr const uint32_t kMaxSequenceId = >>>>> uint32_t{0x7fffffff}; >>>>> static MdsLog* instance_; >>>>> const base::LogMessage::HostName host_name_; >>>>> const base::LogMessage::AppName app_name_; >>>>> const base::LogMessage::ProcId proc_id_; >>>>> - std::atomic<uint64_t> msg_id_; >>>>> + uint32_t sequence_id_; >>>>> base::UnixClientSocket log_socket_; >>>>> + base::Mutex mutex_; >>>>> DELETE_COPY_AND_MOVE_OPERATORS(MdsLog); >>>>> }; >>>>> @@ -72,8 +74,9 @@ MdsLog::MdsLog(const char* host_name, co >>>>> host_name_{base::LogMessage::HostName{host_name}}, >>>>> app_name_{base::LogMessage::AppName{app_name}}, >>>>> proc_id_{base::LogMessage::ProcId{std::to_string(proc_id)}}, >>>>> - msg_id_{0}, >>>>> - log_socket_{socket_name} { >>>>> + sequence_id_{1}, >>>>> + log_socket_{socket_name}, >>>>> + mutex_{} { >>>>> } >>>>> /***************************************************** >>>>> @@ -130,16 +133,21 @@ void MdsLog::Log(base::LogMessage::Sever >>>>> void MdsLog::LogInternal(base::LogMessage::Severity severity, >>>>> const char *fmt, >>>>> va_list ap) { >>>>> - uint64_t id = msg_id_++; >>>>> + base::Lock lock(mutex_); >>>>> + uint32_t id = sequence_id_; >>>>> + sequence_id_ = id < kMaxSequenceId ? id + 1 : 1; >>>>> base::Buffer<256> buffer; >>>>> - base::LogMessage::Write(base::LogMessage::Facility::kLocal0, >>>>> + base::LogMessage::Write(base::LogMessage::Facility::kLocal1, >>>>> severity, >>>>> base::ReadRealtimeClock(), >>>>> host_name_, >>>>> app_name_, >>>>> proc_id_, >>>>> - base::LogMessage::MsgId{std::to_string(id)}, >>>>> - {}, >>>>> + base::LogMessage::MsgId{""}, >>>>> + {{base::LogMessage::SdName{"meta"}, >>>>> + {base::LogMessage::Parameter{ >>>>> + base::LogMessage::SdName{"sequenceId"}, >>>>> + std::to_string(id)}}}}, >>>>> fmt, >>>>> ap, >>>>> &buffer); >>>> >>> >> > ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel