Hi Vu, I did ACK today early hrs , you haven't received ?
On 5/2/2017 12:32 PM, A V Mahesh wrote: > Hi Vu, > > Ack. > > -AVM > > > On 4/26/2017 12:25 PM, Vu Minh Nguyen wrote: >> rfc5424_msgid is only referred when streaming and >> having destination name set on that log stream. -AVM On 5/2/2017 2:17 PM, Vu Minh Nguyen wrote: > Hi Mahesh, > > Have you had time to look at this? Thanks. > > Regards, Vu > >> -----Original Message----- >> From: Vu Minh Nguyen [mailto:[email protected]] >> Sent: Wednesday, April 26, 2017 8:56 AM >> To: [email protected]; [email protected]; >> [email protected] >> Cc: [email protected]; Vu Minh Nguyen >> <[email protected]> >> Subject: [PATCH 1/1] log: generate hash only if having destination name > set >> [#2438] >> >> rfc5424_msgid is only referred when streaming and >> having destination name set on that log stream. >> >> It means it does meaningless job sometimes, >> that is do hash calculation even there is no destination name set. >> >> This ticket will fix that. >> --- >> src/log/logd/lgs_dest.cc | 6 ++++++ >> src/log/logd/lgs_imm.cc | 41 +++++++++++++++++++++++++++++++--------- >> - >> src/log/logd/lgs_main.cc | 2 -- >> src/log/logd/lgs_mbcsv.cc | 21 +++++++++++++++------ >> 4 files changed, 52 insertions(+), 18 deletions(-) >> >> diff --git a/src/log/logd/lgs_dest.cc b/src/log/logd/lgs_dest.cc >> index ec8fcc6..9f8be27 100644 >> --- a/src/log/logd/lgs_dest.cc >> +++ b/src/log/logd/lgs_dest.cc >> @@ -73,6 +73,12 @@ std::string DestinationHandler::GenerateMsgId(const >> std::string& dn, >> msgid = ((isRtStream == true) ? std::string{sname + 'R'} >> : std::string{sname + 'C'}); >> } else { >> + // Do `InitializeHashFunction()` once >> + static bool init_invoked = false; >> + if (init_invoked == false) { >> + base::InitializeHashFunction(); >> + init_invoked = true; >> + } >> msgid = base::Hash(dn); >> } >> >> diff --git a/src/log/logd/lgs_imm.cc b/src/log/logd/lgs_imm.cc >> index caf0cc9..1b22c15 100644 >> --- a/src/log/logd/lgs_imm.cc >> +++ b/src/log/logd/lgs_imm.cc >> @@ -2353,7 +2353,17 @@ static SaAisErrorT >> stream_create_and_configure1( >> char *value_str = *(reinterpret_cast<char **>(value)); >> vstring.push_back(value_str); >> } >> + >> log_stream_add_dest_name(*stream, vstring); >> + if (vstring.empty() == false) { >> + // Generate & cache `MSGID` to `rfc5424MsgId` which later >> + // used in RFC5424 protocol >> + (*stream)->rfc5424MsgId = >> + DestinationHandler::Instance().GenerateMsgId( >> + (*stream)->name, (*stream)->isRtStream); >> + TRACE("%s: stream %s - msgid = %s", __func__, (*stream)- >>> name.c_str(), >> + (*stream)->rfc5424MsgId.c_str()); >> + } >> } >> } >> i++; >> @@ -2390,11 +2400,6 @@ static SaAisErrorT >> stream_create_and_configure1( >> osaf_abort(0); >> } >> >> - // Generate & cache `MSGID` to `rfc5424MsgId` which later >> - // used in RFC5424 protocol >> - (*stream)->rfc5424MsgId = DestinationHandler::Instance().GenerateMsgId( >> - (*stream)->name, (*stream)->isRtStream); >> - >> done: >> TRACE_LEAVE2("rc: %s", saf_error(rc)); >> return rc; >> @@ -2519,7 +2524,20 @@ static void stream_ccb_apply_modify(const >> CcbUtilOperationData_t *opdata) { >> char *value_str = *(reinterpret_cast<char **>(value)); >> vstring.push_back(value_str); >> } >> + >> apply_destination_names_change(stream, vstring, attrMod->modType); >> + // Make sure generated msg is only called when >> + // 1) Have destination set >> + // 2) Not yet generated >> + if (vstring.empty() == false && stream->rfc5424MsgId.empty() == > true) { >> + // Generate & cache `MSGID` to `rfc5424MsgId` which later >> + // used in RFC5424 protocol >> + stream->rfc5424MsgId = >> + DestinationHandler::Instance().GenerateMsgId( >> + stream->name, stream->isRtStream); >> + TRACE("%s: stream %s - msgid = %s", __func__, > stream->name.c_str(), >> + stream->rfc5424MsgId.c_str()); >> + } >> } else { >> LOG_ER("Error: Unknown attribute name"); >> osafassert(0); >> @@ -2860,6 +2878,14 @@ static SaAisErrorT stream_create_and_configure( >> vstring.push_back(value_str); >> } >> log_stream_add_dest_name(stream, vstring); >> + if (vstring.empty() == false) { >> + // Generate & cache `MSGID` to `rfc5424MsgId` which later >> + // used in RFC5424 protocol >> + stream->rfc5424MsgId = >> DestinationHandler::Instance().GenerateMsgId( >> + dn, stream->isRtStream); >> + TRACE("%s: stream %s - msgid = %s", __func__, > stream->name.c_str(), >> + stream->rfc5424MsgId.c_str()); >> + } >> } else if (!strcmp(attribute->attrName, >> "saLogStreamCreationTimestamp")) { >> if (attribute->attrValuesNumber != 0) { >> /* Restore creation timestamp if exist >> @@ -2890,11 +2916,6 @@ static SaAisErrorT stream_create_and_configure( >> } >> } >> >> - // Generate & cache `MSGID` to `rfc5424MsgId` which later >> - // used in RFC5424 protocol >> - stream->rfc5424MsgId = >> - DestinationHandler::Instance().GenerateMsgId(dn, > stream->isRtStream); >> - >> done: >> TRACE_LEAVE2("rc: %s", saf_error(rc)); >> return rc; >> diff --git a/src/log/logd/lgs_main.cc b/src/log/logd/lgs_main.cc >> index d8e54a6..fe2f9a2 100644 >> --- a/src/log/logd/lgs_main.cc >> +++ b/src/log/logd/lgs_main.cc >> @@ -281,8 +281,6 @@ static uint32_t log_initialize(void) { >> >> TRACE_ENTER(); >> >> - base::InitializeHashFunction(); >> - >> /** >> * Setup immutils profile once and for all. >> * This profile says immutil_ API will be blocked >> diff --git a/src/log/logd/lgs_mbcsv.cc b/src/log/logd/lgs_mbcsv.cc >> index 59232e1..e46dfb8 100644 >> --- a/src/log/logd/lgs_mbcsv.cc >> +++ b/src/log/logd/lgs_mbcsv.cc >> @@ -2103,7 +2103,6 @@ uint32_t ckpt_proc_open_stream(lgs_cb_t *cb, >> void *data) { >> stream->logFileCurrent = param->logFileCurrent; >> stream->stb_prev_actlogFileCurrent = param->logFileCurrent; >> stream->stb_logFileCurrent = param->logFileCurrent; >> - >> osaf_extended_name_lend(param->logStreamName, &objectName); >> SaImmClassNameT className = immutil_get_className(&objectName); >> if (className != nullptr && strcmp(className, "SaLogStreamConfig") == >> 0) { >> @@ -2119,15 +2118,16 @@ uint32_t ckpt_proc_open_stream(lgs_cb_t *cb, >> void *data) { >> TRACE("Dest_name %s", param->dest_names); >> stream->stb_dest_names = std::string{param->dest_names}; >> stream->dest_names = logutil::Parser(stream->stb_dest_names, > ";"); >> + // Generate & cache `MSGID` to `rfc5424MsgId` which later >> + // used in RFC5424 protocol >> + stream->rfc5424MsgId = >> DestinationHandler::Instance().GenerateMsgId( >> + stream->name, stream->isRtStream); >> + TRACE("%s: stream %s - msgid = %s", __func__, > stream->name.c_str(), >> + stream->rfc5424MsgId.c_str()); >> } else { >> stream->stb_dest_names = ""; >> stream->dest_names.clear(); >> } >> - >> - // Generate & cache `MSGID` to `rfc5424MsgId` which later >> - // used in RFC5424 protocol >> - stream->rfc5424MsgId = > DestinationHandler::Instance().GenerateMsgId( >> - stream->name, stream->isRtStream); >> } >> } >> >> @@ -2366,6 +2366,15 @@ static uint32_t ckpt_proc_cfg_stream(lgs_cb_t >> *cb, void *data) { >> TRACE("dest_names: %s", dest_names); >> stream->stb_dest_names = std::string{dest_names}; >> stream->dest_names = logutil::Parser(stream->stb_dest_names, ";"); >> + // Make sure generated msg is only called when >> + // 1) Have destination set >> + // 2) Not yet generated >> + if (stream->rfc5424MsgId.empty() == true) { >> + stream->rfc5424MsgId = >> DestinationHandler::Instance().GenerateMsgId( >> + stream->name, stream->isRtStream); >> + TRACE("%s: stream %s - msgid = %s", __func__, > stream->name.c_str(), >> + stream->rfc5424MsgId.c_str()); >> + } >> } else { >> stream->stb_dest_names = ""; >> stream->dest_names.clear(); >> -- >> 2.7.4 > ------------------------------------------------------------------------------ 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 [email protected] https://lists.sourceforge.net/lists/listinfo/opensaf-devel
