Skip to content

Commit 77b0d1d

Browse files
authored
Merge pull request #3857 from mpfz0r/fix/memleak-secretsfilter
fix: remove SecretsFilter when a connection fails before disconnect()
2 parents 5261fb6 + 1e89f5c commit 77b0d1d

1 file changed

Lines changed: 15 additions & 1 deletion

File tree

netmiko/base_connection.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -487,7 +487,21 @@ def __init__(
487487

488488
# Establish the remote connection
489489
if auto_connect:
490-
self._open()
490+
try:
491+
self._open()
492+
except Exception:
493+
# If the connection fails before disconnect() is ever reached
494+
# (establish_connection errors: authentication, TCP timeout,
495+
# SSH key-exchange/negotiation), the SecretsFilter registered
496+
# above would be stranded on the module logger and leaked.
497+
# Remove it (and close any session log) before propagating.
498+
try:
499+
log.removeFilter(self._secrets_filter)
500+
if self.session_log:
501+
self.session_log.close()
502+
except Exception:
503+
pass
504+
raise
491505

492506
def _open(self) -> None:
493507
"""Decouple connection creation from __init__ for mocking."""

0 commit comments

Comments
 (0)