Azure / Azure/azure-sdk-for-python
[BlobStorage] Unsafe retry on 500 OperationTimedOut error
- 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
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