Project

General

Profile

Actions

致命的 #799

closed

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

Added by Takaaki TSUJIMOTO over 8 years ago. Updated over 8 years ago.

Status:
終了
Priority:
通常
Target version:
Start date:
2015-12-19
Due date:
% Done:

0%

プラグイン名:
display_requirements

Description

環境

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は同じ環境でも落ちない


Files

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
Actions #1

Updated by toshi_a 初音 over 8 years ago

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

Actions #2

Updated by Takaaki TSUJIMOTO over 8 years ago

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

Actions #3

Updated by Izumi Tsutsui over 8 years ago

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 がないとツイートクリックすると落ちる

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

Actions #4

Updated by Izumi Tsutsui over 8 years ago

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' がダメなんでしょうか。

Actions #5

Updated by Izumi Tsutsui over 8 years ago

Izumi Tsutsui は書きました:

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

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

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

Actions #6

Updated by toshi_a 初音 over 8 years ago

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

Actions #7

Updated by toshi_a 初音 over 8 years ago

  • Assignee set to toshi_a 初音
  • プラグイン名 set to display_requirements

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

Actions #8

Updated by toshi_a 初音 over 8 years ago

  • Tracker changed from バグ to 致命的
Actions #9

Updated by toshi_a 初音 over 8 years ago

  • Status changed from 新規 to レビュー待ち
  • Assignee changed from toshi_a 初音 to Takaaki TSUJIMOTO

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

Actions #10

Updated by Izumi Tsutsui over 8 years ago

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

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

Actions #11

Updated by Takaaki TSUJIMOTO over 8 years ago

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

Actions #12

Updated by Takaaki TSUJIMOTO over 8 years ago

  • Status changed from レビュー待ち to 解決
Actions #13

Updated by toshi_a 初音 over 8 years ago

  • Status changed from 解決 to 終了
Actions

Also available in: Atom PDF