Status: New
Owner: ----
Labels: Type-Defect Priority-Medium

New issue 1760 by [email protected]: CRITICAL **: xim_open: assertion 'conn == NULL' failed
https://code.google.com/p/ibus/issues/detail?id=1760

What version of the product are you using? On what operating system?
OS (Linux distributions, UNIX or ...): Linux
Architecture (i386, x86_64): x86_64
IBus version: 1.5.9
Input method name and version: XIM (X11)
Python version:
dbus version:
dbus-python version:
gtk version (if bug is about gtk applications):
qt version (if bug is about qt applications):

What steps will reproduce the problem?

A client is attempting to connect to ibus via XIM.

For every other connection, ibus fails to respond to the XIM_OPEN message. The behavior appears to be fairly consistent:

Client makes a connection attempt, goes through all the steps, sends XIM_OPEN, ibus responds with XIM_OPEN_REPLY.

Client makes a connection attempt, goes through all the steps, sends XIM_OPEN, no response from ibus.

Client makes a connection attempt, goes through all the steps, sends XIM_OPEN, ibus responds with XIM_OPEN_REPLY.

Client makes a connection attempt, goes through all the steps, sends XIM_OPEN, no response from ibus.

etc...

Attaching strace to the ibus-x11 process, I see the following when ibus fails to respond to the XIM_OPEN message:

recvmsg(3, {msg_name(0)=NULL, msg_iov(1)=[{"\241\10\256\215i\0@\1\367\1\0\0\36\0\0\3\nen_US.utf8\0\0\0\0\0", 4096}], msg_controllen=0, msg_flags=0}, 0) = 32 recvmsg(3, 0x7fff1772ae10, 0) = -1 EAGAIN (Resource temporarily unavailable) write(2, "\n** (ibus-x11:3154): CRITICAL **: xim_open: assertion 'conn == NULL' failed\n", 76) = 76 recvmsg(3, 0x7fff1772ad10, 0) = -1 EAGAIN (Resource temporarily unavailable) recvmsg(3, 0x7fff1772adf0, 0) = -1 EAGAIN (Resource temporarily unavailable)

This seems to be the problem, not sure why. Of course, it doesn't help that the Fedora ibus rpm package helpfully redirects stderr to /dev/null, and this was the only way to see this...

Additional information:

The XIM protocol defines an XIM_ERROR packet that the IM server can respond to indicate any kind of a problem. It's better for the IM server to respond with an XIM_ERROR packet, when something goes wrong.

--
You received this message because this project is configured to send all issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings

--
--
You received this message because you are subscribed to the Google
Groups "ibus-devel" group.
iBus project web page: http://code.google.com/p/ibus/
iBus dev group: http://groups.google.com/group/ibus-devel?hl=en
--- You received this message because you are subscribed to the Google Groups "ibus-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

回复