Julien Cristau wrote:
[cc:ing the xcb list]

On Sun, Apr 11, 2010 at 14:27:38 -0700, Jim Ham wrote:

I have an application that uses direct calls to X. This application
worked with a previous incarnation of X (before X.org) but crashes
with the following message on newer versions of X. I've tried 7.4+20 and
7.5+5, both Debian on a x86 machine.

xcb_io.c:249: process_responses: Assertion `(((long)
(dpy->last_request_read) - (long) (dpy->request))<= 0)' failed

Without going into a lot of detail, here's what happens:

The main thread blocks with a the call XNextEvent(...). A secondary
thread sends a user event to X with XSentEvent(...). The application
immediately crashes on the this first call to XSendEvent with the above
error message. A normal event such as a mouse click generated by the
Xserver does not cause a crash.

XInitThreads() is called before any other X calls. All calls to X are
bracketed with XLockDisplay() and XUnlockDisplay() except for the
XNextEvent call in the main thread. As I mentioned, the app has worked
for several years.

If this is a new problem I can certainly provide more detail. The entire
project may be available via SVN if necessary. There is some custom
hardware, but a couple of patches could fix that.

Do you have a backtrace from the assertion, or an X protocol trace of
what happens before the crash?

I've attached a zip of the output from xtrace - xtrace.log.gz. It appears that my app generates three user events before the crash. This is perfectly repeatable.

The other attachment - stdout.log - shows the commands from the command line, the output from my app, and the output from the xcb_io error.

Regards,

Jim

Cheers,
Julien
_______________________________________________

Attachment: xtrace.log.gz
Description: GNU Zip compressed data

j...@widebook:~/dviii/trunk/src$ ./trace
export DISPLAY=:9.0
xtrace -n -d :0 -D :9 -o xtrace.log ./dviii
initial directory is /home/jeh/dviii/trunk/src
Got connection from unknown(local)
Main PID=3765
dviii: ../../src/xcb_io.c:249: process_responses: Assertion `(((long) (dpy->last_request_read) - (long) (dpy->request)) <= 0)' failed.
dviii: ../../src/xcb_io.c:249: process_responses: Assertion `(((long) (dpy->last_request_read) - (long) (dpy->request)) <= 0)' failed.
export DISPLAY=:0.0

<<attachment: jimham.vcf>>

_______________________________________________
[email protected]: X.Org support
Archives: http://lists.freedesktop.org/archives/xorg
Info: http://lists.freedesktop.org/mailman/listinfo/xorg

Reply via email to