致命的 #799
完了ツイートをクリックするとセグフォで落ちる
0%
説明
環境¶
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は同じ環境でも落ちない¶
ファイル
toshi_a 初音 さんが約9年前に更新
簡単にできるところで、RubyGTK2とかを 2.2.5にしましたが、正常に動いているように見えます。
一応、2.2.5はサポートしていないことになっているので、そっちのメンテナを突付いたほうがいいかもしれませんね。
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年前に更新
- 担当者 を toshi_a 初音 にセット
- プラグイン名 を display_requirements にセット
再現できました。これは修正漏れですね。
もともと非互換な変更にdisplay_requirementsが対応していないだけなので、このパッチで正しいです。
toshi_a 初音 さんが約9年前に更新
- ステータス を 新規 から レビュー待ち に変更
- 担当者 を toshi_a 初音 から Takaaki TSUJIMOTO に変更
修正してみました。一応つじもんさんの環境でも確認してもらえますか?つついさんもお願いします。