StupidBeauty
Read times:461Posted at:Fri Mar 9 20:07:07 2012
- no title specified

Glib2共享庫导致的某种死锁

本座记得很清楚,一个星期之前,为咯安装tracker而升级咯glib2,当时是用源代码编译安装咯glib2的,与系统里面用RPM包安装的glib2的路径不一样。而问题就是由这一点导致的。

安装新版glib2之后,下次开机登录的时候就感觉到不对劲咯。fcitx无法正常工作,每当要输入中文,切换到中文输入法,开始输入时,fcitx就卡在那里,然后不得不手动杀掉。从命令行的输出来看,像是某种死锁。当时猜测可能是系统里面存在多个glib2的实例导致的,但是要试用tracker,所以没清除新版的glib2。而老版的glib2是通过RPM安装的,被大部分软件所依赖,由此也不能删除。于是就这么憋咯一个星期,不能输入中文。

试用完咯tracker之后,发现它不适合本座,于是找咯替代品recoll,这东西比tracker好用多咯。所以就不用管tracker咯。检查一下系统里面的共享庫记录,把新版glib2相关的庫都删除,再更新一下链接器的数据缓存,重启fcitx。果然好咯。至于其中的原理,还需研究,看樣子是這樣的:当有程序需要通过glib2加锁时,所有的程序都必须通过同一个glib2实例(libgthread-2.0.so)加锁,這裏的同一個實例指的是硬盤上的同一個文件(或符號鏈接,其絕對路徑是唯一的),甚至連指向同一個文件的兩個不同的符號鏈接也不行。

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands

 
Recent comments
2017年4月~2019年4月垃圾短信排行榜Posted at:Thu Sep 26 04:51:48 2024
Qt5.7文档翻译:QWebEngineCookieStore类,QWebEngineCookieStore ClassPosted at:Fri Aug 11 06:50:35 2023盲盒kill -9 18289 Grebe.20230517.211749.552.mp4