[BUG] Storage. Multiple large streaming uploads stuck on AKS. #21614
Labels
azure-spring
All azure-spring related issues
azure-spring-storage
Spring storage releated issues.
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.
needs-author-feedback
Workflow: More information is needed from author to address the issue.
no-recent-activity
There has been no recent activity on this issue.
question
The issue doesn't require a change to the product in order to be resolved. Most issues start as that
Describe the bug
We have java Spring Boot application with an api where users can upload files of any size and multiple files at a time, the files while uploading are streamed directly to the backend storage (Azure storage in that case). We provide so-called resumable uploads so we upload large files using multiple PUT requests with variable size (depends on user's bandwidth). So when one or more users upload several large files PUT requests get stuck until some timeout. I tried to do that via Block Blob and also Append Blob, the result is the same.
That's not our application issue because when I launch locally or other cloud provider(Google) it just uploads fine to Azure storage, it only happens with AKS. Maybe something weird happens while converting InputStream to Flux but only on AKS instances.
When it's stuck if i just restart kubernetes pod it may continue until stuck another time.
Exception or Stack Trace
Usually it ends with EOF becaouse of client timeout:
Caused by: java.io.EOFException: Unexpected EOF read on the socket
To Reproduce
It might be difficult to explain but any Spring Boot app when some Upload Controller which passes InputStream directly to Azure Storage. Upload about 10 files at a time on AKS instance.
Code Snippet
(retryable/seekable can't be true here).
Expected behavior
Uploads finish fine.
Setup (please complete the following information):
Additional context
I tried to use the same code on GKE (Google cloud) connecting to Azure storage and it works fine. Also we support local disk, S3 and GCS as storage provider and upload to GCS from AKS is also working fine. It's only Java -> AKS -> Azure storage problem.
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: