Hi Canh,

Ack. 

Thanks, Vu

> -----Original Message-----
> From: Canh Van Truong [mailto:[email protected]]
> Sent: Thursday, November 23, 2017 11:47 AM
> To: [email protected]; [email protected];
> [email protected]
> Cc: [email protected]; Canh Van Truong
> <[email protected]>
> Subject: [PATCH 1/1] log: fix coredump when stop cluster [#2700]
> 
> The problem happen because the iterator after erasing the element will be
> invalid.
> 
> The patch fix to increase the iterator before delete client
> ---
>  src/log/logd/lgs_evt.cc | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/src/log/logd/lgs_evt.cc b/src/log/logd/lgs_evt.cc
> index 94a94b646..c01680c49 100644
> --- a/src/log/logd/lgs_evt.cc
> +++ b/src/log/logd/lgs_evt.cc
> @@ -333,9 +333,9 @@ int lgs_client_delete_by_mds_dest(MDS_DEST
> mds_dest, time_t *closetime_ptr) {
>    TRACE_ENTER2("mds_dest %" PRIx64, mds_dest);
>    /* Loop through Client DB */
>    ClientMap *clientMap(reinterpret_cast<ClientMap *>(client_db));
> -  for (const auto &value : *clientMap) {
> -    rp = value.second;
> -
> +  for (auto it = clientMap->begin(); it != clientMap->end(); ) {
> +    rp = it->second;
> +    it++;
>      if (m_NCS_MDS_DEST_EQUAL(&rp->mds_dest, &mds_dest))
>        rc = lgs_client_delete(rp->client_id, closetime_ptr);
>    }
> --
> 2.13.0



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

Reply via email to