延續這邊這個岔開的話題,繼續回報「gcin莫名當掉」的狀況
剛剛用firefox在hyperrate打字發文的時候,按了Ctrl+B突然又再出現下面這個視窗
如果沒有去點那個button的話,firefox就整個死在那裡,pkill -9 gcin也沒用。 一開始連其他應用程式也無法叫出,稍後是可以叫出其他應用程式,但無法使用gcin。 點了那個莫名其妙的button之後,firefox才回復正常,gcin也才能重新使用。
想要請教eliu兄是否還有任何可測試或取得錯誤訊息的方法。
感謝~
|
抓到一個可以重複的現象了! 看來應該和gcin發音後ogg123被留在行程中有點關係,請聽我如何重複:
(1)啟動gcin發音功能,打開leafpad,隨便打個字讓gcin說個話。
(2)開啟一個rxvt,輸入ps -e |grep ogg123,確定行程中有ogg123被留在那裡:
winlin@~$ps -e|grep ogg 18188 ? 00:00:00 ogg123
(3)點「gcin tray icon→重新啟動gcin」
(4)回到剛剛打字發音的那個leafpad
此時可以發現gcin並不會自動重新出現,也無法用Ctrl+space叫出gcin。 而若有其他開啟中的任何使用gtk-immodule的應用程式也會跟著當掉(如:leafpad或firefox), 但是使用xim的程式並不會當掉(如:rxvt),只是無法使用gcin而已。
(5)在rxvt中輸入pkill -9 ogg123
立即可解除所有使用gtk-immodule的應用程式當掉的問題,gcin也可以重新運作。
看來這個當掉的問題是「ogg123被留在行程中」致使gcin無法重新啟動,進而卡死所有使用gtk-immodule的應用程式。
小弟猜測,gcin應該是有存在一些會莫名當掉的狀況, 只不過一般人並沒有使用發音功能(或者不會有ogg123留在行程中的問題) 對他們而言,只不過偶爾遇到「gcin打中文到一半突然莫名重新啟動」而已,沒什麼大影響, 但我一旦遇到gcin莫名當掉,而ogg123又阻礙gcin重新啟動,就會出現其他應用程式也都停擺的問題。
總之,所以這個問題應該有2個因素在內: (1)gcin有時會莫名當掉(還抓不到規則) (2)ogg123在發音後會被留在行程中(這要問問其他gcin使用者是否也有這個狀況)
|
猜測可能與 open file descriptor 有關
ulimit -n 8192 試試看有沒有用
|
eliu |
猜測可能與 open file descriptor 有關
ulimit -n 8192 試試看有沒有用
|
好像沒辦法以一般使用者身份執行:
winlin@~$ulimit -n 8192 bash: ulimit: open files: cannot modify limit: Operation not permitted
我的系統設成開機時讓root自動登入console 1 (Ctrl+Alt+F1那個終端機), 如果把「ulimit -n 8192」加在/root/.bashrc,也可對所有使用者造成影響嗎?
|
eliu |
猜測可能與 open file descriptor 有關
ulimit -n 8192 試試看有沒有用
|
ulimit已經想辦法設好了:
winlin@~$ulimit -n 8192
但是重複上述步驟狀況依舊, 發音後重新啟動gcin,使用gtk-immodule應用程式依舊會卡死。
|
猜測你可能有用 gcin_sound_play_overlap,就是允許多個音同時 play。
可能你的 ogg123 搭配的 sound device 在同時 play 容易當掉卡住,造成 file descriptor 用光。
把 ogg123 的問題解決,就不用管 file descriptor 的問題了。用 ulimit -n 只是延後問題出來的時間而已。
我的 ogg123 沒有這個問題。Ubuntu 有用 pulse audio,或許用 pulse audio 可以解決這個問題。
把 gcin_sound_play_overlap 關掉或者也是解決問題的辦法。
|
剛才試 ubuntu 12.04 之前都沒問題的,我的 ogg123 也有卡住的問題。冏
|
eliu |
剛才試 ubuntu 12.04 之前都沒問題的,我的 ogg123 也有卡住的問題。冏
|
感謝老天!唯有讓eliu兄也中獎,這個問題才比較有機會被解決。囧~
|
今天用五四三倉頡打字時,不小心按到「`」進入同音查詢模式, 但gcin卻當掉了,並且出現下列錯誤:
目前這個問題無法被重複,還找不到規則。 (註:我沒有開啟發音功能)
edited: 1
|
今天意外在終端機看到這段訊息,不知道對debug有沒有幫助:
winlin@~$leafpad .xinitrc
(leafpad:6074): Gtk-WARNING **: Unable to locate theme engine in module_path: "xfce", gcin_im_client_focus_in error: Broken pipe gcin_im_client_set_cursor_location error: Broken pipe
(gcin:6084): Gtk-WARNING **: Unable to locate theme engine in module_path: "xfce", leafpad: can't save config file - /home/winlin/.config/leafpad/leafpadrc winlin@~$ (gcin:6084): GLib-WARNING **: /build/glib2.0-Ot8bbC/glib2.0-2.36.4/./glib/giounix.c:412Error while getting flags for FD: Bad file descriptor (9)
*** Error in `gcin': realloc(): invalid pointer: 0x09b58ab8 ***
這邊還有另一段
winlin@~$leafpad .xinitrc
(leafpad:8423): Gtk-WARNING **: Unable to locate theme engine in module_path: "xfce", handle_read: Connection reset by peer cannot read reply from gcin server: Connection reset by peer
(gcin:8891): Gtk-WARNING **: Unable to locate theme engine in module_path: "xfce", IMOpenIM 'gcin' failed. Maybe another XIM server is running.
edited: 1
|
log 與 Too many open files 無關
|
eliu兄:
不妙,使用最新的gcin.tbz,剛剛當了一次,這次還蠻嚴重的。 當掉時除了gcin的OSD icon又變成2個XX,tray icon變成空白,CPU被操到100%,系統變得很慢。 而ps -e可以看到一大堆gcin留在行程裡(請看附件all_the_gcin.txt)。
|
|
今天再出現時我切到Alt+F2終端機,發現下列訊息重複N遍:
gcin: ../../scr/xcb_io.c :274: poll_for_event: Assertion `!xcb_xlib_threads_sequence_lost' failed. [xcb] Unknown sequence number while processing queue [xcb] Most likely this is a multi-thread client and XInitThread has not been called [xcb] Aborting, sorry for that
附帶說明一下,今天遇到的狀況與昨天回報那個一樣, 出現時,我正在使用pidgin,不知道「gcin發音功能」和「pidgin送出訊息時發出音樂」兩者是不是有衝突?
edited: 1
|
昨天發現,即使沒有使用發音功能,每送出一次緩衝區,行程的gcin就多1隻。 不論是使用詞音還是五四三倉頡都一樣。
另一個問題是, 有時五四三倉頡的自動選字和預選詞功能會消失(現在打字時就是), 但同時間,發音功能還能正常運作(當下把發音關掉這個問題並不會解決) 此時若切換到詞音,詞音的自動選字和預選詞功能倒也還正常, 此時按capslock切到英數狀態的話,英數狀態的預選詞也正常。 這次沒有使用pidgin,也沒有開啟任何會播放音樂的程式,所以應該和昨夜的假設無關。 而且奇怪的是,雖然沒有自動選字和預選詞,這時若以shift+Enter自行加中文詞, 這段剛加入的詞(也就是「不確定」)竟然可以出現,而且也會在「不該出現的時候」出現, 像下面這個圖的拆碼和「不確定」完全無關,「不確定」這個詞卻會出現,
更怪的是,開啟gcin設定→詞庫編輯,竟然看不到剛加入的「不確定」這個詞。
Alt+F2終端機的訊息內容如下(重複了18遍,不確定是否有關): (gcin: 7961): Gtk-CRITICAL **: IA_gtk_widget_hide: assertion `Gtk_IS_WIDGET(widget)' failed.
原因不明,請問eliu兄是否有什麼檢測的方法可供參考?感謝~
|
winlin |
昨天發現,即使沒有使用發音功能,每送出一次緩衝區,行程的gcin就多1隻。 不論是使用詞音還是五四三倉頡都一樣。
|
今天終於了解行程裡gcin為何一隻接著一隻來,直到打字當掉為止。 原因在於~/.xinitrc裡的內容:
export GCIN_OUTPUT_FILTER=$HOME/.gcin/gcin_filter_word_daily_count.sh gcin &
gcin_filter_word_daily_count.sh這個檔早就被我刪了, 若有開啟發音功能,gcin一直找不到這個檔,在每送出一次緩衝區時,就會在行程留一個gcin,直到爆掉為止。 如果讓export GCIN_OUTPUT_FILTER=找到正確的路徑,不管有沒有開啟發音功能, 都不會在行程裡留下多餘的gcin了。
不過...還有人在用gcin filter嗎?也許只剩我一個?
|