Bug#721298: boinc-client: Idle Detection Not Working Computer Always In Use

Preston Maness aspensmonster at riseup.net
Mon Dec 14 13:28:46 UTC 2015

Hash: SHA512

Whelp, it looks like the X-based idle detection --with the
XScreenSaver API?-- was removed in this commit:





The commit message indicates that /dev/input/* devices are the
intended way to determine idle time on Linux now. However, it seems
that X-based inputs don't update the /dev/input/* devices. Or at
least, anything the X server is doing isn't updating the atime on
those files, which is what is being utilized to determine if the
system is idle or not. Working in a terminal updates the atime on the
relevant files --correctly triggering BOINC to suspend computation--
but just typing this email, or wiggling the mouse around the desktop
area, doesn't.

Granted, this code was present earlier, so I don't know if simply
re-introducing it will solve anything. But that's my first plan of
attack. I've also looked into other varying methods of idle detection.
The XSS API is the most common, but there is a more convoluted
(asynchronous?) Xsync option that might also be possible too. I don't
know too much about X, but I'll be giving a few different
possibilities a go in the coming days.


On 12/11/2015 09:44 AM, Preston Maness wrote:
> Howdy howdy,
> I think I deserve a slow clap for such a slow response/addresssing 
> of a bug. Indeed my response is so slow that I've since changed 
> email address and GPG keys.
> Needless to say, when running BOINC 7.6.12 from testing, some 
> progress seems to have been made on idle detection. If I open a 
> terminal and begin working in it, *sometimes*, the idle detection 
> kicks in. I can't tell whether it's working as intended or not. 
> Regardless, keeping boinc running non-stop doesn't pose any issues 
> thanks to the scheduling. I can happily use my machine for just 
> about anything and not even notice that BOINC is running.
> I'm presently unemployed, so really, I have nothing but time and no
> real excuses not to give this bug another go and see if I can just
> determine once and for all if things are fixed/how to fix them :P
> It looks like the BOINC project has moved from their own git 
> infrastructure onto github:
> https://boinc.berkeley.edu/trac/wiki/SourceCodeGit
> https://github.com/BOINC/boinc
> Looking at the git log for hostinfo_unix.cpp (a la "git log 
> client/hostinfo_unix.cpp" from the project root), it looks like 
> there was a commit that included changes from Gianfranco:
> ==================
> commit 0811886cbb1d282376e2dfd017ab39e34cd7d8ea Author: David 
> Anderson <davea at ssl.berkeley.edu> Date:   Mon Feb 3 12:46:43 2014 
> -0800
> client: fix for idle detection on Linux (from Gianfranco)
> ==================
> and some later refactoring of the unix HOSTINFO code:
> ==================
> commit cda6bd334bf036349f471a0c4eb7c25de8098262 Author: David 
> Anderson <davea at ssl.berkeley.edu> Date:   Tue Nov 25 14:46:58 2014 
> -0800
> client: get static host info items only on startup
> On Android, the way we were getting os_version (Linux version + 
> Android version) didn't work because get_host_info() was getting 
> called before every scheduler RPC, and it overwrote the Android 
> version part.
> Solution: divide host info into dynamic (disk usage, network info)
>  and static (everything else). Computer the static part only at 
> startup.
> Also factor the Unix HOST_INFO code into multiple functions.
> ==================
> As it stands, BOINC's Event Log does show periodic "Suspending 
> computation - computer is in use" messages. Show I'm operating on 
> the assumption that something is working.
> Cheers, Preston Maness



More information about the pkg-boinc-devel mailing list