TOKUNAGA Hiroyuki
tkng****@xem*****
2005年 8月 14日 (日) 03:35:29 JST
On Sat, 13 Aug 2005 18:12:53 +0900 dai <d+r****@vdr*****> wrote: > dai と申します。 > > いつもありがとうございます。 > > On Sat, 13 Aug 2005 17:09:55 +0900 > TOKUNAGA Hiroyuki <tkng****@xem*****> wrote: > > > > > 風博士とuim-Anthyを使っていていたら,風博士が落ちたので,バッ > > > > > クとレースを見てみたところuim_quit()を何度も呼び出して落ちて > > > > > いました. > > > > > # 2,30回くらい呼び出したところで落ちていた. > > > > uim 0.4.8alpha1 と trunk r1095 でも多分同様の症状で > > > Mozilla Firefox と sylpheed-gtk2 が落ちました。 > > > Mozilla Firefox が落ちたときには 150 回くらい uim_quit を呼んでい > > > ます。パッチ等は示すことはできませんが、ご報告させていただきます。 > > > > うーん、こういう再現性の低いバグはなやましいですね…。(手元ではまっ > > たく再現できていません)ちょっとコードを眺めてみたのですが、情報が少 > > なすぎて怪しいところの見当もつけられませんでした。 > > > > uim_quitが呼ばれる直前の関数はなにが呼ばれているか、教えていただけな > > いでしょうか?それがわかれば、もうちょっと怪しいところが絞れるかもし > > れません。(デバッグオプション付きでのバックトレースとかがあると、 > > もっとうれしいです。) > > Mozilla Firefox と sylpheed-gtk2 では次のようになります。 > これは ochusha で出たものですが、ほぼ同じ感じです。 ありがとうございます。GTK+の方のg_object_unrefから gtk_im_multicontext_newが呼ばれるというパターンは前に見た覚えはあるので すが、どうやって解決したのかは思い出せません。 https://bugs.freedesktop.org/show_bug.cgi?id=586 http://lists.sourceforge.jp/mailman/archives/anthy-dev/2004-May/000797.html あたりかなということで、とりあえず最近の変更のなかで終了処理回りに関して 変わったことが無いかを調べてみましたが、特に怪しげなところは見付かりませ んでした。 もしよろしければ、以下の質問に答えていただけますか? 使っているOSとバージョンは? uimのconfigureのオプションは? 使っているIMは? 落ちる頻度は? どのような動作をした時に落ちるか? > #0 0x423fd613 in uim_quit () from /usr/lib/libuim.so.0 > : > #123 0x423fe31f in uim_quit () from /usr/lib/libuim.so.0 > #124 0x424055df in uim_scm_eval () from /usr/lib/libuim.so.0 > #125 0x42406aff in uim_scm_quit () from /usr/lib/libuim.so.0 > #126 0x423fe4c4 in uim_quit () from /usr/lib/libuim.so.0 > : > #152 0x423fa94f in uim_quit () from /usr/lib/libuim.so.0 > #153 0x4240561e in uim_scm_eval_c_string () from /usr/lib/libuim.so.0 > #154 0x424078ef in uim_sizeof_sexp_str () from /usr/lib/libuim.so.0 > #155 0x423f6fc6 in uim_release_context () from /usr/lib/libuim.so.0 > #156 0x423dbecd in im_uim_init (uic=0x8e26f58) at gtk-im-uim.c:635 > #157 0x40713725 in g_object_unref () from /usr/lib/libgobject-2.0.so.0 > #158 0x403e355f in gtk_im_multicontext_new () > #from /usr/lib/libgtk-x11-2.0.so.0 159 0x403e3772 in > #gtk_im_multicontext_new () from /usr/lib/libgtk-x11-2.0.so.0 160 > #0x40713725 in g_object_unref () from /usr/lib/libgobject-2.0.so.0 > #161 0x4048a7dd in gtk_text_view_get_default_attributes () > from /usr/lib/libgtk-x11-2.0.so.0 > #162 0x40713725 in g_object_unref () from /usr/lib/libgobject-2.0.so.0 > #163 0x40714ea9 in g_object_steal_data () > #from /usr/lib/libgobject-2.0.so.0 164 0x40732d5f in g_value_unset () > #from /usr/lib/libgobject-2.0.so.0 165 0x40722714 in > #g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 166 > #0x4072299e in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 167 > #0x4037b830 in gtk_container_remove () > #from /usr/lib/libgtk-x11-2.0.so.0 168 0x0806bbcc in hide_popup_real > #(popup_context=0x8e6ce18) > at bbs_thread_ui.c:4088 > #169 0x0806bdf7 in popup_close_delay_timeout (popup_context=0x8e6ce18) > at bbs_thread_ui.c:4134 > #170 0x407677d4 in g_main_context_wakeup () > #from /usr/lib/libglib-2.0.so.0 171 0x40765a21 in > #g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 172 > #0x40768c77 in g_main_context_check () from /usr/lib/libglib-2.0.so.0 > #173 0x407691c8 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0 > #174 0x403fb849 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0 175 > #0x08089e8e in main (argc=1, argv=0xbf839d24) at main.c:327 > > uim-xim の場合です。 > > #0 0x40043633 in uim_quit () from /usr/lib/libuim.so.0 > : > #130 0x4004433f in uim_quit () from /usr/lib/libuim.so.0 > #131 0x4004b5ff in uim_scm_eval () from /usr/lib/libuim.so.0 > #132 0x4004cb1f in uim_scm_quit () from /usr/lib/libuim.so.0 > #133 0x400444e4 in uim_quit () from /usr/lib/libuim.so.0 > : > #147 0x40044778 in uim_quit () from /usr/lib/libuim.so.0 > #148 0x4004b5ff in uim_scm_eval () from /usr/lib/libuim.so.0 > #149 0x4004cb1f in uim_scm_quit () from /usr/lib/libuim.so.0 > #150 0x400444e4 in uim_quit () from /usr/lib/libuim.so.0 > : > #159 0x4004096f in uim_quit () from /usr/lib/libuim.so.0 > #160 0x4004b63e in uim_scm_eval_c_string () from /usr/lib/libuim.so.0 > #161 0x4004d90f in uim_eval_string () from /usr/lib/libuim.so.0 > #162 0x4004ec4d in uim_init_im_subrs () from /usr/lib/libuim.so.0 > #163 0x4004ed60 in uim_press_key () from /usr/lib/libuim.so.0 > #164 0x0806417b in InputContext::pushKey (this=0x81c9d20, k=0x81eef50) > at ximserver.cpp:584 > #165 0x08059771 in XimIC::OnKeyEvent (this=0x81c9c88, e= > : > (長いのではしょります) > : > at ximic.cpp:440 > #166 0x080607c6 in XimIM_impl::forward_event (this=0x81c8f78, > #p=0x81f29a0) > at ximim.cpp:326 > #167 0x0805ebb6 in Connection::xim_forward_event (this=0x81c8f18, > #p=0x81f29a0) > at ximtrans.cpp:724 > #168 0x0805f056 in Connection::OnRecv (this=0x81c8f18) at > #ximtrans.cpp:298 169 0x08056c16 in XConnection::readProc > #(this=0x81c8f18, ev=0xbf8ea178) > at connection.cpp:182 > #170 0x08056d3e in procXClientMessage (ev=0xbf8ea178) at > #connection.cpp:126 171 0x0804bd5d in ProcXEvent (e=0xbf8ea178) at > #main.cpp:307 172 0x0804bd8f in check_pending_xevent () at > #main.cpp:320 173 0x0804bdca in xEventRead (fd=4, ev=1) at > #main.cpp:328 174 0x0804bfd6 in main_loop () at main.cpp:171 > #175 0x0804c88a in main (argc=1, argv=0xbf8ea434) at main.cpp:625 > > ちょっと古いですが、検索して見つけたバックトレースを紹介しておきます。 > > http://www.freelists.org/archives/ggo-discussion/07-2005/msg00002.html これはまたちょっとパターンが違うっぽいですね。ううむ…。 -- 徳永拓之 tkng at xem jp