Project

General

Profile

バグ #923

Service#scan で止まっているスレッドが大量にできる

Added by rhen ium about 3 years ago. Updated about 3 years ago.

Status:
新規
Priority:
通常
Assignee:
-
Target version:
プラグイン名:
ブランチ:
クラッシュする:

Description

添付のファイルはこのコードで書き出しました。

require "pp" 
File.write("/tmp/threads.txt",Thread.list.map{|x|[x.status, x.backtrace]}.pretty_inspect)

起動後約 30 分弱の状態で、880 個のスレッドが生成されていました。スレッドのスタックトレースを見る限りでは Service#scan で詰まっているようです。

mikutter は develop ブランチにいくつかの勝手パッチ1が当たったものなのと、いくつかプラグインも入っているので、それらがなにかぶっこわしているのかもしれませんが、一応報告しておきます。

[1]: https://git.rhe.jp/mikutter.git/log/?h=5335132ecc82dfa8c158e44a60ec8c92065dcc3e


Files

threads.txt (949 KB) threads.txt rhen ium, 2016-10-29 00:05

History

#1

Updated by toshi_a 初音 about 3 years ago

ちょっと気になったので16時間ほど放置したmikutterでThread.list.sizeの結果を見てみましたが、起動直後が17だったのに対して16時間後が21ということで、恐らくThreadは全て開放されているんじゃないかと思います。
しかし今良く見たらdevelopブランチの内容だったので、3.4の最新のやつでも試す必要がありますね

#2

Updated by rhen ium about 3 years ago

わたしの環境では、放置していても新しくスレッドが増えることはないですが、減りもせず、起動後十数分で作られた数百スレッドが生きつづけたままになっているようです(どのスレッドも完全に固まっているようなので、例のメモリリークとは無関係っぽいですね...)

Also available in: Atom PDF