プロジェクト

全般

プロフィール

致命的 #799

完了

ツイートをクリックするとセグフォで落ちる

Takaaki TSUJIMOTO さんがほぼ9年前に追加. ほぼ9年前に更新.

ステータス:
終了
優先度:
通常
対象バージョン:
開始日:
2015-12-19
期日:
進捗率:

0%

プラグイン名:
display_requirements

説明

環境

ArchLinux
ruby 2.2.4p230
ruby-glib2 2.2.5
ruby-atk 2.2.5
ruby-cairo 1.14.3
ruby-pango 2.2.5
ruby-gdk_pixbuf2 2.2.5
ruby-gtk2 2.2.5
ruby-nokogiri 1.6.6.2
ruby-httpclient 2.6.0.1
ruby-moneta 0.8.0
mikutter 3.2.11

現象
ツイートをクリックするとGdk::MiraclePainter#clicked()でiob_clicked()を呼んだ時にセグフォで落ちる。
mikutter3.2.10は同じ環境でも落ちない


ファイル

error.log (102 KB) error.log Takaaki TSUJIMOTO, 2015-12-19 22:46
teokure-requirements.diff (724 Bytes) teokure-requirements.diff Izumi Tsutsui, 2015-12-20 12:41

toshi_a 初音 さんがほぼ9年前に更新

簡単にできるところで、RubyGTK2とかを 2.2.5にしましたが、正常に動いているように見えます。
一応、2.2.5はサポートしていないことになっているので、そっちのメンテナを突付いたほうがいいかもしれませんね。

Takaaki TSUJIMOTO さんがほぼ9年前に更新

一応、回避策としてdisplay_requirementsプラグインを入れると落ちないことを発見しました。

Izumi Tsutsui さんがほぼ9年前に更新

Takaaki TSUJIMOTO は書きました:

一応、回避策としてdisplay_requirementsプラグインを入れると落ちないことを発見しました。

これを見て NetBSD/i386 7.0 で mikutter 3.2.11 + ruby-gnome2 3.0.7 で試してみたのですが、

  • ~/.mikutter/plugin/display_requirements.rb があると落ちない
  • ~/.mikutter/plugin/display_requirements.rb がないとツイートクリックすると落ちる

で再現性ある感じですね……。ちょっとマズいかも。

Izumi Tsutsui さんがほぼ9年前に更新

mikutter --debug でログ取ってみましたが

notice: {MIKUTTER_DIR}/core/mui/cairo_cell_renderer_message.rb:106:in `block in tree=': now: 1 last: 0
notice: {MIKUTTER_DIR}/core/plugin/gui/hierarchy_parent.rb:71:in `set_active_child': active child set #<Plugin::GUI::Timeline(role=timeline,slug=home_timeline)> => nil
notice: {MIKUTTER_DIR}/core/plugin/gui/hierarchy_parent.rb:71:in `set_active_child': active child set #<Plugin::GUI::Tab(role=tab,slug=home_timeline)> => #<Plugin::GUI::Timeline(role=timeline,slug=home_timeline)>
notice: {MIKUTTER_DIR}/core/plugin/gui/hierarchy_parent.rb:71:in `set_active_child': active child set #<Plugin::GUI::Pane(role=pane,slug=__Plugin::GUI::Pane_2071_54a42046_61a3e473)> => #<Plugin::GUI::Tab(role=tab,slug=home_timeline)>
notice: {MIKUTTER_DIR}/core/plugin/gui/hierarchy_parent.rb:71:in `set_active_child': active child set #<Plugin::GUI::Window(role=window,slug=default)> => #<Plugin::GUI::Pane(role=pane,slug=__Plugin::GUI::Pane_2071_54a42046_61a3e473)>
/usr/pkg/share/mikutter/core/plugin/display_requirements/display_requirements.rb:175:in `iob_clicked': wrong number of arguments (2 for 0)

display_requirements.rb:175:in `iob_clicked' がダメなんでしょうか。

Izumi Tsutsui さんがほぼ9年前に更新

Izumi Tsutsui は書きました:

display_requirements.rb:175:in `iob_clicked' がダメなんでしょうか。

0dfd5e20 の core/mui/cairo_icon_over_button.rb の差分からコピペして
添付のように displayrequirements.rb の iob_clicked を直すと一応動いているようです。

が、これってプラグイン互換性の観点からするとどうなんですかね?

toshi_a 初音 さんがほぼ9年前に更新

おお、DRプラグインでしたか。そんなのもありましたね。

toshi_a 初音 さんがほぼ9年前に更新

  • 担当者toshi_a 初音 にセット
  • プラグイン名display_requirements にセット

再現できました。これは修正漏れですね。
もともと非互換な変更にdisplay_requirementsが対応していないだけなので、このパッチで正しいです。

toshi_a 初音 さんがほぼ9年前に更新

  • トラッカーバグ から 致命的 に変更

toshi_a 初音 さんがほぼ9年前に更新

  • ステータス新規 から レビュー待ち に変更
  • 担当者toshi_a 初音 から Takaaki TSUJIMOTO に変更

修正してみました。一応つじもんさんの環境でも確認してもらえますか?つついさんもお願いします。

Izumi Tsutsui さんがほぼ9年前に更新

c061b55c の display_requirements.rb を 3.2.11 のインストールツリーに上書きして、
~/.mikutter/plugin/display_requirements.rb のない状態で mikutter 起動して青い鳥ありの状態で、
ツイートをクリックしても仕様(?)通り(ツイート再描画; ユーザーアイコンクリックなら profile オープン)
で問題ありません。

#679 でもありましたが、DRの罠を回避するにはどうするのがいいんですかね〜。

Takaaki TSUJIMOTO さんがほぼ9年前に更新

リビジョン c061b55c でツイートをクリックしても落ちずに動作していることを確認できました!

Takaaki TSUJIMOTO さんがほぼ9年前に更新

  • ステータスレビュー待ち から 解決 に変更

toshi_a 初音 さんがほぼ9年前に更新

  • ステータス解決 から 終了 に変更

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