Paramiko stores thread-ids in a dictionary, which never gets cleaned up. In a long-running process, this leaks memory. One example is https://github.com/truenas/zettarepl which runs persistently in a TrueNAS system, and thus leaks memory.
The leaking structure is here: https://github.com/paramiko/paramiko/blob/main/paramiko/util.py#L228
Paramiko stores thread-ids in a dictionary, which never gets cleaned up. In a long-running process, this leaks memory. One example is https://github.com/truenas/zettarepl which runs persistently in a TrueNAS system, and thus leaks memory.
The leaking structure is here: https://github.com/paramiko/paramiko/blob/main/paramiko/util.py#L228