If you are running one of the xscreensaver opengl hacks
as your screensaver, and you hit a key to unlock the
screen a just the right moment (explained below) the X server
wedges because it can't get the DRI lock.
The "right moment" is when the screensaver hack has the DRI
lock. When you hit a key, the xscreensaver parent process
sends a SIGSTOP to the screensaver drawing program.
The screensaver drawing program holds the DRI lock, the Xserver
wants to service events for the xscreensaver parent process but
cannot and will block on the DRI lock forever.
I think the answer is not that xscreensaver is broken, I think the
answer is that the DRI locking mechanisms need to be seriously
I think a revisit of these issues will also fix things like having the
X server take the lock even when you wiggle the mouse or when
it's select timeout is hit. Of course it is simple to do the lock
grabbing in the block/wait handling of the X server but this is
far from optimal and also leads to all the problems described in
this bug report.