プロジェクト

全般

プロフィール

バグ #466

読み込み中にTLを閉じると落ちる

Osamu Koga約6年前に追加. 10日前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
プラグイン名:
ブランチ:
クラッシュする:
いいえ

説明

プロフィール画面を開いたときなど,TLが読み込まれる時に画像が最後まで読み込まれるのを待たずに閉じると落ちるっぽい.
なぜかSystemExit扱いで死んでいるので,--debugで起動したらこんなん出ました.
rev792で確認.

/home/osa/app/mikutter/trunk/core/lib/uithreadonly.rb:22:in `get_property': destroyed GLib::Object
         from /home/osa/app/mikutter/trunk/core/lib/uithreadonly.rb:22:in `block (2 levels) in singletonclass'
         from (eval):1:in `model'
         from /home/osa/app/mikutter/trunk/core/lib/uithreadonly.rb:22:in `block (2 levels) in singletonclass'
         from /home/osa/app/mikutter/trunk/core/mui/cairo_miracle_painter.rb:68:in `block in mp_modifier'
         from /home/osa/app/mikutter/trunk/core/mui/gtk_extension.rb:21:in `call'
         from /home/osa/app/mikutter/trunk/core/mui/gtk_extension.rb:21:in `block in safety_signal_connect'
         from /home/osa/app/mikutter/trunk/core/lib/uithreadonly.rb:22:in `call'
         from /home/osa/app/mikutter/trunk/core/lib/uithreadonly.rb:22:in `signal_emit'
         from /home/osa/app/mikutter/trunk/core/lib/uithreadonly.rb:22:in `block (2 levels) in singletonclass'
         from /home/osa/app/mikutter/trunk/core/mui/cairo_miracle_painter.rb:244:in `on_modify'
         from /home/osa/app/mikutter/trunk/core/lib/uithreadonly.rb:22:in `block (2 levels) in singletonclass'
         from /home/osa/app/mikutter/trunk/core/mui/cairo_miracle_painter.rb:350:in `block in main_icon'
         from /home/osa/app/mikutter/trunk/core/mui/gtk_web_image_loader.rb:223:in `call'
         from /home/osa/app/mikutter/trunk/core/mui/gtk_web_image_loader.rb:223:in `block (2 levels) in via_internet'
         from /home/osa/app/mikutter/trunk/core/delayer.rb:37:in `call'
         from /home/osa/app/mikutter/trunk/core/delayer.rb:37:in `run'
         from /home/osa/app/mikutter/trunk/core/delayer.rb:63:in `block (2 levels) in run'
         from /home/osa/app/mikutter/trunk/core/delayer.rb:59:in `each'
         from /home/osa/app/mikutter/trunk/core/delayer.rb:59:in `block in run'
         from /home/osa/app/mikutter/trunk/core/delayer.rb:55:in `times'
         from /home/osa/app/mikutter/trunk/core/delayer.rb:55:in `run'
         from mikutter.rb:37:in `block in <main>'
         from mikutter.rb:62:in `call'
         from mikutter.rb:62:in `main'
         from mikutter.rb:62:in `boot!'
         from mikutter.rb:80:in `<main>'
/home/osa/.gem/ruby/1.9.1/gems/glib2-1.1.3/lib/glib2.rb:33:in `exit': exit
         from /home/osa/.gem/ruby/1.9.1/gems/glib2-1.1.3/lib/glib2.rb:33:in `exit_application'
         from /home/osa/app/mikutter/trunk/core/lib/uithreadonly.rb:22:in `signal_emit'
         from /home/osa/app/mikutter/trunk/core/lib/uithreadonly.rb:22:in `block (2 levels) in singletonclass'
         from /home/osa/app/mikutter/trunk/core/mui/cairo_miracle_painter.rb:244:in `on_modify'
         from /home/osa/app/mikutter/trunk/core/lib/uithreadonly.rb:22:in `block (2 levels) in singletonclass'
         from /home/osa/app/mikutter/trunk/core/mui/cairo_miracle_painter.rb:350:in `block in main_icon'
         from /home/osa/app/mikutter/trunk/core/mui/gtk_web_image_loader.rb:223:in `call'
         from /home/osa/app/mikutter/trunk/core/mui/gtk_web_image_loader.rb:223:in `block (2 levels) in via_internet'
         from /home/osa/app/mikutter/trunk/core/mui/gtk_web_image_loader.rb:223:in `new'
         from /home/osa/app/mikutter/trunk/core/mui/gtk_web_image_loader.rb:223:in `block in via_internet'
         from /home/osa/app/mikutter/trunk/core/mui/gtk_web_image_loader.rb:117:in `call'
         from /home/osa/app/mikutter/trunk/core/mui/gtk_web_image_loader.rb:117:in `block in get_raw_data_load_proc'
         from /home/osa/app/mikutter/trunk/core/mui/gtk_web_image_loader_image_cache.rb:28:in `block in synchronize'
         from /usr/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
         from /home/osa/app/mikutter/trunk/core/mui/gtk_web_image_loader_image_cache.rb:27:in `synchronize'
         from /home/osa/app/mikutter/trunk/core/mui/gtk_web_image_loader.rb:96:in `get_raw_data_load_proc'
         from /home/osa/app/mikutter/trunk/core/mui/gtk_web_image_loader.rb:86:in `block in get_raw_data'
         from /home/osa/app/mikutter/trunk/core/serialthread.rb:51:in `call'
         from /home/osa/app/mikutter/trunk/core/serialthread.rb:51:in `block in new_thread'
         from /home/osa/app/mikutter/trunk/core/lib/deferred/deferred.rb:71:in `call'
         from /home/osa/app/mikutter/trunk/core/lib/deferred/deferred.rb:71:in `block in initialize'
