Project

General

Profile

バグ #1371

mikutter 3.9.2にて、タブを左クリックするとフリーズする。

Added by ぶっちゃん ! 15 days ago. Updated 1 day ago.

Status:
終了
Priority:
通常
Target version:
プラグイン名:
ブランチ:
topic/1373-gtk2-3.3.7
クラッシュする:
Yes

Description

・現象
mikutterがフリーズする。

・環境
  • Arch Linux(x86_64 Linux 5.2.4-arch1-1-ARCH)
  • mikutter 3.9.2(AUR版)
  • Ruby 2.6.0

・エラーログ

$ mikutter
/opt/mikutter/usr/share/mikutter/core/boot/check_config_permission.rb:11: warning: use glob patterns list instead of nul-separated patterns
GLib-GObject-CRITICAL **: g_boxed_type_register_static: assertion 'g_type_from_name (name) == 0' failed
    from /opt/mikutter/usr/lib/ruby/gems/2.6.0/gems/gobject-introspection-3.3.6/lib/gobject-introspection/loader.rb:268:in `block in load_field_writer'
    from /opt/mikutter/usr/share/mikutter/core/mui/cairo_markup_generator.rb:45:in `block in description_attr_list'
    from /opt/mikutter/usr/share/mikutter/core/plugin/score/select.rb:48:in `<<'
    from /opt/mikutter/usr/share/mikutter/core/plugin/score/select.rb:48:in `block (2 levels) in score_expand'
    from /opt/mikutter/usr/share/mikutter/core/plugin/score/select.rb:44:in `each'
    from /opt/mikutter/usr/share/mikutter/core/plugin/score/select.rb:44:in `block in score_expand'
    from /opt/mikutter/usr/share/mikutter/core/mui/cairo_markup_generator.rb:34:in `each'
    from /opt/mikutter/usr/share/mikutter/core/mui/cairo_markup_generator.rb:34:in `each'
    from /opt/mikutter/usr/share/mikutter/core/mui/cairo_markup_generator.rb:34:in `inject'
    from /opt/mikutter/usr/share/mikutter/core/mui/cairo_markup_generator.rb:34:in `description_attr_list'
    from /opt/mikutter/usr/share/mikutter/core/lib/uithreadonly.rb:22:in `block (2 levels) in singleton class'
    from /opt/mikutter/usr/share/mikutter/core/mui/cairo_miracle_painter.rb:354:in `main_message'
    from /opt/mikutter/usr/share/mikutter/core/lib/uithreadonly.rb:22:in `block (2 levels) in singleton class'
    from /opt/mikutter/usr/share/mikutter/core/mui/cairo_coordinate_module.rb:49:in `height'
    from /opt/mikutter/usr/share/mikutter/core/lib/uithreadonly.rb:22:in `block (2 levels) in singleton class'
    from /opt/mikutter/usr/share/mikutter/core/mui/cairo_cell_renderer_message.rb:145:in `render_message'
    from /opt/mikutter/usr/share/mikutter/core/mui/cairo_cell_renderer_message.rb:128:in `uri='
    from /opt/mikutter/usr/share/mikutter/core/plugin/gtk/mainloop.rb:7:in `main'
    from /opt/mikutter/usr/share/mikutter/core/plugin/gtk/mainloop.rb:7:in `block in mainloop'
    from /opt/mikutter/usr/share/mikutter/core/plugin/gtk/mainloop.rb:6:in `loop'
    from /opt/mikutter/usr/share/mikutter/core/plugin/gtk/mainloop.rb:6:in `mainloop'
    from /opt/mikutter/usr/share/mikutter/mikutter.rb:69:in `boot!'
    from /opt/mikutter/usr/share/mikutter/mikutter.rb:105:in `<main>'
GLib-CRITICAL **: g_once_init_leave: assertion 'result != 0' failed
    from /opt/mikutter/usr/lib/ruby/gems/2.6.0/gems/gobject-introspection-3.3.6/lib/gobject-introspection/loader.rb:268:in `block in load_field_writer'
    from /opt/mikutter/usr/share/mikutter/core/mui/cairo_markup_generator.rb:45:in `block in description_attr_list'
    from /opt/mikutter/usr/share/mikutter/core/plugin/score/select.rb:48:in `<<'
    from /opt/mikutter/usr/share/mikutter/core/plugin/score/select.rb:48:in `block (2 levels) in score_expand'
    from /opt/mikutter/usr/share/mikutter/core/plugin/score/select.rb:44:in `each'
    from /opt/mikutter/usr/share/mikutter/core/plugin/score/select.rb:44:in `block in score_expand'
    from /opt/mikutter/usr/share/mikutter/core/mui/cairo_markup_generator.rb:34:in `each'
    from /opt/mikutter/usr/share/mikutter/core/mui/cairo_markup_generator.rb:34:in `each'
    from /opt/mikutter/usr/share/mikutter/core/mui/cairo_markup_generator.rb:34:in `inject'
    from /opt/mikutter/usr/share/mikutter/core/mui/cairo_markup_generator.rb:34:in `description_attr_list'
    from /opt/mikutter/usr/share/mikutter/core/lib/uithreadonly.rb:22:in `block (2 levels) in singleton class'
    from /opt/mikutter/usr/share/mikutter/core/mui/cairo_miracle_painter.rb:354:in `main_message'
    from /opt/mikutter/usr/share/mikutter/core/lib/uithreadonly.rb:22:in `block (2 levels) in singleton class'
    from /opt/mikutter/usr/share/mikutter/core/mui/cairo_coordinate_module.rb:49:in `height'
    from /opt/mikutter/usr/share/mikutter/core/lib/uithreadonly.rb:22:in `block (2 levels) in singleton class'
    from /opt/mikutter/usr/share/mikutter/core/mui/cairo_cell_renderer_message.rb:145:in `render_message'
    from /opt/mikutter/usr/share/mikutter/core/mui/cairo_cell_renderer_message.rb:128:in `uri='
    from /opt/mikutter/usr/share/mikutter/core/plugin/gtk/mainloop.rb:7:in `main'
    from /opt/mikutter/usr/share/mikutter/core/plugin/gtk/mainloop.rb:7:in `block in mainloop'
    from /opt/mikutter/usr/share/mikutter/core/plugin/gtk/mainloop.rb:6:in `loop'
    from /opt/mikutter/usr/share/mikutter/core/plugin/gtk/mainloop.rb:6:in `mainloop'
    from /opt/mikutter/usr/share/mikutter/mikutter.rb:69:in `boot!'
    from /opt/mikutter/usr/share/mikutter/mikutter.rb:105:in `<main>'
^C/usr/bin/mikutter: 2 行: 10910 強制終了            /opt/mikutter/AppRun


再現手順

  • mikutterを起動する
  • タブを左クリックする

Related issues

Blocks 提案 #1373: Ruby-GNOME2 3.3.7を利用する終了Actions

History

#1

Updated by toshi_a 初音 15 days ago

  • Assignee set to ぶっちゃん !

再現しませんでした。以下のことをやってみて、結果を教えてもらえますか。

  • クラッシュしているようですが、フリーズしたので強制終了したのでしょうか。
  • 左クリックしたタブはどのタブですか。環境によって存在するタブは異なるので、いくつか(できればすべて)を試して、どれでフリーズするか教えてほしいです。
  • 同じことをmikutter 3.9.1で行っても再現するか試してほしいです。
#2

Updated by toshi_a 初音 8 days ago

  • Status changed from 分類待ち to 実装待ち
  • Assignee changed from ぶっちゃん ! to toshi_a 初音

起動直後にクラッシュするバグが発生しましたが、本件と同じバックトレースでクラッシュしました。

調査したところ、タイムラインでアンダーラインやカスタム絵文字を表示する処理でクラッシュしているようです。
アンダーラインは、mentionか(@acct のような文字列)URLのようなクリック可能なもので、これらが表示された時にクラッシュすると思われます。

引き続き以下の点について教えてほしいです。

  • 左クリックしたタブはどのタブですか。環境によって存在するタブは異なるので、いくつか(できればすべて)を試して、どれでフリーズするか教えてほしいです。

参考: https://social.mikutter.hachune.net/@shibafu528/102595997600262822

#3

Updated by toshi_a 初音 8 days ago

  • クラッシュする changed from No to Yes
#4

Updated by ぶっちゃん ! 8 days ago

返信遅れて申し訳ございません。

  • クラッシュしているようですが、フリーズしたので強制終了したのでしょうか。

フリーズするだけで、しばらく放置してると強制終了ダイアログが出たので強制終了させました。

  • 左クリックしたタブはどのタブですか。環境によって存在するタブは異なるので、いくつか(できればすべて)を試して、どれでフリーズするか教えてほしいです。
Pluginを全く入れていないバニラの状態で、
  • ホームタイムライン(Mastodon/Twitter)
  • リプライ(Mastodon/Twitter)
  • ローカルタイムライン
  • ダイレクトメッセージ
    のタブをクリックするとフリーズします。
  • Activityタブ
  • 検索タブ
    はフリーズしません。
  • 同じことをmikutter 3.9.1で行っても再現するか試してほしいです。

mikutter 3.9.1, 3.9.2, 3.9.3の全てで発生します。

原因と思われるもの
pango-1:1.44.3-1からpango-1:1.43.0-2にダウングレードすると、フリーズが発生しません。

#5

Updated by Izumi Tsutsui 6 days ago

toshi_a さんが ruby-gnome2 にバグレポートを出されていて、
速攻で ruby-gnome2 の pango gem 側に修正がコミットされています。
https://github.com/ruby-gnome2/ruby-gnome2/commit/ed7af9fbb1ce27e5a1a33363d5642a25baaba4b0#issuecomment-520624377

ruby-gnome2 の次の 3.3.7 の pango gem が pango 1.44 との組み合わせで
ビルドされていれば解決すると思います。

ruby-gnome2 pango gem をビルドするときにシステムにインストールされている
pango のバージョンとユーザー側が使用する pango のバージョンが一致している
必要がありますが、Archではすでに pango が更新されているので
パッケージビルドもその環境で行われるんですかね。

#6

Updated by toshi_a 初音 2 days ago

リリースされました。
https://github.com/ruby-gnome2/ruby-gnome2/blob/3.3.7/NEWS

これで問題なく動いてるっぽいので軽くまとめます。

#7

Updated by toshi_a 初音 2 days ago

  • Blocks 提案 #1373: Ruby-GNOME2 3.3.7を利用する added
#8

Updated by toshi_a 初音 2 days ago

  • Status changed from 実装待ち to レビュー待ち
  • Assignee changed from toshi_a 初音 to ぶっちゃん !
  • ブランチ set to topic/1373-gtk2-3.3.7

ありがとうございます。報告のおかげで、Ruby-GNOME2 Projectのpango gemに問題があることが分かりました。
今朝修正されたものがリリースされたので、 topic/1373-gtk2-3.3.7 ブランチをcheckoutして起動してみてください。
(Archのパッケージでやっているようなので、ソースからの起動で確認するのが難しい場合は教えてください)

#9

Updated by ぶっちゃん ! 1 day ago

  • Status changed from レビュー待ち to マージ待ち

対応ありがとうございます。

今朝修正されたものがリリースされたので、 topic/1373-gtk2-3.3.7 ブランチをcheckoutして起動してみてください。

確認しました。問題なく動いています。

#10

Updated by toshi_a 初音 1 day ago

  • Status changed from マージ待ち to 終了

merged.

Also available in: Atom PDF