>From 02f53d14dbfece1d6b51fabc9ea2da72b32f0324 Mon Sep 17 00:00:00 2001
From: Canh Van Truong <canh.v.truong@dektech.com.au>
Date: Mon, 6 Aug 2018 14:47:48 +0700
Subject: [PATCH] log: fix log agent never remove log-client in list  if server
 return BAD_HANDLE [#2910]

Log agent get BAD_HANDLE in some API from log server. The client has already
gone away in log server, but it still in the list in agent (lib). it need to be
deallocated and removed from list in agent.

The patch updates to remove in log API finalize
---
 src/log/agent/lga_agent.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/log/agent/lga_agent.cc b/src/log/agent/lga_agent.cc
index 2bbc28abd..bf9caa935 100644
--- a/src/log/agent/lga_agent.cc
+++ b/src/log/agent/lga_agent.cc
@@ -647,7 +647,7 @@ SaAisErrorT LogAgent::saLogFinalize(SaLogHandleT logHandle) {
   // Populate & send the finalize message and make sure the finalize
   // from the server end returned before deleting the local records.
   ais_rc = SendFinalizeMsg(client->GetClientId());
-  if (ais_rc == SA_AIS_OK) {
+  if (ais_rc == SA_AIS_OK || ais_rc == SA_AIS_ERR_BAD_HANDLE) {
     TRACE("%s delete_one_client", __func__);
     if (true) {
       ScopeLock critical_section(get_delete_obj_sync_mutex_);
-- 
2.15.1

