Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The SecretsCache was leaking threads because it relied on the Python
__del__method to stop the background cleanup thread, but__del__is not reliably called by the python garbage collector. Each time a client was created, a new cleanup thread was spawned that would never terminate, causing thread counts to grow without bounds in long running applications or applications that create multiple client instances.Users can now optionally call
client.close()or use the client as a context manager (with InfisicalSDKClient(...) as client:) for instant cleanup, but even without explicit cleanup, threads will now self-terminate when the garbage collector reclaims the cache object. This ensures the SDK no longer leaks threads regardless of how it's used.Two new dependencies,
weakrefandatexit, which have been apart of the Python standard library since 2000/2001 respectively. This will continue working even for folks on older Python versions.