With old (7.15) versions of libcurl, args passed to curl_easy_setopt()
(such as the URL) were supposed to remain unchanged until
the operation was done.
Starting with 7.17 it was changed so that curl_easy_setopt()
copied its arguments.
The BOINC client was assuming the latter.
When linked against the former,
URLs would mysteriously change to garbage strings.
I changed things to work with the old libcurl semantics.
Now that the manager supports images/video in notices,
we need to allow these in new posts
(i.e. posts to the News forum, which only admins can do).
Don't escape HTML tags in the web display of news items,
or in their export in RSS
On systems with comparatively slow disk subsystems, the I/O can become saturated. This leads the Linux Kernel on guest OS's dumping out warning messages to the console of failure to write data to disk. Since the device drivers are timer sensitive we will boost the priority of the process to boost its disk I/O requests above the other disk I/O of science applications. Science applications themselves generally don't have timeouts when checkpointing and the like.
My commit of Feb 7 caused work fetch to project P
to be deferred for up to 5 min if an upload to P is active,
even if some instances are idle.
This was to deal with a case where the idleness was caused
by a jobs-in-progress limit by P,
and work requests lead to long backoff.
However, this can cause instances to be idle unnecessarily.
I changed things so that, if instances are idle,
a work fetch can happen even during upload.
But only one such fetch will be done.
Previously, if a project specified a limit on GPU jobs in progress,
it would be enforced across GPU types.
This could lead to starvation for hosts with multiple GPU types.
E.g. the limit is 10, and a host has 10 NVIDIA jobs and no AMD jobs.
Fix this by enforcing limits separately for each GPU type.
- the exported team list wasn't parsing due to non-ASCII characters
in some team descriptions.
htmlspecialchars() wasn't doing the job.
Use DOMDocument instead.
- If SHOW_NONVALIDATE_TEAMS is set (as on the BOINC-wide teams site)
show teams whose founders email addresses are not validated
(and hence won't be exported).
- Fix a crash bug which prevented "Launch another BOINC Manager" from working
- Fix compiler warnings of possible buffer overflow due to incorrect calls to strncat()
- Adjust directories for per-user files on Macintosh
On some hosts, gpu_active_frac may be much less than active_frac
(i.e., GPUs may be available much less than CPUs).
Use gpu_active_frac in the following places:
- scheduler: in estimating the elapsed time of jobs,
to decide whether they can meet deadline
- scheduler: in computing the effective speed of a (host, app version),
when deciding what size class it belongs to
- size_census: in computing effective speed of (host, app versions)
(Previously, we were just using active_frac in all these cases)