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

Fix hanging blob creation #351

Merged
merged 2 commits into from
Mar 15, 2024
Merged

Conversation

sebastianburckhardt
Copy link
Member

We observed an unnaturally large number of errors like "storage operation id=2438 has exceeded the time limit 00:01:30" that terminate the partition.

After analysis we found that this is caused by situations where a blob creation simultaneously succeeds (i.e. blob was created) and times out. Our retry path was not correctly detecting that the blob was already created.

This PR:

  • fixes a missing check in the retry condition to avoid unlimited retries
  • adds the id into the traces for the blob creation for easier diagnostics
  • if the blob already exists, loads the e-tag, and skips the next attempt

Copy link
Member

@davidmrdavid davidmrdavid left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

one clarifying question

Comment on lines 98 to 100
catch (Azure.RequestFailedException ex) when (BlobUtilsV12.BlobDoesNotExist(ex))
{
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So why are we swallowing this exception?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I figured it would be good to at least log it, assuming the number of retries isn't all that large.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After looking at this again, there is actually no reason to swallow the exception because it is not actually expected.

(This code is only called after a previous creation failed with an e-tag exception, so at that point the blob really should exist).

I am therefore removing this try-catch.

@sebastianburckhardt sebastianburckhardt added this to the 1.4.3 milestone Mar 15, 2024
@sebastianburckhardt sebastianburckhardt merged commit 36e2ff0 into dev Mar 15, 2024
1 of 2 checks passed
sebastianburckhardt added a commit that referenced this pull request Mar 15, 2024
* fix hanging blob creation

* remove unnecessary try-catch
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants