プロジェクト

全般

プロフィール

バグ #1437

完了

画像をホストしているオブジェクトストレージなどの画像を数個同時にリクエストすると、一切の画像取得がロード中で止まる

toshi_a 初音 さんが4年以上前に追加. 4年以上前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
プラグイン名:
ブランチ:
クラッシュする:
いいえ

説明

mikutterの画像取得は同時に4コネクションしか使わないようになっている。
このため、4コネクションが非常に遅いなどタイムアウトまで待たされることがあると、新たに画像をダウンロードすることができず、全ての画像がロードできなくなることがある。
専ら画像を取得するホストはせいぜいWorldの種類程度しかなかった時には特に問題にならなかったことだが、Mastodonのような分散SNSに対応したため、Worldの数と関係なくサーバ数ぶんホストが増えることになる。
不安定なサーバが出てきたときに、全てのサーバの画像がダウンロードできなくなるのは避けなければならない。

解決方法

コネクション数制限を、1ドメイン毎に4コネクションまでとする。4は根拠のない数字なので特に増やすことには問題はない。
とはいえ、現状の実装では接続数分Threadが作られてしまうため、今回のようなケースで大量のThreadが確保されると他の問題を誘発するかもしれない。
4コネクションでも平時は問題がなかったことから、上記の解決策を打って様子を見る。


再現手順

  • オブジェクトストレージなどを使っているMastodonサーバを用意する
  • オブジェクトストレージをクラッシュさせるなど、接続がタイムアウトまで止まるようにする

関連するチケット

関連している バグ #1440: メモリ消費が極端に増えることがある実装待ちtoshi_a 初音操作

他の形式にエクスポート: Atom PDF