Description
- Package Name: azure-storage-blob
- Package Version: 12.5.0
- Operating System: Debian 9
- Python Version: python3.6
Other relevant packages: azure-core==1.10.0
Describe the bug
Reading the blob content can return too few bytes, leading to data corruption.
To Reproduce
Steps to reproduce the behavior:
- create some blobs with fake data (not too small: best beyond the maximum get blob size, which has a default of 32MB)
- download these blobs completely via
BlobClient.download_blob().readall()
. If the download returned without error, compare the content with the expected one from the upload in step 1.
Note that you have to repeat step 2. about 1 million times (depending on network, may be more or less; I estimate this is the order of probability we observe); alternatively, take other measures to increase the likelihood of a connection error while downloading the blob content.
Expected behavior
When the blob download completed without exception, the download content must match exactly with what was uploaded before, including the length.
Additional context
We observe this mainly when downloading parts of blobs, i.e. when passing non-zero offset and length parameters to BlobClient.download_blob()