Acquiring a blob lease without a duration causes later requests to return 500
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 65/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- azure, python, typescript
- Ambito
- backend
Direzione di ricerca
Start by running the Python reproduction script from the issue against a local Azurite Blob endpoint, then watch the server log. Search the TypeScript source for the LeaseExpiredState constructor and for where the x-ms-lease-duration value is read during lease acquire. Done when a lease acquire without a duration returns 400 MissingRequiredHeader and the later blob GET and container listing both return normal responses.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Lease acquire accepts a missing x-ms-lease-duration, then the blob and its container listing return 500.
On a local Azurite Blob endpoint at 127.0.0.1:10000 with its default development account, run this Python 3 script (standard library only):
import http.client, uuid
# SAS derived from Azurite's public default development key, not a cloud credential.
sas = "sv=2023-11-03&ss=b&srt=sco&sp=rwdl&se=2099-01-01&sig=gF53rwiyjUw0Grh2NB8D%2Bw%2FK1kP1kspe6Cj3FCMjg%2F0%3D"
container = "repro" + uuid.uuid4().hex
def request(method, path, headers=None, body=b""):
headers = {"x-ms-version": "2023-11-03", **(headers or {})}
suffix = "&" if "?" in path else "?"
conn = http.client.HTTPConnection("127.0.0.1", 10000, timeout=3)
conn.request(method, "/devstoreaccount1/" + path + suffix + sas, body, headers)
response = conn.getresponse()
status, data, response_headers = response.status, response.read(), {name.lower(): value for name, value in response.getheaders()}
conn.close()
print(method, path, status, data if method == "GET" and "comp=list" not in path else b"")
return status, data, response_headers
request("PUT", container + "?restype=container")
request("PUT", container + "/b", {"x-ms-blob-type": "BlockBlob"})
request("PUT", container + "/b?comp=lease", {"x-ms-lease-action": "acquire"})
request("GET", container + "/b")
request("GET", container + "?restype=container&comp=list")
Actual: acquire returns 201; both GETs return 500. Expected: acquire returns 400 MissingRequiredHeader, without corrupting later requests. Acquiring with duration 15 works. The error log says LeaseExpiredState:constructor() error, incoming leaseDurationSeconds undefined.
Tested on a local Azurite main build dated 2026-10-14, package 3.37.0, image ID 36a731a849ee706bae6cd312c2547509ad584a1e9bddc7c924374d1ae084da88. Every request explicitly uses API version 2023-11-03. The source commit of that local build was not recorded.
- Lingua principale
- TypeScript
- Stelle
- 2.3k
- Fork
- 399
- Merge medio
- 1g 2h
- PR unite (30g)
- 49
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Azure/Azurite
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
Azure/Azurite#2865 · 3 reazioni ·
I maintainer di solito rispondono entro 1 giorno
-
Get Blob with Range bytes=-1 returns 500Forse già presa @hippi345 l’ha presa 8 giorni fa. Aperta
Difficoltà 3/5 Mezza giornata Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
PUT to a snapshot URL overwrites the base blobForse già presa @hippi345 l’ha presa 8 giorni fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 Mezza giornata Idoneità per principianti 62/100
Azure/Azurite#2845 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 48/100
Azure/Azurite#2844 · 2 reazioni ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di Azure/Azurite
Issue simili
-
freshness freshness:observed-only
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
thoroc/context-radar#282 ·
-
bug P2 rust
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
area: web
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
gabe-santana/arkdraw#25 ·
-
bug require-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
expressjs/expressjs.com#2549 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
bug good first issue hacktoberfest
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
codercops/discord-bot#101 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno