Project

General

Profile

Actions

致命的 #1077

closed

Gtk-CRITICAL **: IA__gtk_list_store_set_value の出力を繰り返した後、特定の行でクラッシュする。

Added by cob odo about 7 years ago. Updated about 7 years ago.

Status:
終了
Priority:
通常
Target version:
Start date:
2017-11-01
Due date:
% Done:

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

Related to バグ #1078: Gtk::TreeIter が指す行の存在を確認していない箇所がある新規Actions
Actions #1

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 を試してもらって、変化があるか教えてもらえますか。

Actions #2

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時間ほど使っても落ちることはなくなったので、問題ないかと思います。ありがとうございます。

Actions #3

Updated by toshi_a 初音 about 7 years ago

  • Status changed from 解決 to 実装待ち

ありがとうございます。
今回の原因となっていた部分と同様の手法を使っている他の箇所も同じ修正を加えることにします。

Actions #4

Updated by toshi_a 初音 about 7 years ago

  • Related to バグ #1078: Gtk::TreeIter が指す行の存在を確認していない箇所がある added
Actions #5

Updated by toshi_a 初音 about 7 years ago

  • Status changed from 実装待ち to 終了

気になっている点は、現在問題になっているわけでもないので #1078 を作成し、そちらで進めます。
hotfix/3.5にmergeしました。

Actions

Also available in: Atom PDF