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.
Description
Previously, the cache for deferred bindings returned a client based on the resource it was attached to. Therefore, two functions that had client types pointed to the same resource would receive the same client.
For example, these two functions would both use the same client when executing because the blob is the same:
This causes an issue specifically for async client types and does not affect sync client types. After
stream_upload
is executed andstream_download
is called,await client.get_blob_properties()
will fail withAttributeError: 'NoneType' object has no attribute '__aenter__'.
This is an issue that also occurs when usingazure-storage-blob-aio
directly.This changes the cache to take in the function name as an additional part of the key so that client types will be unique based on the function.
Fixes #
PR information
Quality of Code and Contribution Guidelines