cht電腦資訊gcin
adm Find login register

繼續回報「gcin莫名當掉」的狀況

winlin
1 繼續回報「gcin莫名當掉」的狀況
Promote 0 Bookmark 02013-11-17quote  

延續這邊這個岔開的話題,繼續回報「gcin莫名當掉」的狀況

剛剛用firefox在hyperrate打字發文的時候,按了Ctrl+B突然又再出現下面這個視窗

如果沒有去點那個button的話,firefox就整個死在那裡,pkill -9 gcin也沒用。
一開始連其他應用程式也無法叫出,稍後是可以叫出其他應用程式,但無法使用gcin。
點了那個莫名其妙的button之後,firefox才回復正常,gcin也才能重新使用。

想要請教eliu兄是否還有任何可測試或取得錯誤訊息的方法。

感謝~

winlin
2
Promote 0 Bookmark 02013-11-17quote  

抓到一個可以重複的現象了!
看來應該和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使用者是否也有這個狀況)

eliu
3
Promote 0 Bookmark 02013-11-17quote  
winlin
4
Promote 0 Bookmark 02013-11-17quote  

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,也可對所有使用者造成影響嗎?

winlin
5
Promote 0 Bookmark 02013-11-17quote  

eliu

猜測可能與 open file descriptor 有關

ulimit -n 8192 試試看有沒有用

ulimit已經想辦法設好了:

winlin@~$ulimit -n
8192

但是重複上述步驟狀況依舊,
發音後重新啟動gcin,使用gtk-immodule應用程式依舊會卡死。

eliu
6
Promote 0 Bookmark 02013-11-17quote  
猜測你可能有用 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 關掉或者也是解決問題的辦法。
eliu
7
Promote 0 Bookmark 02013-11-17quote  
winlin
8
Promote 0 Bookmark 02013-11-17quote  

eliu

剛才試 ubuntu 12.04 之前都沒問題的,我的 ogg123 也有卡住的問題。冏

感謝老天!唯有讓eliu兄也中獎,這個問題才比較有機會被解決。囧~

winlin
9
Promote 0 Bookmark 02013-12-12quote  

今天用五四三倉頡打字時,不小心按到「`」進入同音查詢模式,
但gcin卻當掉了,並且出現下列錯誤:

目前這個問題無法被重複,還找不到規則。
(註:我沒有開啟發音功能)

edited: 1
winlin
10
Promote 0 Bookmark 02013-12-13quote  

今天意外在終端機看到這段訊息,不知道對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
eliu
11
Promote 0 Bookmark 02013-12-13quote  
winlin
12
Promote 0 Bookmark 02013-12-18quote  

eliu兄:

不妙,使用最新的gcin.tbz,剛剛當了一次,這次還蠻嚴重的。
當掉時除了gcin的OSD icon又變成2個XX,tray icon變成空白,CPU被操到100%,系統變得很慢。
而ps -e可以看到一大堆gcin留在行程裡(請看附件all_the_gcin.txt)。

eliu
13
Promote 0 Bookmark 02013-12-18quote  
winlin
14
Promote 0 Bookmark 02013-12-19quote  

今天再出現時我切到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
winlin
15
Promote 0 Bookmark 02013-12-19quote  

eliu

如果常發生這種情況,先把念出發音關閉。

昨天發現,即使沒有使用發音功能,每送出一次緩衝區,行程的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
16
Promote 0 Bookmark 02014-01-14quote  

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嗎?也許只剩我一個?

cht電腦資訊gcin
adm Find login register
views:42510