[BUG] BlobClient.download fails with "Connection reset by peer" for large files #21066
Labels
Client
This issue points to a problem in the data-plane of the library.
customer-reported
Issues that are reported by GitHub users external to the Azure organization.
question
The issue doesn't require a change to the product in order to be resolved. Most issues start as that
Storage
Storage Service (Queues, Blobs, Files)
Describe the bug
We are using the azure java sdk in our product code. Part of the functionality that we need to support is downloading a file from azure. This works consistently for files under 10 Gb. There are issues when trying to download block blobs that are greater than 10 Gb, especially around 90 Gb. The api has no problem uploading the 90 Gb file, it is just the downloading portion that seems to fail frequently. It will occasionally work, but it seems to fail much more than it succeeds. I am wondering if perhaps there is a better api method that should be used for larger files, any help would be greatly appreciated?
Exception or Stack Trace
2021-04-29 20:32:49 246 [main] ERROR com.jgm.AzureFileDownload - Error while trying to download the file=/home/kompuser/90gb.txt
reactor.core.Exceptions$ReactiveException: io.netty.channel.unix.Errors$NativeIoException: readAddress(..) failed: Connection reset by peer
at reactor.core.Exceptions.propagate(Exceptions.java:393)
at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:97)
at reactor.core.publisher.Mono.block(Mono.java:1680)
at com.azure.storage.common.implementation.StorageImplUtils.blockWithOptionalTimeout(StorageImplUtils.java:99)
at com.azure.storage.blob.specialized.BlobClientBase.downloadWithResponse(BlobClientBase.java:562)
at com.azure.storage.blob.specialized.BlobClientBase.download(BlobClientBase.java:522)
at com.jgm.AzureFileDownload.getObject(AzureFileDownload.java:41)
at com.jgm.AzureFileDownload.main(AzureFileDownload.java:61)
Suppressed: java.lang.Exception: #block terminated with an error
at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:99)
... 6 more
Caused by: io.netty.channel.unix.Errors$NativeIoException: readAddress(..) failed: Connection reset by peer
To Reproduce
Code Snippet
A shorter variation of the code is here:
Expected behavior
I would expect this call to be successful more than it fails.
Screenshots
If applicable, add screenshots to help explain your problem.
Setup (please complete the following information):
Additional context
Logs from one failed run set to DEBUG: https://pastebin.com/G3wXVQrw
Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report
The text was updated successfully, but these errors were encountered: