Azure / Azure/azure-sdk-for-python

[BlobStorage] Unsafe retry on 500 OperationTimedOut error

Offen
#39,615 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Client Service Attention Storage
Vorherrschende Sprache
Python
Sterne
5.6k
Forks
3.4k
Ø Merge
2 T. 2 Std.
Gemergte PRs (30 T.)
213

Beschreibung

- **Package Name**: azure-storage-blob (and probably other storage packages)
- **Package Version**: latest
- **Operating System**: Any
- **Python Version**: Any

**Describe the bug**
The Python SDK will retry a 500 status with error code OperationTimedOut.
https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/storage/azure-storage-blob/azure/storage/blob/_shared/policies.py#L87-L93

According to the REST API docs, this retry is unsafe:
https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes

This issue can result in data corruption:
https://github.com/Azure/azure-sdk-for-go/issues/24027

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne in sdk/storage/azure-storage-blob/azure/storage/blob/_shared/policies.py bei den Zeilen 87-93 und vergleiche das bestehende Retry-Verhalten mit der Dokumentation der REST API zu Fehlercodes. Reproduziere eine 500 OperationTimedOut-Antwort oder füge dafür Abdeckung hinzu. Überprüfe anschließend, dass der Client keine unsichere Wiederholung mehr durchführt, während anderes wiederholbares Verhalten erhalten bleibt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
azure, python
Bereich
cloud
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.