notice: mikutter.rb:68:in `rescue in boot!': SystemExit
error: {MIKUTTER_DIR}/core/serialthread.rb:58:in `rescue in block in new_thread': can't alloc thread
from {MIKUTTER_DIR}/core/serialthread.rb:48:in `new'
from {MIKUTTER_DIR}/core/serialthread.rb:48:in `new_thread'
from {MIKUTTER_DIR}/core/serialthread.rb:44:in `block in flush'
from /usr/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
from {MIKUTTER_DIR}/core/serialthread.rb:39:in `flush'
from {MIKUTTER_DIR}/core/serialthread.rb:52:in `block in new_thread'
from {MIKUTTER_DIR}/core/lib/deferred/deferred.rb:71:in `call'
from {MIKUTTER_DIR}/core/lib/deferred/deferred.rb:71:in `block in initialize'
error: {MIKUTTER_DIR}/core/serialthread.rb:58:in `rescue in block in new_thread': can't alloc thread
from {MIKUTTER_DIR}/core/serialthread.rb:48:in `new'
from {MIKUTTER_DIR}/core/serialthread.rb:48:in `new_thread'
from {MIKUTTER_DIR}/core/serialthread.rb:44:in `block in flush'
from /usr/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
from {MIKUTTER_DIR}/core/serialthread.rb:39:in `flush'
from {MIKUTTER_DIR}/core/serialthread.rb:52:in `block in new_thread'
from {MIKUTTER_DIR}/core/lib/deferred/deferred.rb:71:in `call'
from {MIKUTTER_DIR}/core/lib/deferred/deferred.rb:71:in `block in initialize'

mp_patch.diff (843 Bytes) mp_patch.diff Osamu Koga, 2012-05-27 16:19

関係しているリビジョン

リビジョン a9886b2d (差分)
toshi_a 初音約6年前に追加

過去のRubyGTKのメモリリークバグ回避のためにタイムラインを定期的にリフレッシュしていた処理を試験的に削除してみた refs #466

git-svn-id: svn://toshia.dip.jp/mikutter/branches/0.1.1@793 03aab468-d3d2-4883-8b12-f661bbf03fa8

リビジョン a9886b2d (差分)
toshi_a 初音約6年前に追加

過去のRubyGTKのメモリリークバグ回避のためにタイムラインを定期的にリフレッシュしていた処理を試験的に削除してみた refs #466

git-svn-id: svn://toshia.dip.jp/mikutter/branches/0.1.1@793 03aab468-d3d2-4883-8b12-f661bbf03fa8

リビジョン 92f4aeaa (差分)
toshi_a 初音約6年前に追加

プロフィールの読み込みが終わる前に閉じるとクラッシュすることがある refs #466

git-svn-id: svn://toshia.dip.jp/mikutter/branches/0.1.1@796 03aab468-d3d2-4883-8b12-f661bbf03fa8

リビジョン 92f4aeaa (差分)
toshi_a 初音約6年前に追加

プロフィールの読み込みが終わる前に閉じるとクラッシュすることがある refs #466

git-svn-id: svn://toshia.dip.jp/mikutter/branches/0.1.1@796 03aab468-d3d2-4883-8b12-f661bbf03fa8

リビジョン 0bcbea7a (差分)
toshi_a 初音約6年前に追加

Gtk::TreeViewが削除された時にGtk::MiraclePainter#destroyが呼ばれていなかった refs #466

git-svn-id: svn://toshia.dip.jp/mikutter/branches/0.1.1@797 03aab468-d3d2-4883-8b12-f661bbf03fa8

リビジョン 0bcbea7a (差分)
toshi_a 初音約6年前に追加

Gtk::TreeViewが削除された時にGtk::MiraclePainter#destroyが呼ばれていなかった refs #466

git-svn-id: svn://toshia.dip.jp/mikutter/branches/0.1.1@797 03aab468-d3d2-4883-8b12-f661bbf03fa8

履歴

#1 toshi_a 初音約6年前に更新

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

対応できたと思うので、確認お願いします。0.1.1にて対応してtrunkにマージ済です

#2 Osamu Koga約6年前に更新

rev795で試しましたが,直ってないっぽいです.
(再現手順:検索などでTLに流れてきていない人を探す(キャッシュ回避のため)→その人のプロフィールを開く→即閉じる→会話やRT等で,キャッシュされてないアイコンを参照する必要があると落ちる)
手元でmp_modifierにパッチ当てたら直ったので添付します.

どうもスレッド実行順序の問題なのか,MiraclePainter#main_iconのコールバックが呼ばれてから,signal_emitでmp_modifierが呼ばれるまでdestroyed?がfalseになっていることがあるようです.
で,結果としてmp_modifierで既にdestroyされているmiracle_painter.treeを参照して死んでしまっているっぽいです.

#3 toshi_a 初音約6年前に更新

  • ステータスまだダメ から レビュー待ち に変更

r796 で0.1.1ブランチにパッチを適用しました。

#4 Osamu Koga約6年前に更新

確認しました.

#5 toshi_a 初音10日前に更新

  • ステータスレビュー待ち から 終了 に変更

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