致命的 #1077
closedGtk-CRITICAL **: IA__gtk_list_store_set_value の出力を繰り返した後、特定の行でクラッシュする。
0%
Description
標準エラー出力に
Gtk-CRITICAL **: IA__gtk_list_store_set_value: assertion 'VALID_ITER (iter, list_store)' failed
を繰り返し出し、最終的にSegmentation faultでクラッシュします。
追加プラグインなしで再現します。
環境はWSL(Ubuntu)で、mikutterバージョンは3.5.13、rubyはrbenvでインストールした2.4.2です。
#1068 と関係するかもしれません。
--debug
付きで採取したログを添付します。
Files
バックトレース
-- Ruby level backtrace information ----------------------------------------
./mikutter.rb:94:in `<main>'
./mikutter.rb:65:in `boot!'
/home/cobodo/repos/mikutter-master/core/plugin/gtk/mainloop.rb:10:in `mainloop'
/home/cobodo/repos/mikutter-master/core/plugin/gtk/mainloop.rb:10:in `main'
/home/cobodo/repos/mikutter-master/core/plugin/gtk/delayer.rb:10:in `block in boot'
/home/cobodo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/delayer-0.0.2/lib/delayer.rb:43:in `method_missing'
/home/cobodo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/delayer-0.0.2/lib/delayer/extend.rb:30:in `run'
/home/cobodo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/delayer-0.0.2/lib/delayer/extend.rb:58:in `run_once'
/home/cobodo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/delayer-0.0.2/lib/delayer/procedure.rb:24:in `run'
/home/cobodo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/delayer-deferred-1.0.4/lib/delayer/deferred/deferredable.rb:68:in + `block (3 levels) in _call'
/home/cobodo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/delayer-deferred-1.0.4/lib/delayer/deferred/deferredable.rb:25:in + `call'
/home/cobodo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/delayer-deferred-1.0.4/lib/delayer/deferred/deferredable.rb:58:in + `_call'
/home/cobodo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/delayer-deferred-1.0.4/lib/delayer/deferred/deferredable.rb:58:in + `catch'
/home/cobodo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/delayer-deferred-1.0.4/lib/delayer/deferred/deferredable.rb:59:in + `block in _call'
/home/cobodo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/delayer-deferred-1.0.4/lib/delayer/deferred/deferredable.rb:59:in + `catch'
/home/cobodo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/delayer-deferred-1.0.4/lib/delayer/deferred/deferredable.rb:60:in + `block (2 levels) in _call'
/home/cobodo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/delayer-deferred-1.0.4/lib/delayer/deferred/deferredable.rb:77:in + `_execute'
/home/cobodo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/delayer-deferred-1.0.4/lib/delayer/deferred/deferredable.rb:63:in + `block (3 levels) in _call'
/home/cobodo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/delayer-deferred-1.0.4/lib/delayer/deferred/deferredable.rb:25:in + `call'
/home/cobodo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/delayer-deferred-1.0.4/lib/delayer/deferred/deferredable.rb:58:in + `_call'
/home/cobodo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/delayer-deferred-1.0.4/lib/delayer/deferred/deferredable.rb:58:in + `catch'
/home/cobodo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/delayer-deferred-1.0.4/lib/delayer/deferred/deferredable.rb:59:in + `block in _call'
/home/cobodo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/delayer-deferred-1.0.4/lib/delayer/deferred/deferredable.rb:59:in + `catch'
/home/cobodo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/delayer-deferred-1.0.4/lib/delayer/deferred/deferredable.rb:60:in + `block (2 levels) in _call'
/home/cobodo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/delayer-deferred-1.0.4/lib/delayer/deferred/deferredable.rb:77:in + `_execute'
/home/cobodo/repos/mikutter-master/core/plugin/activity/activity.rb:182:in `block (3 levels) in <top (required)>'
/home/cobodo/repos/mikutter-master/core/plugin/activity/activity.rb:182:in `[]='
再現手順
起動して放置する
Related issues
Updated by toshi_a 初音 about 7 years ago
- Status changed from 新規 to レビュー待ち
- Assignee set to cob odo
Gtk-CRITICAL が複数回出ていることからも、これが直接のクラッシュの原因かは疑わしいですが、そのあたりのコードを読んだところ、アクティビティの流れがアイコンのロード速度に対して速すぎる場合、既にアクティビティタブから削除されたあとにアクティビティのアイコンのロードが完了することがあり、その場合にこの場所でエラーが発生する可能性があるのではないかという仮説を立てました。
残念ながら私の環境ではそのエラーは再現できませんでしたが、頂いたエラーログから問題の修正になると思われるcommitはしました(f03abde1)。
再現した環境で、ブランチ topic/1077-rotten-tree-iter-in-activity を試してもらって、変化があるか教えてもらえますか。
Updated by cob odo about 7 years ago
- Status changed from レビュー待ち to 解決
- Assignee changed from cob odo to toshi_a 初音
mikutter-subparts-imageを使用してヘビーに画像がDLされる状況で6時間ほど使っても落ちることはなくなったので、問題ないかと思います。ありがとうございます。
Updated by toshi_a 初音 about 7 years ago
- Status changed from 解決 to 実装待ち
ありがとうございます。
今回の原因となっていた部分と同様の手法を使っている他の箇所も同じ修正を加えることにします。
Updated by toshi_a 初音 about 7 years ago
- Related to バグ #1078: Gtk::TreeIter が指す行の存在を確認していない箇所がある added
Updated by toshi_a 初音 about 7 years ago
- Status changed from 実装待ち to 終了
気になっている点は、現在問題になっているわけでもないので #1078 を作成し、そちらで進めます。
hotfix/3.5にmergeしました。