Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] Storage. Multiple large streaming uploads stuck on AKS. #21614

Closed
3 tasks done
denis111 opened this issue May 17, 2021 · 4 comments
Closed
3 tasks done

[BUG] Storage. Multiple large streaming uploads stuck on AKS. #21614

denis111 opened this issue May 17, 2021 · 4 comments
Assignees
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

Comments

@denis111
Copy link

denis111 commented May 17, 2021

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

      blockBlobClient.stageBlockWithResponse(blockId,
          Utility.convertStreamToByteBuffer(eis, partSize, maxBufferSize(), false), partSize,
          StringUtils.isNotEmpty(md5) ? Base64.getDecoder().decode(md5) : null, null)
          .block();

(retryable/seekable can't be true here).

Expected behavior
Uploads finish fine.

Setup (please complete the following information):

  • OS: AKS
  • IDE : IntelliJ
  • Version of the Library used azure-spring-boot-starter-storage v3.4.0, tried azure-storage-blob v12.10, v12.11, v12.12 beta.

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

  • Bug Description Added
  • Repro Steps Added
  • Setup information Added
@ghost ghost added needs-triage Workflow: This is a new issue that needs to be triaged to the appropriate team. 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 labels May 17, 2021
@joshfree joshfree added 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. labels May 17, 2021
@ghost ghost removed the needs-triage Workflow: This is a new issue that needs to be triaged to the appropriate team. label May 17, 2021
@joshfree
Copy link
Member

@stliu could you please follow up?

/cc @gapra-msft

@stliu
Copy link
Member

stliu commented May 18, 2021

@denis111 it's difficult to me that to do root cause analysis based on the description , would you provide a sample project to help us reproduce this issue?

@denis111
Copy link
Author

@stliu that's not so easy but I guess it's the only way. I'll try to prepare sample project then.

@stliu stliu added the needs-author-feedback Workflow: More information is needed from author to address the issue. label Aug 9, 2021
@ghost ghost added the no-recent-activity There has been no recent activity on this issue. label Aug 16, 2021
@ghost
Copy link

ghost commented Aug 16, 2021

Hi, we're sending this friendly reminder because we haven't heard back from you in a while. We need more information about this issue to help address it. Please be sure to give us your input within the next 7 days. If we don't hear back from you within 14 days of this comment the issue will be automatically closed. Thank you!

@ghost ghost closed this as completed Aug 30, 2021
@github-actions github-actions bot locked and limited conversation to collaborators Apr 12, 2023
This issue was closed.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
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
Projects
None yet
Development

No branches or pull requests

4 participants