Better retry of b2_finish_large_file

オープン
#41 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 3 日以内に返信

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
48/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
java
領域
api, backend

調査の方向性

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.

索引モデルが issue の本文から書いたものです。

説明

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.

主要言語
Java
スター
103
フォーク
23
平均マージ
5日 8時間
マージ済み PR(30日)
3

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

Backblaze/b2-sdk-java のほかの issue

Backblaze/b2-sdk-java の issue をすべて見る

似ている issue

Java の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。