プロジェクト

全般

プロフィール

致命的 #605

完了

しばらく動作させた後、メッセージをクリックすると落ちる

Satoshi Okuno さんが10年以上前に追加. 10年以上前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
開始日:
2013-07-28
期日:
進捗率:

0%

プラグイン名:
gtk

説明

mikutterを1〜2時間くらい愉快に使っていると、なんかdestroyされたミラクルペインターでreleaseイベントが発生するタイミングがあるらしく、それを引き当てると落ちます。

releaseが発生するメカニズムを探っていたんですが、どうもよくわからず。
一先ずmiracle_painter.rbのreleasedでdestoroyされたかチェックする様にしました。

developブランチのformat-patchを添付します。

MacPorts:gtk 2.24.20、ruby19 1.9.3-p448
gem: gtk2 (2.0.0, 1.2.6)

----- 出た例外 -----

/Users/moguno/mikutter_shortcut/core/mui/cairo_textselector.rb:32:in `textselector_unselect': can't modify frozen Gdk::MiraclePainter
from /Users/moguno/mikutter_shortcut/core/lib/uithreadonly.rb:22:in `block (2 levels) in singletonclass'
from /Users/moguno/mikutter_shortcut/core/mui/cairo_miracle_painter.rb:182:in `unselect'
from /Users/moguno/mikutter_shortcut/core/lib/uithreadonly.rb:22:in `block (2 levels) in singletonclass'
from /Users/moguno/mikutter_shortcut/core/mui/cairo_miracle_painter.rb:137:in `released'
from /Users/moguno/mikutter_shortcut/core/lib/uithreadonly.rb:22:in `block (2 levels) in singletonclass'
from /Users/moguno/mikutter_shortcut/core/mui/cairo_cell_renderer_message.rb:180:in `block in event_hooks'
from /Users/moguno/mikutter_shortcut/core/mui/gtk_extension.rb:21:in `call'
from /Users/moguno/mikutter_shortcut/core/mui/gtk_extension.rb:21:in `block in safety_signal_connect'
from /Users/moguno/mikutter_shortcut/core/mui/cairo_cell_renderer_message.rb:173:in `event_hooks'
from /Users/moguno/mikutter_shortcut/core/mui/cairo_cell_renderer_message.rb:110:in `tree='
from /Users/moguno/mikutter_shortcut/core/mui/cairo_inner_tl.rb:54:in `block in column_schemer'
from /Users/moguno/mikutter_shortcut/core/mui/gtk_crud.rb:101:in `call'
from /Users/moguno/mikutter_shortcut/core/mui/gtk_crud.rb:101:in `get_render_by'
from /Users/moguno/mikutter_shortcut/core/mui/gtk_crud.rb:88:in `block in set_columns'
from /Users/moguno/mikutter_shortcut/core/mui/gtk_crud.rb:75:in `each'
from /Users/moguno/mikutter_shortcut/core/mui/gtk_crud.rb:75:in `inject'
from /Users/moguno/mikutter_shortcut/core/mui/gtk_crud.rb:75:in `set_columns'
from /Users/moguno/mikutter_shortcut/core/mui/gtk_crud.rb:16:in `initialize'
from /Users/moguno/mikutter_shortcut/core/mui/gtk_tree_view_pretty_scroll.rb:13:in `initialize'
from /Users/moguno/mikutter_shortcut/core/mui/cairo_inner_tl.rb:34:in `initialize'
from /Users/moguno/mikutter_shortcut/core/lib/uithreadonly.rb:22:in `block (2 levels) in singletonclass'
from /Users/moguno/mikutter_shortcut/core/mui/cairo_timeline.rb:44:in `new'
from /Users/moguno/mikutter_shortcut/core/mui/cairo_timeline.rb:44:in `initialize'
from /Users/moguno/mikutter_shortcut/core/mui/gtk_timeline_utils.rb:30:in `new'
from /Users/moguno/mikutter_shortcut/core/mui/gtk_timeline_utils.rb:30:in `new'
from /Users/moguno/mikutter_shortcut/core/plugin/gtk/gtk.rb:178:in `block (2 levels) in <top (required)>'
from /Users/moguno/mikutter_shortcut/core/event_listener.rb:25:in `call'
from /Users/moguno/mikutter_shortcut/core/event_listener.rb:25:in `update'
from /opt/local/lib/ruby1.9/1.9.1/observer.rb:195:in `block in notify_observers'
from /opt/local/lib/ruby1.9/1.9.1/observer.rb:194:in `each'
from /opt/local/lib/ruby1.9/1.9.1/observer.rb:194:in `notify_observers'
from /Users/moguno/mikutter_shortcut/core/event.rb:39:in `block (2 levels) in call'
from /Users/moguno/mikutter_shortcut/core/event.rb:39:in `catch'
from /Users/moguno/mikutter_shortcut/core/event.rb:39:in `block in call'
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/delayer-0.0.2/lib/delayer/procedure.rb:24:in `call'
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/delayer-0.0.2/lib/delayer/procedure.rb:24:in `run'
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/delayer-0.0.2/lib/delayer/extend.rb:58:in `run_once'
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/delayer-0.0.2/lib/delayer/extend.rb:30:in `run'
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/delayer-0.0.2/lib/delayer.rb:43:in `method_missing'
from /Users/moguno/mikutter_shortcut/core/plugin/gtk/delayer.rb:10:in `block in boot'
from /Users/moguno/mikutter_shortcut/core/plugin/gtk/mainloop.rb:10:in `call'
from /Users/moguno/mikutter_shortcut/core/plugin/gtk/mainloop.rb:10:in `main'
from /Users/moguno/mikutter_shortcut/core/plugin/gtk/mainloop.rb:10:in `mainloop'
from /Users/moguno/mikutter_shortcut/mikutter.rb:62:in `boot!'
from /Users/moguno/mikutter_shortcut/mikutter.rb:80:in `<main>'
notice: /Users/moguno/mikutter_shortcut/core/mui/gtk_extension.rb:44:in `rescue in block in __track': require-if-exist: file not found: pry
/opt/local/lib/ruby1.9/gems/1.9.1/gems/glib2-2.0.0/lib/glib2.rb:31:in `exit': exit
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/glib2-2.0.0/lib/glib2.rb:31:in `exit_application'
from /Users/moguno/mikutter_shortcut/core/mui/cairo_cell_renderer_message.rb:94:in `signal_emit'
from /Users/moguno/mikutter_shortcut/core/mui/cairo_cell_renderer_message.rb:94:in `block in tree='
from /Users/moguno/mikutter_shortcut/core/mui/gtk_extension.rb:21:in `call'
from /Users/moguno/mikutter_shortcut/core/mui/gtk_extension.rb:21:in `block in safety_signal_connect'
from /Users/moguno/mikutter_shortcut/core/mui/gtk_extension.rb:16:in `safety_signal_connect'
from /Users/moguno/mikutter_shortcut/core/lib/uithreadonly.rb:22:in `block (2 levels) in singletonclass'
from /Users/moguno/mikutter_shortcut/core/mui/cairo_cell_renderer_message.rb:89:in `tree='
from /Users/moguno/mikutter_shortcut/core/mui/cairo_inner_tl.rb:54:in `block in column_schemer'
from /Users/moguno/mikutter_shortcut/core/mui/gtk_crud.rb:101:in `call'
from /Users/moguno/mikutter_shortcut/core/mui/gtk_crud.rb:101:in `get_render_by'
from /Users/moguno/mikutter_shortcut/core/mui/gtk_crud.rb:88:in `block in set_columns'
from /Users/moguno/mikutter_shortcut/core/mui/gtk_crud.rb:75:in `each'
from /Users/moguno/mikutter_shortcut/core/mui/gtk_crud.rb:75:in `inject'
from /Users/moguno/mikutter_shortcut/core/mui/gtk_crud.rb:75:in `set_columns'
from /Users/moguno/mikutter_shortcut/core/mui/gtk_crud.rb:16:in `initialize'
from /Users/moguno/mikutter_shortcut/core/mui/gtk_tree_view_pretty_scroll.rb:13:in `initialize'
from /Users/moguno/mikutter_shortcut/core/mui/cairo_inner_tl.rb:34:in `initialize'
from /Users/moguno/mikutter_shortcut/core/lib/uithreadonly.rb:22:in `block (2 levels) in singletonclass'
from /Users/moguno/mikutter_shortcut/core/mui/cairo_timeline.rb:44:in `new'
from /Users/moguno/mikutter_shortcut/core/mui/cairo_timeline.rb:44:in `initialize'
from /Users/moguno/mikutter_shortcut/core/mui/gtk_timeline_utils.rb:30:in `new'
from /Users/moguno/mikutter_shortcut/core/mui/gtk_timeline_utils.rb:30:in `new'
from /Users/moguno/mikutter_shortcut/core/plugin/gtk/gtk.rb:178:in `block (2 levels) in <top (required)>'
from /Users/moguno/mikutter_shortcut/core/event_listener.rb:25:in `call'
from /Users/moguno/mikutter_shortcut/core/event_listener.rb:25:in `update'
from /opt/local/lib/ruby1.9/1.9.1/observer.rb:195:in `block in notify_observers'
from /opt/local/lib/ruby1.9/1.9.1/observer.rb:194:in `each'
from /opt/local/lib/ruby1.9/1.9.1/observer.rb:194:in `notify_observers'
from /Users/moguno/mikutter_shortcut/core/event.rb:39:in `block (2 levels) in call'
from /Users/moguno/mikutter_shortcut/core/event.rb:39:in `catch'
from /Users/moguno/mikutter_shortcut/core/event.rb:39:in `block in call'
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/delayer-0.0.2/lib/delayer/procedure.rb:24:in `call'
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/delayer-0.0.2/lib/delayer/procedure.rb:24:in `run'
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/delayer-0.0.2/lib/delayer/extend.rb:58:in `run_once'
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/delayer-0.0.2/lib/delayer/extend.rb:30:in `run'
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/delayer-0.0.2/lib/delayer.rb:43:in `method_missing'
from /Users/moguno/mikutter_shortcut/core/plugin/gtk/delayer.rb:10:in `block in boot'
from /Users/moguno/mikutter_shortcut/core/plugin/gtk/mainloop.rb:10:in `call'
from /Users/moguno/mikutter_shortcut/core/plugin/gtk/mainloop.rb:10:in `main'
from /Users/moguno/mikutter_shortcut/core/plugin/gtk/mainloop.rb:10:in `mainloop'
from /Users/moguno/mikutter_shortcut/mikutter.rb:62:in `boot!'
from /Users/moguno/mikutter_shortcut/mikutter.rb:80:in `<main>'
notice: /Users/moguno/mikutter_shortcut/mikutter.rb:68:in `rescue in boot!': SystemExit
Alicia:mui moguno$ ruby1.9 ~/mikutter_shortcut/mikutter.rb --debug


ファイル

0001-destroy-release.patch (1.52 KB) 0001-destroy-release.patch Satoshi Okuno, 2013-07-28 17:24

toshi_a 初音 さんが10年以上前に更新

  • ステータス新規 から レビュー待ち に変更
  • 担当者Satoshi Okuno にセット
  • 対象バージョン3.0.0 から 0.2.2 に変更

この問題は再現できません。ただ、変更自体は正当なもので、コードを見る限り理論上発生しうるエラーであることは理解できたので、取り込みました。0.2.2でも発生するはずなので、 hotfix-0.2.2 に取り込みました。一応確認お願いします。

Satoshi Okuno さんが10年以上前に更新

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

なんかお忙しいそうなところ、ありがとうございます。
差分確認しました。

developにパッチ当てた物で約1日動いてたので大丈夫とは思いますが、
0.2で暫くヒートランしてみようと思います。

本件クローズしまう。

toshi_a 初音 さんが10年以上前に更新

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

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