プロジェクト

全般

プロフィール

バグ #837

完了

ネットワーク接続を失うとmikutterのCPU使用率が上がって暴走状態になる

Akira Ouchi さんがほぼ8年前に追加. 7年以上前に更新.

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

説明

mikutter 3.3.10で、ネットワーク接続を失うとCPU使用率が上がって暴走状態になるようです。
debugでログを採取したところ、ネットワークが切断された後から以下のログが大量に出力されるのを確認できました。

notice: {MIKUTTER_DIR}/core/plugin/streaming/filter.rb:62:in `block (2 levels) in start': retry wait 0, fail_count 1
warning: {MIKUTTER_DIR}/core/plugin/streaming/filter.rb:59:in `rescue in block (2 levels) in start': filter stream: disconnected: exception Failed to open TCP connection to stream.twitter.com:443 (getaddrinfo: nodename nor servname provided, or not known)
warning: {MIKUTTER_DIR}/core/plugin/streaming/filter.rb:61:in `rescue in block (2 levels) in start': Failed to open TCP connection to stream.twitter.com:443 (getaddrinfo: nodename nor servname provided, or not known)
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:882:in `rescue in block in connect'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:879:in `block in connect'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/timeout.rb:91:in `block in timeout'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/timeout.rb:101:in `timeout'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:878:in `connect'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:863:in `do_start'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:852:in `start'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:1398:in `request'
from {MIKUTTER_DIR}/core/lib/mikutwitter/api_shortcuts.rb:208:in `stream'
from {MIKUTTER_DIR}/core/lib/mikutwitter/api_shortcuts.rb:184:in `filter_stream'
from {MIKUTTER_DIR}/core/service.rb:172:in `streaming'
from {MIKUTTER_DIR}/core/plugin/streaming/filter.rb:37:in `block (2 levels) in start'
from {MIKUTTER_DIR}/core/plugin/streaming/filter.rb:27:in `loop'
from {MIKUTTER_DIR}/core/plugin/streaming/filter.rb:27:in `block in start'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:28:in `block (3 levels) in _deferredable_trap_proc'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:26:in `catch'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:26:in `block (2 levels) in _deferredable_trap_proc'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:25:in `catch'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:25:in `block in _deferredable_trap_proc'
notice: {MIKUTTER_DIR}/core/plugin/streaming/filter.rb:62:in `block (2 levels) in start': retry wait 0.25, fail_count 2
warning: {MIKUTTER_DIR}/core/plugin/streaming/filter.rb:59:in `rescue in block (2 levels) in start': filter stream: disconnected: exception Failed to open TCP connection to stream.twitter.com:443 (getaddrinfo: nodename nor servname provided, or not known)
warning: {MIKUTTER_DIR}/core/plugin/streaming/filter.rb:61:in `rescue in block (2 levels) in start': Failed to open TCP connection to stream.twitter.com:443 (getaddrinfo: nodename nor servname provided, or not known)
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:882:in `rescue in block in connect'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:879:in `block in connect'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/timeout.rb:91:in `block in timeout'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/timeout.rb:101:in `timeout'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:878:in `connect'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:863:in `do_start'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:852:in `start'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:1398:in `request'
from {MIKUTTER_DIR}/core/lib/mikutwitter/api_shortcuts.rb:208:in `stream'
from {MIKUTTER_DIR}/core/lib/mikutwitter/api_shortcuts.rb:184:in `filter_stream'
from {MIKUTTER_DIR}/core/service.rb:172:in `streaming'
from {MIKUTTER_DIR}/core/plugin/streaming/filter.rb:37:in `block (2 levels) in start'
from {MIKUTTER_DIR}/core/plugin/streaming/filter.rb:27:in `loop'
from {MIKUTTER_DIR}/core/plugin/streaming/filter.rb:27:in `block in start'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:28:in `block (3 levels) in _deferredable_trap_proc'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:26:in `catch'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:26:in `block (2 levels) in _deferredable_trap_proc'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:25:in `catch'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:25:in `block in _deferredable_trap_proc'
notice: {MIKUTTER_DIR}/core/plugin/streaming/filter.rb:62:in `block (2 levels) in start': retry wait 0.5, fail_count 3
warning: {MIKUTTER_DIR}/core/plugin/streaming/filter.rb:59:in `rescue in block (2 levels) in start': filter stream: disconnected: exception Failed to open TCP connection to stream.twitter.com:443 (getaddrinfo: nodename nor servname provided, or not known)
warning: {MIKUTTER_DIR}/core/plugin/streaming/filter.rb:61:in `rescue in block (2 levels) in start': Failed to open TCP connection to stream.twitter.com:443 (getaddrinfo: nodename nor servname provided, or not known)
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:882:in `rescue in block in connect'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:879:in `block in connect'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/timeout.rb:91:in `block in timeout'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/timeout.rb:101:in `timeout'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:878:in `connect'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:863:in `do_start'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:852:in `start'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:1398:in `request'
from {MIKUTTER_DIR}/core/lib/mikutwitter/api_shortcuts.rb:208:in `stream'
from {MIKUTTER_DIR}/core/lib/mikutwitter/api_shortcuts.rb:184:in `filter_stream'
from {MIKUTTER_DIR}/core/service.rb:172:in `streaming'
from {MIKUTTER_DIR}/core/plugin/streaming/filter.rb:37:in `block (2 levels) in start'
from {MIKUTTER_DIR}/core/plugin/streaming/filter.rb:27:in `loop'
from {MIKUTTER_DIR}/core/plugin/streaming/filter.rb:27:in `block in start'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:28:in `block (3 levels) in _deferredable_trap_proc'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:26:in `catch'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:26:in `block (2 levels) in _deferredable_trap_proc'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:25:in `catch'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:25:in `block in _deferredable_trap_proc'
notice: {MIKUTTER_DIR}/core/plugin/streaming/filter.rb:62:in `block (2 levels) in start': retry wait 0.75, fail_count 4
error: {MIKUTTER_DIR}/core/plugin/streaming/streamer.rb:54:in `rescue in mainloop': Net::ReadTimeout
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/protocol.rb:158:in `rbuf_fill'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/protocol.rb:136:in `readuntil'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/protocol.rb:146:in `readline'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http/response.rb:313:in `read_chunked'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http/response.rb:283:in `block in read_body_0'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http/response.rb:251:in `inflater'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http/response.rb:281:in `read_body_0'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http/response.rb:202:in `read_body'
from {MIKUTTER_DIR}/core/lib/mikutwitter/api_shortcuts.rb:210:in `block in stream'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:1446:in `block in transport_request'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http/response.rb:163:in `reading_body'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:1445:in `transport_request'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:1407:in `request'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:1400:in `block in request'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:853:in `start'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:1398:in `request'
from {MIKUTTER_DIR}/core/lib/mikutwitter/api_shortcuts.rb:208:in `stream'
from {MIKUTTER_DIR}/core/lib/mikutwitter/api_shortcuts.rb:181:in `userstream'
from {MIKUTTER_DIR}/core/service.rb:172:in `streaming'
from {MIKUTTER_DIR}/core/plugin/streaming/streamer.rb:49:in `mainloop'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:28:in `block (3 levels) in _deferredable_trap_proc'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:26:in `catch'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:26:in `block (2 levels) in _deferredable_trap_proc'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:25:in `catch'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:25:in `block in _deferredable_trap_proc'
notice: {MIKUTTER_DIR}/core/plugin/streaming/perma_streamer.rb:31:in `block in mainloop': PermaStreamer exit
notice: {MIKUTTER_DIR}/core/plugin/streaming/perma_streamer.rb:32:in `block in mainloop': 
notice: {MIKUTTER_DIR}/core/plugin/streaming/perma_streamer.rb:37:in `block in mainloop': retry wait 0, fail_count 0
error: {MIKUTTER_DIR}/core/plugin/streaming/streamer.rb:54:in `rescue in mainloop': Failed to open TCP connection to userstream.twitter.com:443 (getaddrinfo: nodename nor servname provided, or not known)
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:882:in `rescue in block in connect'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:879:in `block in connect'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/timeout.rb:91:in `block in timeout'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/timeout.rb:101:in `timeout'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:878:in `connect'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:863:in `do_start'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:852:in `start'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:1398:in `request'
from {MIKUTTER_DIR}/core/lib/mikutwitter/api_shortcuts.rb:208:in `stream'
from {MIKUTTER_DIR}/core/lib/mikutwitter/api_shortcuts.rb:181:in `userstream'
from {MIKUTTER_DIR}/core/service.rb:172:in `streaming'
from {MIKUTTER_DIR}/core/plugin/streaming/streamer.rb:49:in `mainloop'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:28:in `block (3 levels) in _deferredable_trap_proc'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:26:in `catch'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:26:in `block (2 levels) in _deferredable_trap_proc'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:25:in `catch'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:25:in `block in _deferredable_trap_proc'
notice: {MIKUTTER_DIR}/core/plugin/streaming/perma_streamer.rb:31:in `block in mainloop': PermaStreamer exit
notice: {MIKUTTER_DIR}/core/plugin/streaming/perma_streamer.rb:32:in `block in mainloop': 
notice: {MIKUTTER_DIR}/core/plugin/streaming/perma_streamer.rb:37:in `block in mainloop': retry wait 0, fail_count 0
error: {MIKUTTER_DIR}/core/plugin/streaming/streamer.rb:54:in `rescue in mainloop': Failed to open TCP connection to userstream.twitter.com:443 (getaddrinfo: nodename nor servname provided, or not known)
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:882:in `rescue in block in connect'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:879:in `block in connect'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/timeout.rb:91:in `block in timeout'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/timeout.rb:101:in `timeout'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:878:in `connect'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:863:in `do_start'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:852:in `start'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:1398:in `request'
from {MIKUTTER_DIR}/core/lib/mikutwitter/api_shortcuts.rb:208:in `stream'
from {MIKUTTER_DIR}/core/lib/mikutwitter/api_shortcuts.rb:181:in `userstream'
from {MIKUTTER_DIR}/core/service.rb:172:in `streaming'
from {MIKUTTER_DIR}/core/plugin/streaming/streamer.rb:49:in `mainloop'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:28:in `block (3 levels) in _deferredable_trap_proc'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:26:in `catch'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:26:in `block (2 levels) in _deferredable_trap_proc'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:25:in `catch'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:25:in `block in _deferredable_trap_proc'
notice: {MIKUTTER_DIR}/core/plugin/streaming/perma_streamer.rb:31:in `block in mainloop': PermaStreamer exit
notice: {MIKUTTER_DIR}/core/plugin/streaming/perma_streamer.rb:32:in `block in mainloop': 
notice: {MIKUTTER_DIR}/core/plugin/streaming/perma_streamer.rb:37:in `block in mainloop': retry wait 0, fail_count 0
error: {MIKUTTER_DIR}/core/plugin/streaming/streamer.rb:54:in `rescue in mainloop': Failed to open TCP connection to userstream.twitter.com:443 (getaddrinfo: nodename nor servname provided, or not known)
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:882:in `rescue in block in connect'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:879:in `block in connect'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/timeout.rb:91:in `block in timeout'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/timeout.rb:101:in `timeout'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:878:in `connect'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:863:in `do_start'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:852:in `start'
from /Users/akkie/.rbenv/versions/2.3.0/lib/ruby/2.3.0/net/http.rb:1398:in `request'
from {MIKUTTER_DIR}/core/lib/mikutwitter/api_shortcuts.rb:208:in `stream'
from {MIKUTTER_DIR}/core/lib/mikutwitter/api_shortcuts.rb:181:in `userstream'
from {MIKUTTER_DIR}/core/service.rb:172:in `streaming'
from {MIKUTTER_DIR}/core/plugin/streaming/streamer.rb:49:in `mainloop'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:28:in `block (3 levels) in _deferredable_trap_proc'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:26:in `catch'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:26:in `block (2 levels) in _deferredable_trap_proc'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:25:in `catch'
from {MIKUTTER_DIR}/vendor/delayer/deferred/thread.rb:25:in `block in _deferredable_trap_proc'

いちおうgemのバージョンも。

$ bundle
Using rake 10.5.0
Using addressable 2.4.0
Using pkg-config 1.1.7
Using safe_yaml 1.0.4
Using delayer 0.0.2
Using egison 1.0.0
Using locale 2.1.2
Using text 1.3.1
Using hashdiff 0.3.0
Using httpclient 2.8.0
Using instance_storage 1.0.0
Using json_pure 1.8.3
Using memoist 0.14.0
Using metaclass 0.0.4
Using mini_portile2 2.0.0
Using moneta 0.8.0
Using oauth 0.4.7
Using power_assert 0.3.0
Using ruby-hmac 0.4.0
Using totoridipjp 0.1.0
Using unf_ext 0.0.7.2
Using typed-array 0.1.2
Using watch 0.1.0
Using bundler 1.12.2
Using glib2 3.0.7
Using cairo 1.15.2
Using crack 0.4.3
Using delayer-deferred 1.0.3
Using matsuya 0.1.1
Using gettext 3.0.9
Using pluggaloid 1.1.1
Using mocha 0.14.0
Using nokogiri 1.6.7.2
Using test-unit 3.1.8
Using unf 0.1.4
Using atk 3.0.7
Using gdk_pixbuf2 3.0.7
Using pango 3.0.7
Using webmock 1.24.6
Using twitter-text 1.13.4
Using gtk2 3.0.7

再現手順

ネットワーク接続を失うとCPU使用率が上がって暴走状態になる

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