10.04 Xorg locks up leaving the mouse pointer moving back and forth rapidly between screens

Asked by Julie

I have observed this problem on 5 desktops approximately 10 times over the last few months.

The desktop machines have slightly different hardware, versions of Ubuntu 10.04, and versions of the NVIDIA drivers, but all have at least 2 NVIDIA graphics cards (being driven by the NVIDIA proprietary drivers) enabled with Xinerama mode and at least 3 monitors.

I have found that applying some missing patches to the Xorg source code associated with https://bugs.freedesktop.org/show_bug.cgi?id=24986 has fixed the problem and was wondering if all patches from that bug could be officially included in Ubuntu 10.04.

So just a little more background information ...

Occasionally, when resizing a window across screens, a machine will lock up tight leaving the cursor rapidly jumping between screens. Sometimes I can log on remotely, observe Xorg using up 98% of the CPU, kill Xorg and restart gdm to get the machine back but sometimes this cannot be done and the machine only responds to a hard reboot.

So after some investigations, I have found a similar problem described in the bowels of the comments in the freekdesktop.org bug 24986 (https://bugs.freedesktop.org/show_bug.cgi?id=24986) and a user experiencing the same problem documented in the comments at the end of an already fixed bug https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/563100.

I decided to download the xserver-xorg source to check if all 3 patches listed against the freedesktop bug 24986 were applied to 1.7.6-2ubuntu7.11 of xserver-xorg and found that only 1 patch (dix: make DeviceEvent coordinates signed for Xinerama) of the 3 patches was applied. So I modified the code to effectively apply the other 2 patches (0001-mi-ignore-fromDIX-argument-in-mieqSwitchScreen.patch and 0001-dix-fix-cursor-screen-check-for-xinerama-setups.patch) and installed my patched xorg-xserver-core.deb on a machine that could reliably reproduce the problem with vigorous window resizing movements across multiple screens. Since installing my .deb with the other 2 patches applied, I have not seen the problem re-occur despite rigorous testing.

I specifically think the patch https://bugs.freedesktop.org/attachment.cgi?id=33908 has fixed the problem (although I think https://bugs.freedesktop.org/attachment.cgi?id=33939 should also be applied) and I was wondering if these 2 patches could be officially included in Ubuntu 10.04.

Question information

Revision history for this message
actionparsnip (andrew-woodhead666) said :

Is it the same in Precise live CD? Lucid is painfully old now and the newer Xorg, kernel and drivers in Precise may make the OS run better for you.

Revision history for this message
Julie (j--b) said :

I am sure this problem is fixed in the Xorg that comes with Natty or later but unfortunately due to problems with other software I need to run, I need to stay with the stable (aside from this problem of course!) 10.04 systems I have at the moment.

I assumed that because 10.04 is in LTS that it would be possible to include the patches in 10.04?

I note that in the bugs linked to this question indicate that there might be enough people who need the fix to motivate applying the 2 missed patches already approved in the freedesktop.org bug report (specifically the committed patches https://bugs.freedesktop.org/attachment.cgi?id=33908 and https://bugs.freedesktop.org/attachment.cgi?id=33939). From reading the bug report 570151, there are others that must stay with 10.04 for one reason or another that may also benefit from applying these patches.

Revision history for this message
map7 (map7777) said :

I've got this problem also and would prefer to stick with Ubuntu 10.04 on my LTSP server for now.

I've had a look at the latest source of xorg-server 1.13.0 and it has the patch for events.c applied but not the mieq.c patch. Should I download xorg-server 1.7.5, apply both patches, compile and install still or should I upgrade to the latest and not worry about the mieq.c patch?

Revision history for this message
Gl Solaria (glsolaria) said :

I suspect the events.c patch is only relevant to Xinerama mode with the NVIDIA cards.

From my naive reading of the description of the https://bugs.freedesktop.org/attachment.cgi?id=33908 bug (noting I am far from an expert in this area) , I suspect the mieq.c patch actually fixes the main problem where pointer warp events are enqueued and dequeued in a tight loop (hence the lock up of the screen and the high CPU usage). Now perhaps the problem is fixed in another way with the latest versions of Xorg - I can't comment on that because I don't keep up with the changes to the Xorg code. I should also note that I can't comment on the scope of any potential compatibility issues with older applications running with a newer Xorg server. Perhaps you could give it a go on a test machine but be prepared to roll it back? I myself have patched the source and made it available as a PPA (https://launchpad.net/~glsolaria/+archive/ppa) and have been running the patch for the last 4 months on a few machines without any downtime or other crashes.

Hopefully there is someone more knowledgeable on the issue who can give you a more informed response.

Can you help with this problem?

Provide an answer of your own, or ask Julie for more information if necessary.

To post a message you must log in.