View Single Post
Old 04-28-12, 03:31 PM   #9
james-p
Registered User
 
Join Date: Jun 2010
Posts: 13
Default Re: Xorg crash on centos5 with 295.20 and Quadro 2000

I've done some more digging and it appears the problem is to do with xfs (X font server) and the Nvidia driver - and it is not linked to any Nvidia driver version, card type or possibly distro (the subject of this thread reflects the driver/hardware/OS where the problem was first spotted).

We use CentOS 5 with xfs, however CentOS 6 (and probably most other recent distros) have deprecated xfs - however, if I install, configure and use xfs with CentOS 6 using the Nvidia drivers, then I can crash Xorg in exactly the same way. I can not crash Xorg using xfs/CentOS6 with, for example, the nouveau driver.

It appears xfs generates slightly different glyphs for the fonts/characters that cause the crash. xfs has the bits pointer element of the charinfo struct set to NULL as returned by GetGlyphs() - but when xfs is not used, the same bits pointer is set to a valid empty string.

i.e it appears that the Nvidia drivers are at fault - as all the other Xorg drivers I've tried don't crash in this situation.

I've also found that I can crash Xorg with the same fonts/characters using XDrawString(), XDrawImageString() and XDrawImageString16() - with the crashes in the Xorg code in miPolyText8(), miImageText8() and miImageText16() - as they all use the same GetGlyphs() function.

So, the simple fix is to not use xfs - but as we still do, I have hacked/patched Xorg to set the bits pointer in the above situations to a valid empty string when GetGlyphs() returns a charinfo structure that has all elements set to zero/NULL. We haven't had any of these crashes since applying this workaround.

I still don't know why these apparently random font/characters are being rendered in the first place - but whatever the reason, rendering what is a valid font/character should not crash Xorg ...
james-p is offline   Reply With Quote