WaitForSomething(): select: Invalid argument, part 2

Felipe Contreras felipe.contreras at gmail.com
Mon Sep 30 08:36:19 PDT 2013


Hi,

I've been investigating the bug regarding WaitForSomething() invalid
arguments[1], and I've made some progress, but could use some help.

This has happened sporadically in my machine, it was happening
reliably with Chromium but the issue went away before I could track it
down, and now it's happening with Dota 2.

It happens always in the same part of the game, so at least I could
try to reproduce, but it doesn't happen all the time.

I've compiled my own X server and added debugging to find out the
culprit, and so far this is what I've found.

The issue seems to happen in dix/dixutils.c::BlockHandler(), after
this is run, waittime,tv_sec = 0, and waittime.tv_usec = -1000.
Clearly the arguments are wrong, so it's no wonder Select() complains.
It's clear that an integer -1 is being converted wrongly, but I've no
idea where.

I've tried adding debugging to all the BlockHandler() functions I
could see, as I don't know how that works, so far with no luck. It
seems to be one of the screens/gpuscreens BlockHandler(), but I don't
know where those are coming from.

I'll keep trying to reproduce the issue, and hopefully the next time I
do I would have more information.

In the meantime, do you have any pointers?

[1] http://thread.gmane.org/gmane.comp.freedesktop.xorg/49065

-- 
Felipe Contreras


More information about the xorg-devel mailing list