Project

General

Profile

Actions

バグ #466

closed

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

Added by Osamu Koga over 14 years ago. Updated about 8 years ago.

Status:
終了
Priority:
通常
Assignee:
Target version:
プラグイン名:
ブランチ:
クラッシュする:
No

Description

プロフィール画面を開いたときなど,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'


Files

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

Updated by toshi_a 初音 about 14 years ago

  • Status changed from 新規 to レビュー待ち
  • Assignee set to Osamu Koga
  • Target version set to 0.1.1

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

Actions #2

Updated by Osamu Koga about 14 years ago

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

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

Actions #3

Updated by toshi_a 初音 about 14 years ago

  • Status changed from まだダメ to レビュー待ち

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

Actions #4

Updated by Osamu Koga about 14 years ago

確認しました.

Actions #5

Updated by toshi_a 初音 about 8 years ago

  • Status changed from レビュー待ち to 終了
Actions

Also available in: Atom PDF