I defined a retry callback and set client.retry to use it. After the first retry callback on the error being handled (status=409), wherein my callback returned 10, I get the error shown below.
Analysis
_perform_request seems to be treating context.count field as a non-required but recognized property (line 391), but then references it unconditionally (line 418). If it is going to be referenced like this, it should probably just become a standard property of RetryContext class. As it is, its hard for a developer writing their own retry callback to know about this dependency.
Stack Trace
traceback (most recent call last):
File "xt_test.py", line 114, in
store_test(xt)
File "xt_test.py", line 21, in store_test
xt.create_workspace(ws_name)
File "c:\github\ExperimentTools\xt\xt_store.py", line 65, in create_workspace
self.helper.create_workspace(ws_name, description)
File "c:\github\ExperimentTools\xt\xt_azure_store_blob.py", line 85, in create_workspace
result = self.bs.create_container(ws_name)
File "C:\Users\Roland\AppData\Local\Continuum\anaconda3\envs\exper\lib\site-packages\azure\storage\blob\baseblobservice.py", line 630, in create_container
self._perform_request(request, expected_errors=[_CONTAINER_ALREADY_EXISTS_ERROR_CODE])
File "C:\Users\Roland\AppData\Local\Continuum\anaconda3\envs\exper\lib\site-packages\azure\storage\common\storageclient.py", line 418, in _perform_request
retry_context.count,
AttributeError: 'RetryContext' object has no attribute 'count'
Have you found a mitigation/solution?
Once you know to do it, a "count" property set to 0 can just be created on the retry_context argument of the custom retry callback.
Which service(blob, file, queue) does this issue concern?
blob
Which version of the SDK was used? Please provide the output of
pip freeze
.azure-batch==6.0.0 azure-common==1.1.18 azure-storage-blob==1.4.0 azure-storage-common==1.4.0 azure-storage-file==1.4.0
What problem was encountered?
I defined a retry callback and set client.retry to use it. After the first retry callback on the error being handled (status=409), wherein my callback returned 10, I get the error shown below.
Analysis
_perform_request seems to be treating context.count field as a non-required but recognized property (line 391), but then references it unconditionally (line 418). If it is going to be referenced like this, it should probably just become a standard property of RetryContext class. As it is, its hard for a developer writing their own retry callback to know about this dependency.
Stack Trace
traceback (most recent call last): File "xt_test.py", line 114, in
store_test(xt)
File "xt_test.py", line 21, in store_test
xt.create_workspace(ws_name)
File "c:\github\ExperimentTools\xt\xt_store.py", line 65, in create_workspace
self.helper.create_workspace(ws_name, description)
File "c:\github\ExperimentTools\xt\xt_azure_store_blob.py", line 85, in create_workspace
result = self.bs.create_container(ws_name)
File "C:\Users\Roland\AppData\Local\Continuum\anaconda3\envs\exper\lib\site-packages\azure\storage\blob\baseblobservice.py", line 630, in create_container
self._perform_request(request, expected_errors=[_CONTAINER_ALREADY_EXISTS_ERROR_CODE])
File "C:\Users\Roland\AppData\Local\Continuum\anaconda3\envs\exper\lib\site-packages\azure\storage\common\storageclient.py", line 418, in _perform_request
retry_context.count,
AttributeError: 'RetryContext' object has no attribute 'count'
Have you found a mitigation/solution?
Once you know to do it, a "count" property set to 0 can just be created on the retry_context argument of the custom retry callback.
Note: for table service, please post the issue here instead: https://github.com/Azure/azure-cosmosdb-python.