Better retry of b2_finish_large_file

Offen
#41 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 3 Tagen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
48/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
java
Bereich
api, backend

Rechercherichtung

Start by locating the SDK method for b2_finish_large_file and the related b2_get_file_info call. Trace how the SDK handles a 400 response and check the existing tests for large file completion and API errors. Done means a 400 triggers a file info check that reports whether finishing succeeded.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

enhancement help wanted

There has been a problem with finishing large files. Sometimes the response from b2_finish_large_file is lost, which can happen because of a request timeout or broken connection. When that happens, the client can't tell whether the file was finished or not. Trying to finish the file again will return a `400 Bad Request' because the file is already finished.

Recently, a race condition has been fixed in the B2 service. Now, if there is a request to finish a file in progress, another call to b2_finish_large_file guarantees not to return a 400 until that request completes. Now, after you get a 400 back when trying to finish a file, you can call b2_get_file_info and get an accurate answer as to whether the file was finished.

Now, the SDK needs to be extended to check whether finishing a file succeeded if a 400 is returned from b2_finish_large_file.

Vorherrschende Sprache
Java
Sterne
103
Forks
23
Ø Merge
5 T. 8 Std.
Gemergte PRs (30 T.)
3

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus Backblaze/b2-sdk-java

Alle Issues in Backblaze/b2-sdk-java

Ähnliche Issues

Weitere Issues zu Java

Neue Issues direkt in Ihr Postfach

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