Cloud-on-k8s: Elasticsearch client leak

Created on 20 Apr 2020  路  1Comment  路  Source: elastic/cloud-on-k8s

There is an Elasticsearch client leak in the Elasticsearch driver:

https://github.com/elastic/cloud-on-k8s/blob/e0773830c8ab5a40a2881e6c7bc1226d89da1520/pkg/controller/elasticsearch/driver/driver.go#L165-L173

In most cases the client created for the observer is never closed, leading to a memory leak.

>bug v1.1.0

Most helpful comment

I wonder if this would suffice as a fix:

diff --git a/pkg/controller/elasticsearch/observer/manager.go b/pkg/controller/elasticsearch/observer/manager.go
index 29dc54ea..2921e048 100644
--- a/pkg/controller/elasticsearch/observer/manager.go
+++ b/pkg/controller/elasticsearch/observer/manager.go
@@ -49,6 +49,7 @@ func (m *Manager) Observe(cluster types.NamespacedName, esClient client.Client)
                m.StopObserving(cluster)
                return m.createObserver(cluster, esClient)
        default:
+               esClient.Close()
                return observer
        }
 }

>All comments

I wonder if this would suffice as a fix:

diff --git a/pkg/controller/elasticsearch/observer/manager.go b/pkg/controller/elasticsearch/observer/manager.go
index 29dc54ea..2921e048 100644
--- a/pkg/controller/elasticsearch/observer/manager.go
+++ b/pkg/controller/elasticsearch/observer/manager.go
@@ -49,6 +49,7 @@ func (m *Manager) Observe(cluster types.NamespacedName, esClient client.Client)
                m.StopObserving(cluster)
                return m.createObserver(cluster, esClient)
        default:
+               esClient.Close()
                return observer
        }
 }
Was this page helpful?
0 / 5 - 0 ratings

Related issues

pebrc picture pebrc  路  3Comments

deepaksinghcs14 picture deepaksinghcs14  路  4Comments

nkvoll picture nkvoll  路  4Comments

sebgl picture sebgl  路  5Comments

barkbay picture barkbay  路  4Comments