プロジェクト

全般

プロフィール

致命的 #1077

完了

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

cob odo さんが6年以上前に追加. 6年以上前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
開始日:
2017-11-01
期日:
進捗率:

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 `[]='


再現手順

起動して放置する


関連するチケット

関連している バグ #1078: Gtk::TreeIter が指す行の存在を確認していない箇所がある新規操作

toshi_a 初音 さんが6年以上前に更新

  • ステータス新規 から レビュー待ち に変更
  • 担当者cob odo にセット

Gtk-CRITICAL が複数回出ていることからも、これが直接のクラッシュの原因かは疑わしいですが、そのあたりのコードを読んだところ、アクティビティの流れがアイコンのロード速度に対して速すぎる場合、既にアクティビティタブから削除されたあとにアクティビティのアイコンのロードが完了することがあり、その場合にこの場所でエラーが発生する可能性があるのではないかという仮説を立てました。

残念ながら私の環境ではそのエラーは再現できませんでしたが、頂いたエラーログから問題の修正になると思われるcommitはしました(f03abde1)。

再現した環境で、ブランチ topic/1077-rotten-tree-iter-in-activity を試してもらって、変化があるか教えてもらえますか。

cob odo さんが6年以上前に更新

  • ステータスレビュー待ち から 解決 に変更
  • 担当者cob odo から toshi_a 初音 に変更

mikutter-subparts-imageを使用してヘビーに画像がDLされる状況で6時間ほど使っても落ちることはなくなったので、問題ないかと思います。ありがとうございます。

toshi_a 初音 さんが6年以上前に更新

  • ステータス解決 から 実装待ち に変更

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

toshi_a 初音 さんが6年以上前に更新

  • 関連している バグ #1078: Gtk::TreeIter が指す行の存在を確認していない箇所がある を追加

toshi_a 初音 さんが6年以上前に更新

  • ステータス実装待ち から 終了 に変更

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

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