プロジェクト

全般

プロフィール

バグ #622

完了

ネットワーク接続が切断された際にCPU使用率が100%になる

Takuma Nakajima さんが10年以上前に追加. 10年以上前に更新.

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

説明

ストリームが切断された場合, core/lib/mikutwitter/streaming_failed_actions.rb でエラーを確認し,再接続を試みるが,
ネットワークが切断された際はエラー内容(変数)が Exception ではなく Thread(dead) であるため,
待ち時間なしに再接続を繰り返し,CPU使用率が100%になる.

以下の変更を加えたところ,症状は再現しなくなった.
0.2.2.1373で確認したが,以前のバージョンでも同様の症状が見られる.

diff --git a/core/lib/mikutwitter/streaming_failed_actions.rb b/core/lib/mikutwitter/streaming_failed_actions.rb
index 23cbadd..c521b35 100644
--- a/core/lib/mikutwitter/streaming_failed_actions.rb
+++ b/core/lib/mikutwitter/streaming_failed_actions.rb
@@ -42,6 +42,8 @@ class MikuTwitter::StreamingFailedActions
       @last_code = e.code
     elsif e.is_a? Exception
       tcperror
+    elsif e.is_a? Thread
+      networkerror unless e.alive?
     end
   end

@@ -105,6 +107,7 @@ class MikuTwitter::StreamingFailedActions
       @wait_time += 0.25
       if @wait_time > 16
         @wait_time = 16 end end end
+  alias networkerror tcperror

   def httperror
     @fail_count += 1

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