致命的 #1077
完了Gtk-CRITICAL **: IA__gtk_list_store_set_value の出力を繰り返した後、特定の行でクラッシュする。
0%
説明
標準エラー出力に
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
付きで採取したログを添付します。
ファイル
バックトレース
-- 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 `[]='
再現手順
起動して放置する
関連するチケット
toshi_a 初音 さんが約7年前に更新
- ステータス を 新規 から レビュー待ち に変更
- 担当者 を cob odo にセット
Gtk-CRITICAL が複数回出ていることからも、これが直接のクラッシュの原因かは疑わしいですが、そのあたりのコードを読んだところ、アクティビティの流れがアイコンのロード速度に対して速すぎる場合、既にアクティビティタブから削除されたあとにアクティビティのアイコンのロードが完了することがあり、その場合にこの場所でエラーが発生する可能性があるのではないかという仮説を立てました。
残念ながら私の環境ではそのエラーは再現できませんでしたが、頂いたエラーログから問題の修正になると思われるcommitはしました(f03abde1)。
再現した環境で、ブランチ topic/1077-rotten-tree-iter-in-activity を試してもらって、変化があるか教えてもらえますか。
toshi_a 初音 さんが約7年前に更新
- ステータス を 解決 から 実装待ち に変更
ありがとうございます。
今回の原因となっていた部分と同様の手法を使っている他の箇所も同じ修正を加えることにします。
toshi_a 初音 さんが約7年前に更新
- ステータス を 実装待ち から 終了 に変更
気になっている点は、現在問題になっているわけでもないので #1078 を作成し、そちらで進めます。
hotfix/3.5にmergeしました。