A month or two ago I added code to put user CPID in the project info
exported via GUI RPC, so that GUIs (like BoincTasks) could link
to user pages on stats sites.
However, I completely forgot that the CPID known to the client
(PROJECT::cross_project_id) is the "internal CPID",
while what gets exported to stats is the "external CPID",
which is MD5(internal CPID, email addr).
Solution: include the external CPID in scheduler replies,
store it in the client state file,
and export it in GUI RPCs as PROJECT::external_cpid.
This will eventually work for BoincTasks,
but only after projects update their server software,
and volunteers update their client software.
Maintain the following items:
Per session (i.e. this run of the client):
- active duration (computation enabled)
- GPU active duration (GPU computation enabled)
Total (i.e. since the client first ran here)
- duration (time the client has run)
- active duration (as above)
- GPU duration
Export them in the get_state() RPC; print them in boinccmd.
If a job reports its network usage (via boinc_network_usage()),
keep track of this across episodes of the job, and report it to the server
(some projects may want to give credit for network usage).
the binding of the get_state() RPC
- client: move client_start_time and previous_uptime
from CLIENT_STATE to TIME_STATS,
so that these are also visible in GUI RPC
- scheduler RPC: move uptime and previous_uptime
into <time_stats>
- client: condition an RR simulation message on <rrsim_detail>
- boinccmd: show TIME_STATS info in --get_state
as described here: http://boinc.berkeley.edu/trac/wiki/ClientDataModel
Compatibility: if your project is using upload signatures:
- set ignore_upload_certificates
- disable job creation
- let your job queue drain
- upgrade to new server software
- clear ignore_upload_certificates
- enable job creation
svn path=/trunk/boinc/; revision=23863
- add <heartbeat_debug> log flag
- show trickle-up and int file upload msgs if <app_msg_receive> set
- if scheduler RPC reason is trickle-up, say so
- manager:
- restore "non CPU intensive" to task description
- project properties: show if RPC in progress or trickle-up pending.
(show these low-probability things only if present)
- manager: fix Unix build
(from Ian Hay)
svn path=/trunk/boinc/; revision=23365
change various std::string to char[n], to improve performance.
NOTE: std::string should ONLY be used in cases where there is
no a priori limit on string length.
If there's a limit (e.g. because the string originates in
a fixed-size database field) always use char[n].
svn path=/trunk/boinc/; revision=20877