yusuk****@cheru*****
yusuk****@cheru*****
2004年 8月 28日 (土) 00:10:44 JST
田畑です。 先月に報告して頂いた問題ですが、uim-ipc.cの中でuim_ipc_send_command()の中で feof()を使ってパイプが切れていないか確認するようにして、アプリケーションが 落ちることは修正してコミットしました。 キーを押す度にprimeコマンドを再起動するとか、prime.scmがエラーを出すといった 問題が残っていますが、この辺の解決は徳永さん、お願いできますか? > On Mon, 26 Jul 2004 15:24:29 +0900 > akira yamada / やまだあきら <akira****@arika*****> wrote: > > > > > gktのimmoduleとしてuimを使っていて、 > > 変換メソッドをuim-primeにしているときに > > 何らかの理由でprimeの起動に失敗すると > > アプリケーションが正常に起動してこなくなります。 > > その際マシン負荷が上がりっぱなしになります。 > > > > 再現方法は、primeが使用しているライブラリを削除する、 > > あるいは~/.prime以下のファイルを自分以外の持ち物とするなどして > > immoduleを使ったアプリケーションを起動します。 > > 報告ありがとうございます。こちらでも再現しました。が、次リリースまでに > 修正するのは難しいかもしれません。とりあえずどこまで調べたかを書いておき > ます。 > > 調べてみたところ、 > > (define prime-send-command > (lambda (command) > (let ((result (prime-lib-send-command command))) > (let loop ((res result)) > (if (string=? res "") > (loop (prime-lib-send-command "")) > res > ))))) > > のloopで無限ループに陥っていました。このループは[prime-dev:352] > http://lists.sourceforge.jp/mailman/archives/prime-dev/2004-May/000351.html > への対策でいれているものです。 > > しかし、このループを外しても結局アプリケーションを正常に起動させること > はできません。デバッガからアプリケーションを実行すると以下のような感じの > stack traceが取れる事から、fflushでなにやらまずいことが起きているような > 感じです。(スタックが壊れちゃってるみたいなんで、信用していいのかどうか > もわかりませんけれども。) > > > Program received signal SIGPIPE, Broken pipe. > [Switching to Thread 1082114720 (LWP 2591)] > 0x4059af1e in __write_nocancel () from /lib/tls/libc.so.6 > (gdb) bt > #0 0x4059af1e in __write_nocancel () from /lib/tls/libc.so.6 > #1 0x4053b3e9 in _IO_new_file_write () from /lib/tls/libc.so.6 > #2 0x4053a60f in new_do_write () from /lib/tls/libc.so.6 > #3 0x4053a5a8 in _IO_new_do_write () from /lib/tls/libc.so.6 > #4 0x4053ac42 in _IO_new_file_sync () from /lib/tls/libc.so.6 > #5 0x4052f059 in fflush () from /lib/tls/libc.so.6 > #6 0x41353d9a in uim_ipc_send_command () > from /home/tkng/uim-trunk/uim/.libs/libuim.so.0 > > > uim-ipc.cを見ると、uim_ipc_send_commandは(必要ならば)コマンドをオープ > ンして、fputsしてfflushしているだけですので、uim側でどういうチェックを入 > れれば問題が防げるのかが私にはわかりませんでした。 > > > -- > 徳永拓之 > tkng****@xem***** > http://kodou.net/ > _______________________________________________ > Anthy-dev mailing list > Anthy****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/anthy-dev