RetriableReadableStream ineffective now that it handles "aborted" event #32268
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.
needs-team-attention
Workflow: This issue needs attention from Azure service team or SDK team
question
The issue doesn't require a change to the product in order to be resolved. Most issues start as that
Service Attention
Workflow: This issue is responsible by Azure service team.
Storage
Storage Service (Queues, Blobs, Files)
Describe the bug
The
aborted
event handling insdk/storage/storage-blob/src/utils/RetriableReadableStream.ts
added in #24141 renders the class ineffective for its purpose when the http response stream returned by the initialdownload
call terminates because of a server timeout (specified inretryOptions.tryTimeoutInMs
given tonew BlobServiceClient
) resulting in a connection reset and the http response emitting theaborted
event which causesRetriableReadableStream
to destroy itself, thereby not retrying the download from the byte offset at which it left off.From Node's http.request docs:
To Reproduce
Steps to reproduce the behavior:
new BlobServiceClient
withretryOptions.tryTimeoutInMs=3000
BlobClient.downloadToFile
for a blob that would take longer than 3s to downloaddownloadToFile
rejects becauseRetriableReadableStream
destroys itself upon handlingaborted
rather than retryingExpected behavior
Downloading the blob resumes from the byte offset at which the initial download left off after the per-request timeout.
The text was updated successfully, but these errors were encountered: