プロジェクト

全般

プロフィール

バグ #1225

userメソッドを持たないMessageモデルを使うとmikutterがクラッシュする

cob odo10ヶ月前に追加. 10ヶ月前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
プラグイン名:
mikutter-twitter-card
ブランチ:
topic/1225-userless-messaeg
クラッシュする:
はい

説明

https://dev.mikutter.hachune.net/issues/1205 にて、

全てのMessage ModelにUserに相当するものが存在するとも限らない

ということでしたが、実際にそういったものを作ると、再現手順に書いたように落ちます。これは引用前提のプラグインですが、恐らく通常通りタイムラインに載せても Gdk::MiraclePainter#header_left_markup で同じことが起こるのではないかと思います。

topic/1219-quoted-tweet へのpatchを添付します。これで一旦問題なくなると思います。


ファイル

userless_message.patch (3.97 KB) userless_message.patch topic/1219-quoted-tweetのcheckout後に当てる cob odo, 2018-05-05 16:59

再現手順

https://github.com/cobodo/mikutter-twitter-card
をインストールし、

alias_method :user, :meta

の行をコメントアウトすると、以下のトレースを吐いてクラッシュする。( /home/cobodo/repos/worldon/mikutter は{MIKUTTER_DIR}で読み替えてください)

Traceback (most recent call last):
24: from ./mikutter.rb:104:in `<main>'
23: from ./mikutter.rb:68:in `boot!'
22: from /home/cobodo/repos/worldon/mikutter/core/plugin/gtk/mainloop.rb:10:in `mainloop'
21: from /home/cobodo/repos/worldon/mikutter/core/plugin/gtk/mainloop.rb:10:in `main'
20: from /home/cobodo/repos/worldon/mikutter/core/mui/cairo_cell_renderer_message.rb:128:in `uri='
19: from /home/cobodo/repos/worldon/mikutter/core/mui/cairo_cell_renderer_message.rb:145:in `render_message'
18: from /home/cobodo/repos/worldon/mikutter/core/lib/uithreadonly.rb:22:in `block (2 levels) in singleton class'
17: from /home/cobodo/repos/worldon/mikutter/core/mui/cairo_coordinate_module.rb:48:in `height'
16: from /home/cobodo/repos/worldon/mikutter/core/lib/uithreadonly.rb:22:in `block (2 levels) in singleton class'
15: from /home/cobodo/repos/worldon/mikutter/core/mui/cairo_sub_parts_helper.rb:34:in `subparts_height'
14: from /home/cobodo/repos/worldon/mikutter/core/mui/cairo_sub_parts_helper.rb:41:in `_subparts_height'
13: from /home/cobodo/repos/worldon/mikutter/core/mui/cairo_sub_parts_helper.rb:41:in `inject'
12: from /home/cobodo/repos/worldon/mikutter/core/mui/cairo_sub_parts_helper.rb:41:in `each'
11: from /home/cobodo/repos/worldon/mikutter/core/mui/cairo_sub_parts_helper.rb:41:in `block in _subparts_height'
10: from /home/cobodo/repos/worldon/mikutter/core/mui/cairo_sub_parts_message_base.rb:215:in `height'
9: from /home/cobodo/repos/worldon/mikutter/core/mui/cairo_sub_parts_message_base.rb:215:in `inject'
8: from /home/cobodo/repos/worldon/mikutter/core/mui/cairo_sub_parts_message_base.rb:215:in `each'
7: from /home/cobodo/repos/worldon/mikutter/core/mui/cairo_sub_parts_message_base.rb:215:in `block in height'
6: from /home/cobodo/repos/worldon/mikutter/core/lib/uithreadonly.rb:22:in `block (2 levels) in singleton class'
5: from /home/cobodo/repos/worldon/mikutter/core/mui/cairo_sub_parts_message_base.rb:258:in `message_height'
4: from /home/cobodo/repos/worldon/mikutter/core/lib/uithreadonly.rb:22:in `block (2 levels) in singleton class'
3: from /home/cobodo/repos/worldon/mikutter/core/mui/cairo_sub_parts_message_base.rb:282:in `header_left'
2: from /home/cobodo/repos/worldon/mikutter/core/mui/cairo_sub_parts_quote.rb:86:in `header_left_content'
1: from /home/cobodo/repos/worldon/mikutter/core/lib/uithreadonly.rb:22:in `block (2 levels) in singleton class'
/home/cobodo/repos/worldon/mikutter/core/mui/cairo_sub_parts_message_base.rb:43:in `header_left_content': undefined method `user' for #<Plugin::TwitterCard::TwitterCard:0x00007ffff6e774c8> (NoMethodError)


関連するチケット

関連している バグ #1229: 特定のMessage Modelが表示される時クラッシュすることがある終了操作

関係しているリビジョン

リビジョン 4871cfe0 (差分)
toshi_a 初音10ヶ月前に追加

userメソッドを持たないMessageモデルを使うとmikutterがクラッシュする refs #1225

履歴

#1

toshi_a 初音10ヶ月前に更新

  • ステータス分類待ち から パッチ適用待ち に変更

妥当な修正だと思います。

#2

toshi_a 初音10ヶ月前に更新

  • ステータスパッチ適用待ち から レビュー待ち に変更
  • 担当者cob odo にセット
  • ブランチtopic/1225-userless-messaeg にセット

pushしました。一応確認してみてください。

#3

cob odo10ヶ月前に更新

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

確認しました。問題なさそうでしたので、developへmergeしました。

#4

toshi_a 初音10ヶ月前に更新

  • 関連している バグ #1229: 特定のMessage Modelが表示される時クラッシュすることがある を追加

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