[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-devel:17440] X11R7.3以降、liX11のXNextEvent()が壊れている
- From: hito <hitoht@xxxxxxxxx>
- Subject: [debian-devel:17440] X11R7.3以降、liX11のXNextEvent()が壊れている
- Date: Thu, 2 Oct 2008 20:35:47 +0900
- Content-disposition: inline
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:mime-version:content-type:content-transfer-encoding :content-disposition; bh=KLUl8imsNea5sHgWIFX2SEjIz1P2F3kXsLHjMNn0exI=; b=iCmYjjo7Obxetm0+WxRWnqafCNMD61/zLrvB1A8CtAmXUswTDqWDQDtQtfYHdRfztC F+C+DaVlGK7IHBb9RZwwE3MkPoeg1QocutgKu4F0nDfp5KxAe3q0NxgloeieavMaqIP5 nvLqjjr4hP11XFdw/vVMQytUKxhXpiQyO/Kz8=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type :content-transfer-encoding:content-disposition; b=cEXlDEeKyLPD3Nutt0S1jCHG/5dlPZIdNkUxT3FeD2+UkSy+7p2ole4ki0iF6NsDrt Y3asMhtEMuIvBLqUovKqLCL0vshBEevlS3Hp+kEsd63zssWuyA26/P3tXbhJOZ3NmNsq OYOQIPv6LAS3ItDy2O8ZQ9UPB8hA+9dzHxtC0=
- List-help: <mailto:debian-devel-ctl@debian.or.jp?body=help>
- List-id: debian-devel.debian.or.jp
- List-owner: <mailto:debian-devel-admin@debian.or.jp>
- List-post: <mailto:debian-devel@debian.or.jp>
- List-software: fml [fml 4.0.3 release (20011202/4.0.3)]
- List-unsubscribe: <mailto:debian-devel-ctl@debian.or.jp?body=unsubscribe>
- X-ml-info: If you have a question, send e-mail with the body "help" (without quotes) to the address debian-devel-ctl@debian.or.jp; help=<mailto:debian-devel-ctl@debian.or.jp?body=help>
- X-ml-name: debian-devel
- X-mlserver: fml [fml 4.0.3 release (20011202/4.0.3)]; post only (only members can post)
- X-spam-checker-version: SpamAssassin 3.1.7-deb (2006-10-05) on osdn.debian.or.jp
- X-spam-level:
- X-spam-status: No, score=-0.9 required=10.0 tests=KI,SUBJECT_ENCODED_TWICE autolearn=disabled version=3.1.7-deb
- Message-id: <9292c1390810020435l33d1209nace3767f188edac@xxxxxxxxxxxxxx>
- X-mail-count: 17440
別にDebianに限定した話ではなく、しかも直接的に解決できる
話でもないんですが情報共有です。
Xorg X11R7.3以降、liX11のXNextEvent()が壊れているようです(*1)。
本来常に成功しなければいけないXNextEvent()が、XlibDisplayIOErrorが
立っている状態で呼び出すとsegfaultします。XlibDisplayIOErrorはログイン
時など(*2)に発生することがあり、これによってIIIMFが落ちてATOK X3が
あがってこない、という現象に陥ります。
この問題、XNextEvent()が読んでいる_XReadEvents()の呼び出し
タイミングの問題でもあるので、単純にえんえんと呼び出すだけでも
直ってしまいます。以下のようなパッチです。
--- NextEvent.c.orig
+++ NextEvent.c
@@ -45,9 +45,14 @@
register _XQEvent *qelt;
LockDisplay(dpy);
- if (dpy->head == NULL)
+ while(dpy->head == NULL){
_XReadEvents(dpy);
+ usleep(400);
+ }
qelt = dpy->head;
*event = qelt->event;
_XDeq(dpy, NULL, qelt);
が、これはXの内部まで考慮したパッチになっていないので、ちとアレな感じです
(スペースの位置とか揃ってないよとかも放置プレイ)。
で、とりあえずXOrgのMLにはチクって(*3)いますが反応があんまりありません。
もう2〜3日したらXOrgのBTSに突っ込んだ上でdebbugしてubuntubugする
予定です。
短期的には(そして最終的にもバージョンによっては)パッケージャの側で
パッチを入れないといけないわけですが(そしてUbuntu Japanese Team
では自前リポジトリのexperimentalに入れてubuntu.comにはフィード
バックしていません)、こんな感じの問題があるよ、てな認識だけ
共有しといて頂ければと思います。
また、どなたかより良いパッチを思いついたら教えて頂けると助かります。
(*1) see http://d.hatena.ne.jp/hito-d/20081001#1222866182
(*2) gconf経由でキーボードレイアウトを変えたり、ログイン直後に
レイアウト変更が反映されたりした時。
(*3) http://lists.freedesktop.org/archives/xorg/2008-September/039042.html