Azure / Azurite

A lightweight server clone of Azure Storage that simulates most of the commands supported by it with minimal dependencies
MIT License
1.8k stars 320 forks source link

BlobGCManager deletes just written extent #709

Open yuri-per opened 3 years ago

yuri-per commented 3 years ago

Which service(blob, file, queue, table) does this issue concern?

blob

Which version of the Azurite was used?

latest

Where do you get Azurite? (npm, DockerHub, NuGet, Visual Studio Code Extension)

GitHub

What's the Node.js version?

14.15.4

What problem was encountered?

BlobGCManager deletes just written extent.

I am attaching fragment of Azurite log. You can see that just written extent 6b079744-d236-4978-bba6-4d2b669f95c1 is deleted by the GC.

Steps to reproduce the issue?

Run test that perform multiple GET/PUT/DELETE requests. After about 1 hour of testing GET for one of previously written objects permanently fails with HTTP error 500.

Have you found a mitigation/solution?

No

XiaoningLiu commented 3 years ago

Thanks for reporting! Seems like a race condition. Newly created extent should had a protection period.