Preliminary Change Log
7.2.39 --> 7.3.1 Preliminary Change Log
7.3.1 --> 7.3.2 (Show/Hide)
Preliminary Change Log 7.3.1
client: fix for idle detection on Linux (from Gianfranco).
API, Linux: shared memory between app and graphics app shouldn't be world RW.
client, Linux: improve error-checking in idle-detection code.
client: compute host CPID as hash of (MAC address, current directory). That way if there are multiple instances per host, they'll get different host CPIDs.
Compile fixes for Ubuntu.
client, Win: when running GPU detect, use "boinc.exe" rather than "boinc" on cmdline. An alpha tester reported that this fixed an error; not sure why.
Mac: Update build script for wxWidgets 3.0.0
Windows: Update build script for wxWidgets 3.0.0
Linux: Update build script for wxWidgets 3.0.0
Mac: update build scripts for OS 10.9
Mac: script builds boinc_zip library when building other BOINC libraries.
client, Android: run CPU-intensive apps in background mode.
client: Default to /usr/bin when looking for VboxManage.
Depending on the Linux distro it can be in many different locations, even if it is installed in a different location there is normally a symbolic link in /usr/bin which points to the real deal. Vboxwrapper should be able to run it successfully because it'll be in the standard search path.
client: work fetch policy tweak.
If a project has active uploads, defer work fetch from it for 5 minutes even if there are idle devices (that's the change). This addresses a situation (reported by Rytis) where:
-> a project P has a jobs-in-progress limit less than NCPUS;
-> P's jobs finish and are uploading;
-> the client asks P for work and doesn't get any because of the limit;
-> the client does exponential backoff from P.
Over the long term, P can get much less than its fair share of work.
Preliminary Change Log 7.3.1 -> 7.3.2
client: post a notice if user settings (project prefs, config file, and/or account manager settings) prevent this host from ever getting work from a project.
client: remove "can't get work" notices that don't apply anymore; make notice text translatable.
client: fix bugs in "can't get tasks" notice.
client: fix job scheduling bug that could starve CPUs.
Job scheduling has 2 phases:
-> make_run_list(): build a sorted list of runnable jobs.
-> enforce_run_list() go through the list and run jobs.
The run list in general contains more jobs than can actually be run. This is intentional. There are lots of reasons why enforce_run_list() might not be able to run a particular job, and we don't know these during make_run_list(). So we need to give enforce_run_list() a surplus of choices.
The problem: make_run_list() was accounting RAM usage of jobs in the list, and stopping when this exceeded physical RAM. This led to a situation where we added a bunch of GPU jobs to the list - more than could actually be run - and this caused too few CPU jobs to be put in the list.
Oddly, the comment at the start of cpu_sched.cpp said that RAM usage was ignored by make_run_list(); this was not the case.
Anyway, I (David) removed RAM accounting from make_run_list().
client: fix bug that caused spurious "Request CPU reschedule: RAM usage limit exceeded".
Problem: we were ignoring the RAM usage of non-CPU-intensive jobs when scheduling jobs, but counting it when deciding whether a reschedule is needed. Ignore it both places.
client: if <mem_usage_debug> set, show totals of BOINC tasks.
Mac: update build scripts for OS 10.8 or later and current versions of dependent libraries:
-> c-ares 1.10.0
-> curl 7.35.0
-> openssl 1.0.1f
-> sqlite 3.8.3