2007/05/19

java などが xlib.lock のassert を出して止るとき。

xcbのversion が 1以上ではlockの管理が厳密になり、lock をしていないときにunlockをすると止まるようになった。参考debian-devl-announce libx11 with Xlib/XCB now in experimental; please test with your packages
止ると
java: xcb_xlib.c:52: xcb_xlib_unlock: Assertion `c->xlib.lock'
failed
というエラーが出る。
upstreamが対応するのが筋だが、debianのlibxcb 1.0-1.2 以降のバージョンでは 対応するまでの間の対策パッチがあたっている。それは、
環境変数 LIBXCB_SLOPPY_LOCK を 0にすることで、assertを止めることができる。
bashならばLIBXCB_SLOPPY_LOCK=0 java
と実行したらよい。

次のエントリに追記したが、この対応方法は、debian experimental libxcb-1.0-1.2 のみでしか効果がない。

ラベル: ,

1 Comments:

At 9:49 午後, Anonymous 匿名 said...

This doesn't work anymore.

LIBXCB_SLOPPY_LOCK=0 java -jar Spider.jar
java: xcb_xlib.c:50: xcb_xlib_unlock: Assertion `c->xlib.lock' failed.
Aborted

I thought LIBXCB_SLOPPY_LOCK's value doesn't matter.

 

コメントを投稿

<< Home