Tuesday, 16 June 2009

nVidia blocking signal problem fixed

have been experiencing this bug since the 180.35 nVidia drivers were released.  The dreaded blocked signals bug.  The .37 driver was supposed to fix it, and did for many people, but not me.  Neither did .41, .44, .51, or the latest ones, 180.60.  This wasn't a big problem,  I reasoned I'd just wait until it was actually fixed and continue using the 180.29 drivers.  That waiting ended today when I upgraded to kernel 2.6.30 and discovered the .29 drivers don't build against that kernel.  Curses.

So I did what any good programmer would do, searched the Internets.  Nothing.  Then I fired up vim and exitted it (in a console, because X doesn't start with the lost signal bug), causing the predictable soft-lockup.  Then I switched consoles and attached GDB to vim to see where it was blocked.  Sure enough in libGL.so.  nVidia's driver.  I'm not sure why libGL is even being used, I suspect it has something to do with needing to wedge it in the signal path just in case.

On a whim, I let the program continue and stopped it again, this time it stopped in tls/libnvidia-tls.so.180.22.  Excuse me?  I'm on the 180.60 drivers, not 180.22.  So I did a complete search for stale nVidia drivers:
/usr/lib64/xorg/modules/libnvidia-wfb.so.1 -> /usr/lib64/xorg/modules/libnvidia-wfb.so.180.22
/usr/lib64/libnvidia-tls.so.1 -> /usr/lib64/libnvidia-tls.so.180.22
/usr/lib64/libnvidia-cfg.so.1 -> /usr/lib64/libnvidia-cfg.so.180.22
/usr/lib64/libnvidia-cfg.so -> /usr/lib64/libnvidia-cfg.so.1
/usr/lib64/tls/libnvidia-tls.so.1 -> /usr/lib64/tls/libnvidia-tls.so.180.22

With similar ones in /usr/lib32.  What a mess.  I deleted them all, reinstalled the 180.60 nVidia drivers, and everything works properly!

Dear Gentoo: please cleanup your stale files.  Thx, A Gentoo User.


Post a Comment