Hi Anders Widell, Can you please clarify below :
1) is this meta sequenceId is rotates after reaching some value ? ( Max value ) 2) is this meta sequenceId persistent even after application respawn ? ============================================================================================================================================================= <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