Skip to content

Commit e0ab864

Browse files
authored
Merge pull request #32 from aiven/orange-avoid-fd-spike
Avoid FD spike after retrying KafkaAdminClient
2 parents 19ff1f4 + dfe42d0 commit e0ab864

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

kafka/admin/client.py

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -214,14 +214,20 @@ def __init__(self, **configs):
214214
metric_group_prefix='admin',
215215
**self.config
216216
)
217-
self._client.check_version(timeout=(self.config['api_version_auto_timeout_ms'] / 1000))
218-
219-
# Get auto-discovered version from client if necessary
220-
if self.config['api_version'] is None:
221-
self.config['api_version'] = self._client.config['api_version']
222-
223-
self._closed = False
224-
self._refresh_controller_id()
217+
try:
218+
self._client.check_version(timeout=(self.config['api_version_auto_timeout_ms'] / 1000))
219+
220+
# Get auto-discovered version from client if necessary
221+
if self.config['api_version'] is None:
222+
self.config['api_version'] = self._client.config['api_version']
223+
224+
self._closed = False
225+
self._refresh_controller_id()
226+
except Exception:
227+
self._metrics.close()
228+
self._client.close() # prevent FD leak
229+
self._closed = True
230+
raise
225231
log.debug("KafkaAdminClient started.")
226232

227233
def close(self):

0 commit comments

Comments
 (0)