This repository contains info on how to reproduce an issue I experience with Azure Storage Blob from Azure Python SDK.
When experiencing timeouts while downloading a blob with Azure Python SDK the whole download will fail when the network is brought back to normal even if there are retries left. I have not been able to reproduce this with uploads.
- Add a sufficiently large file (I use a 1.5GiB file) to your azure storage
account at
https://<ACCOUNT>.blob.core.windows.net/<CONTAINER>/<BIG_BLOB>
. - Login with
az login
. - Create a fresh virtual environment and install the dependencies with:
$ pip install --requirement=./requirements.txt
- Run
$ ./azure-storage-test -a <ACCOUNT> -c <CONTAINER> <BIG_BLOB> $ # E.g. ./azure-storage-test -a mytestaccount -c test my-big-blob.zip
- Once the download has run for a little while, in a separate terminal, run
This adds a 100s network latency to the download to make sure it times out.
$ ./network-latency on <NET-DEVICE> # E.g eth0 or enp0s13f0u3u4
- Watch the download starting to print out that it will retry a little later.
- Wait until the second round of retries.
- Disable the network latency:
$ ./network-latency off <NET-DEVICE>
- Watch the download fail even though we have retries left and the network is back to normal again.
See this example log for how this looks like at my computer.