Author |
Message |
MarkJ Volunteer moderator Volunteer tester Send message
Joined: 24 Dec 08 Posts: 738 Credit: 200,909,904 RAC: 0 Level
Scientific publications
|
REMINDER TO ALL TESTERS
It's far easier to fix problems if you send message logs with the appropriate flags set. The main flags are:
<cpu_sched_debug>: problems involving the choice of applications to run.
<work_fetch_debug>: problems involving work fetch (which projects are asked for work, and how much).
<rr_simulation>: problems involving jobs being run in high-priority mode.
Use these flags from the cc_config.xml file.
Report any problems you get with it to the Alpha email list. This list needs registration.
There are a number of changes to the simple view in this release.
If you are posting to this message thread please don't add signatures.
6.13.1 change log
- Mac: Fix bad paths to MacBitMapComboBox.cpp, .h in XCode project. (Checked into 6.13.0 tag).
- Mac: Fix bug where menubar icon menu did not work after changing skin.
- WINSCR: Remove diagnostics screensaver dialog when the screensaver fails to be able open up the log files.
- client: write log msgs saying whether GPUs are OpenCL-capable
- client: fix bug introduced in [23765] that produced garbage in <coproc> elements in sched req msgs and elsewhere. peak_flops is a double. If you print it using %d, everything from that point forward is messed up.
- client: fix typo that caused a lot of spurious "project has XXXXXX deadline misses" messages
- fix compile warnings
- client: possibly fix bug that caused no-GPU prefs to be ignored
- Mac: Refine bug fix for menubar icon menu not working after changing skin.
- client: fix bug related to deselecting resource types in project prefs. Some logic was missing.
- client emulator web interface: make cc_config.xml an attribute of the simulation, not the scenario. If you want to run a simulation w/ different log flags, you shouldn't have to create a new scenario.
- client emulator: add --config_prefix cmdline arg
- client: clear have_nvidia/ati flags in CC_STATE so you don't show garbage in project properties
- Manager and GUI RPC: Remove debt fields from PROJECT: not used anymore. Add sched_priority field
- client: fix scheduler bug that treated all CPU jobs as non-high-priority
- client: don't print spurious "domino prevention" and "thrashing prevention" msgs
- manager: show project descriptions in same size font as the rest of the dialog
- manager: do the above font change only on Win
- manager: fix messed up logic that caused projects to show "platform not support" incorrectly. Note: the code in this entire area seems way too complex
- manager: tweak project desc font size
- client, work fetch policy: adjust project REC by the amount of work queued, to increase variety NOTE: at some point I think I had a reason to not do this, but I can't remember what it is.
- client, job scheduling policy: fix how project REC is adjusted
- manager: don't show "Estimated computation speed" in task properties The quantity involved is not actually computation speed. Also don't show Max RAM usage.
- client: precede OpenCL messages with [coprog_debug], not [coproc-test]. The convention is to use the name of the enabling log flag.
- lib: Fix the various '????' fields in the diagnostics framework during a crash on Windows. Somewhere along the lines I messed up with the conversions of single-byte characters vs. double-byte characters.
- client: if a project has zero resource share, don't piggyback a work request onto a non-work-request RPC
- client: show the right prefix for <cpu_sched_debug> messages
- MGR: Fix "Can't load Image" messages in Simple View; allow gaps in slide show file numbering; reload images if new project files downloaded.
6.13.0 change log
- client: write log msgs saying whether GPUs are OpenCL-capable
- client: fix bug introduced in [23765] that produced garbage in <coproc> elements in sched req msgs and elsewhere. peak_flops is a double. If you print it using %d, everything from that point forward is messed up.
- client: fix typo that caused a lot of spurious "project has XXXXXX deadline misses" messages.
- fix compile warnings |
|
|
MarkJ Volunteer moderator Volunteer tester Send message
Joined: 24 Dec 08 Posts: 738 Credit: 200,909,904 RAC: 0 Level
Scientific publications
|
INCOMPATIBILITY WARNING FOR UPCOMING 6.13.3
Howdy Folks,
I'm getting ready to release a new build of 6.13, this new build contains changes to support volunteer storage. You can see some of the details here: http://boinc.berkeley.edu/trac/wiki/VolunteerStorage
Basically when you upgrade to this build there will be some changes to the client_state.xml file which will make it incompatible with older client software.
I strongly suggest making a backup copy of the data directory before upgrading to the new build just in case something happens and you need to roll-back to an earlier build of BOINC.
----- Rom
Windows versions are now in the usual place. Before you even think about trying this one, read the above Incompatibility Warning
6.13.2 change log (not released)
- client: write project sched priority in GUI RPC replies, but not to the state file
- client: changes to the client file model to support distributed storage, as described here: http://boinc.berkeley.edu/trac/wiki/ClientDataModel
Compatibility: clients that upgrade to this version should see nothing unusual.
Clients that downgrade from this version to a previous version should see all projects reset (i.e. tasks disappear and then get re-downloaded).
- manager: always show whether a file transfer is upload or download
- client: don't scale work requests by resource share
- client: debug distributed storage functions
- Mac: Begin changes for XCode 4.1 and GCC 4.2.
- Mac: Finish changes for XCode 4.1 and GCC 4.2.
- lib: Initialize config_coprocs struct in CONFIG::defaults().
- SCR: Fix delay dismissing screensaver under Mac OS10.7.
- Mac SCR: Fix vertical range of moving logo.
- remote job submission: bug fix and tweaks
- client: cc_config.xml: if <devnum> is omitted from a <exclude_gpu>, it means exclude all instances of that GPU type
- client: if all instances of a GPU type are excluded for a project, don't ask the project for jobs of that type
- client: fix bug in <exclude_gpu> config option
- client: extend <exclude_gpu> option so that if <device_num> is omitted, all GPUs of the given type are excluded.
- Mac installer: Work around bug in Mac OS 10.7 dscl merge command.
- client: fix bug in get_descendants(), which prevented the client from cleaning up subprocesses of misbehaving multiprocess apps.
- remote job submission system: assign physical names to input files (based on their MD5)rather than having the user provide physical names
- VM apps: eliminate vbox64 plan class. Only vbox.
- client: add optional <file_prefix> to APP_VERSION>. If present, "file_prefix/" is prepended to the logical names of input and output files of jobs using that app version. I.e. for Vbox wrapper based app versions, file_prefix is "share", so that I/O files are put in a "share" subdirectory of the slot dir.
- client: if an app version has nonempty file_prefix, copy all its input and output files
- Mac: Fix warning about potential memory leak.
- vbox wrapper: fix parsing of job file
- vbox wrapper: fix code structure merge vm and vbox no global vars
- vbox wrapper: hardwire logical name of image file to "vm_image.vdi".
- vbox wrapper: on startup, rename image file to "vm_image_SLOT.vdi", where SLOT is the slot number. Vbox requires unique names for VM image files.
- vbox wrapper: initialize xml parser with the correct starting tag.
- client: projects with zero resource share are always lower priority, for both job sched and work fetch, than projects with positive resource share.
- client: make round-robin simulator match what the job scheduler now does: give lowest priority to projects with zero resource share.
Changes for Charity Engine Desktop.
- Mac Client: Call NSVersionOfRunTimeLibrary("cuda") to set c.display_driver_version (from Oliver Bock.)
- client: rename MODE to RUN_MODE, and rename vars accordingly
- client: pass XML_PARSER& rather than MIOFILE& to parse functions. Preparatory to using new-style XML parsing everywhere.
fix compile warnings; msg tweak
- client: use new XML parser pretty much everywhere
- Mac installer: Bug fixes for OS 10.7 Lion: LoginItemAPI.c did not set hidden properlty for login items, so use AppleScript instead, to prevent Lion from opening BOINC windows at system startup.
Fix a bug I introduced on 8 August which prevented launching WaitPermissions.app.
- Mac uninstaller: Remove Charity Engine BOINC app if present.
- client: more XML parsing stuff
- client: XML tweak
- Mac installer: Bug fixes for OS 10.7 Lion.
- WINSCR: Based on feedback from WCG about the screensaver lock-up problem attempt to provoke Windows into redrawing the primary display. It turns out that the screensaver image is a ghost image, so create a blank top-most window and close it after the graphics application has been terminated.
- Vbox wrapper: add --trickle x option; sends a trickle-up message reporting incremental runtime exery x seconds of runtime.
- client: more XML parsing cleanup
credit trickle handler: do sanity checks on CPU speed
credit trickle handler: write log messages if sanity checks fail
- client: Correlate OpenCL results with CAL or CUDA results based on index of devices reported by each. This assumes that CUDA and OpenCL and report NVIDIA devices in the same order, and that CAL and OpenCL report ATI/AMD devices in the same order.
- client emulator fixes
- client: If OpenCL is supported, add OpenCL information to COPROC_ATI::write_xml() and COPROC_NVIDIA::write_xml(), and parse OpenCL information in COPROC_ATI::parse() and COPROC_NVIDIA::parse().
- client: Add OpenCL platform version number to COPROC struct. fix linux build errors in coproc stuff. I don't think unsigned long long is relevant here.
- lib: fix compile errors on Mac, Ubuntu and Windows.
- client: fix compile warnings on Mac and Ubuntu.
- lib, client: revert recent changes to restore unsigned long long so we can determine cause of and try to fix Linux build errors.
- lib: On Windows, call _strtoui64() instead of strtoull.
- client: pass --gpu_type X (X=nvidia or ati) as well as --device. This lets device-neutral OpenCL apps figure out which GPU to use.
- client: fix bug where NVIDIA display driver version wasn't being set correctly for some laptop GPUs
- client: improve estimation of NVIDIA GPU peak FLOPS
- lib: use standard implementation of strtoull when available.
- VboxWrapper: Add functions for enable/disable network and throttling the CPU and network activity.
- VirtualBox wrapper: change names of CPU and network-limiting functions to express their units (always do this).
wrapper monitors status.suspend_network and suspends/resumes network accordingly. wrapper sets CPU and network bandwidth limits on startup (Rom: should this be done before run() rather than after?) Note: App versions using this wrapper should always have <dont_throttle/> in their version.xml, to tell the client that the app throttles itself.
- fix build error in Linux screensaver (at least on FC14)
- manager: Communitcations -> Communications. please, no spelling errors in function/variable names
- client: parse deprecated tags in <file_info>
- client: fix bug that caused project attach to fail
- clientgui: Rom, we should do error-checking of most GUI RPCs; look for REPORT ERROR in ProjectProcessingPage.cpp
- Vbox wrapper: deal with checkpointing. Current: wrapper reports frequent checkpointing to client, but actually checkpoints only when the VM is stopped Problem: large amounts of work would be wasted if BOINC stops in an ungraceful way (e.g., power failure) Solution: Don't report frequent checkpointing. Every CPU scheduling period (typically once/hour) stop the VM (creating a checkpoint) and call boinc_temporary_exit(0). If the client wants to keep running this job, it will start us immediately.
- Mac: Copy BOINC libraries built with XCode 4.1 to locations where built by earlier versions of XCode so dependent builds can always find them.
- Vbox wrapper: create XCode project.
- client: fix a couple of valgrind warnings
- client: send all running jobs a "reread app info" message when global prefs change (in the case of vboxwrapper, it might have to change network or CPU throttling)
- vbox wrapper: check for boinc_status.reread_init_data_file, and if set reread the file, set throttles, and clear flag
- lib: Add OPENCL_REFERENCE boinc_get_opencl_ids(int argc, char** argv) to be called by OpenCL project applications to get the platform ID and device ID of the GPU assigned to the task by the scheduler.
- API: move boinc_get_opencl_ids() from lib/ to api/. lib/ is for code that's used by >1 part of BOINC
- client: fix bugs related to white space around code signing keys
win compile fixes
- API: boinc_get_opencl_ids() doesn't need to link the OpenCL library at runtime. It's used only in OpenCL applications, which already include the library.
- VboxWrapper: Specify a configuration directory under the slot directory to try and avoid permission errors on multiple platforms when BOINC is installed as a daemon.
- api: Fix compile errors and warnings, add documentation in comments
- lib: remove unnecessary #include, add needed function declarations
- api: More fixes to boinc_get_opencl_ids()
- lib: if OS_Darwin use procinfo_mac.cpp isntead of procinfo_unix.cpp.
- lib, api: update XCode project to build same source files in each library as corresponding make files.
wrapper compile fixes
- VboxWrapper: Add a way to extract the VM process id from the VM's log file.
client (and API and manager): change the data structure used for system process info Old: vector of PROCINFO. Descendants of a process were found by recursively iterating through the vector. Operations are O(n) New: map of (id, PROCINFO), and each PROCINFO has a vector of its children. Operations are O(log(n)) Also combined Mac/Win/Linux variants of code that was essentially the same.
more code shuffling: proc_control: controlling processes
procinfo: enumerating and querying processes
run_app_windows: launching apps as other users on Win
- client/API/vboxwrapper: add a mechanism so that apps can report sub-processes that are not descendants (e.g., virtual machines) These processes are then counted as part of the app, not as "non-BOINC CPU time". This fixes a bug where processing was incorrectly suspended because CPU usage by VM apps exceeded the "CPU usage limit" pref. Implementation: the PIDs of the processes in question are passed from app to client via shared-memory, in the app_status channel. A new variant of boinc_report_app_status() supports this.
the VBox wrapper queries the PID of the VM, and reports it in this way.
procinfo_app() includes a new argument: a list of PIDs that are part of the app, although not ancestrally related to the main process.
in the client, ACTIVE_TASK now includes a vector "other_pids". If this is nonempty, it's passed to procinfo_app().
- lib: Fix compile errors; add app_control.cpp to XCode project.
- lib: minor code shuffle
- client: fix bugs with white space around code sign keys and file signatures
- client: when describing app versions in scheduler requests, we still must use CUDA instead of NVIDIA; that's what's in the server code.
6.13.3 change log
- client: make exit_before_start a cc_config.xml option (as well as a cmdline option)
- wrapper: print error messages if stdin/out/err files don't exist
- client: if too many <coproc> elements in cc_config.xml, detect it and inform user
- client: new XML parser had a limit of 8KB for strings. This broke things. Increase it to 256KB
- Mac: More fixes for building under XCode 4.1. |
|
|
|
DO NOT RUN 6.13.3 It has a major nasty bug.
A solution for this problem has been found:
David Anderson wrote: There are (at least) two issues with 6.13.3:
1) For GPU apps, it passes an additional command-line argument that causes some apps to fail (usually by exiting immediately). This will be fixed in 6.13.4.
2) 6.13.3 handles file upload certificates (a mechanism that prevents DoS attacks on upload servers) differently than previous versions.
This change was necessary to make scheduler requests and replies readable by standard XML parsers. But it means that file uploads will fail to projects that a) use upload certificates, and b) aren't running current server code.
I sent email to boinc_projects describing this change, and recommending that projects disable upload certificates until they're able to upgrade their server code. Not all project admins read boinc_projects, so it may be necessary to contact them via their message boards or email, and I urge Alpha-testers to do so.
-- David
David Anderson, boinc_projects email list wrote:
"Upload certificates" are a mechanism that keeps bad guys from DoS'ing your upload servers (note: such an attack has never happened, as far as I know).
We're changing the format of upload certificates, and we're starting to test a version of the client for which old-format certificates won't work. Volunteers testers won't be able to upload completed jobs, and they may complain to you.
I suggest that all projects disable upload certificates. To do so, add the following to your config.xml file:
<dont_generate_upload_certificates/>
<ignore_upload_certificates/>
To resume using upload certificates, if you wish:
1) upgrade to the current server source code (from trunk)
2) wait for all jobs with old-format certificates to be dispatched
3) re-enable certificates by removing the above lines.
Let me know if any questions.
-- David
|
|
|
MarkJ Volunteer moderator Volunteer tester Send message
Joined: 24 Dec 08 Posts: 738 Credit: 200,909,904 RAC: 0 Level
Scientific publications
|
Note: This version has been withdrawn
6.13.4 change log
- client: XML-escape the URLs in RSS feed lists
- lib: make xml_unescape work for arbitrarily large strings
- client: don't pass --gpu_type to GPU apps; this breaks many existing apps. Instead, pass the GPU type (and the device number) in app_init_data.xml
- client: fix error in parsing of XML comments
- client: finish next-to-last checkin
- manager, simple view: edit label text. increase opacity of main area; otherwise some text is hard to read. change borders from blue to light gray. In general shouldn't use primary colors. display credit as integer. reduce size of project name; otherwise long names don't fit (on Win). don't use "(in slot x)". "Slot" is not part of the vocabulary here.
- API: change boinc_get_opencl_ids() to use APP_INIT_DATA instead of cmdline
- API; fix the above fix
- client: make RR simulation more accurate by simulating time-slicing explicitly. Also simulate changes in project REC and hence in scheduling priority.
- client: add a log flag "rrsim_detail" that prints time-slice-level info.
- client: remove code related to debt-based scheduling
- client: make file upload work w/ old handlers
- client, GUI RPC, Manager: in GUI RPC, change RESULT.gpu_mem_wait to scheduler_wait. It means that the app did a boinc_temporary_exit(), and is waiting to be rescheduled. GPU mem wait is one source of this, not the only one
- VBOX: Add more trace messages to the wrapper to help resolve issues.
- wrapper: don't delete task-level checkpoint file when starting task; that defeats the purpose. From Uwe Becker.
- VBOX: Properly trap stderr output from vboxmanage by redirecting it to stdout. Error messages should now be properly detected on Linux and Mac.
- VBOX: Don't attempt to stop a VM that is already shut down.
- VBOX: Make is_running() a bit smarter about detecting the running state of a virtual machine.
- client: get GPU available RAM at startup (only)
- client: fix compile warning
- client: fixes to the above
- client: prevent infinite recursion (and stack overflow) in procinfo.cpp:add_child_totals(). Not sure how this could happen.
- VBOX: Increase the pipe buffer on Windows from the default to 128k. Despite what the docs say, if the buffer isn't large enough VboxManage hangs attempting to write the VM log file to it. Luckly the VM log file is only 64k.
- VBOX: Fix a couple of parsing errors.
- VBOX: Add a register_only command line argument to help debug VM related issues.
- VBOX: Add some suggestions to the source on how to debug VM related issues.
- VBOX: Add a quick sanity check when the enable_shared_directory option is enabled.
- client: escape URLs for curl, otherwise filenames with spaces don't work
- client: curl_easy_escape() escapes way too much. Just escape spaces.
- XML parsing: do XML unescaping in place rather than allocating a buffer on the stack. Fixes a Manager crash on the Mac, where the default thread stack size seems to be 512KB.
- client: Update Windows detection code to support Windows 8. (From: [P3D] Crashtest)
- client: change in the use of GPU available RAM: measure the available RAM of each GPU when BOINC starts up. If this fails, set available = physical. Show available RAM in startup messages. use available RAM rather than physical RAM in selecting the "best" GPU instance. report available RAM to the scheduler
TODO: change the scheduler to use available rather than physical if it's reported
- vboxwrapper: we don't seem to be getting the VM PID. Add some printfs.
- client: report available GPU RAM to scheduler
- lib: parse <available_ram> in coproc XML
- lib: do coproc XML parsing using new XML parser
- lib: fix compiler warning.
- vboxwrapper: fix compiler warning.
- Mac: Change XCode project to build both 32-bit and 64-bit BOINC libraries for debug as well as for deployment.
- vboxwrapper: update XCode project for easier access to built executables and symbol tables under XCode 4.1.
minor code shuffle
- VBOX: Add a way to track overall network utilization of a VM.
- vboxwrapper: code cleanup use double for potentially large quantities. factor out repetitive code, rather than copy and paste
- vboxwrapper: report network usage to the client
- client: include the above in enforcing network quota preferences
- client: with VBox on Win, the process graph sometimes has cycles. Not sure where this comes from. But avoid infinite recursion when traversing descendants.
- wrapper: Update Mac build script for XCode 4.1 and OS 10.7. NOTE: We no longer support PowerPC Macs.
- client: make the attributes of GUI RPCs (network, authentication) explicit rather than determined by position in a list.
- client: add a new "read-only" attribute for GUI RPCs. This is in preparation for handling GUI RPCs in separate threads.
- client: remove code to support pre-V6 graphics.
- lib: add generic interfaces for threads and thread synchronization
- win fixes |
|
|
MarkJ Volunteer moderator Volunteer tester Send message
Joined: 24 Dec 08 Posts: 738 Credit: 200,909,904 RAC: 0 Level
Scientific publications
|
Note: The GPUgrid project admins have asked to not use the 6.13.x series on this project due to corruption of returned results.
6.13.5 change log (not released)
- client: in handling the acct_mgr GUI RPC, don't start the RPC directly; that might fail if CLIENT_STATE::gui_http is busy. Instead, set a timer field.
- client: structure ACCT_MGR_OP the same as other GUI_HTTP_OP variants
- client: clarify the comments on GUI_HTTP and GUI_HTTP_OP Note: GUI_HTTP and GUI_HTTP_OP are misnomers; they refer to any HTTP op other than scheduler requests and file transfers. Should change the name, maybe to CLIENT_HTTP*
- Mac: Remove app_graphics.cpp from Client in XCode project, add new files thread.cpp,.h to libboinc.a in XCode project. (Checked in to 6.13.4 tag.)
- client: intermediate checkin for replicated trickle-ups. Not finished yet.
- example app: add --trickle_up and --trickle_down options, for testing trickle messages
- client: fix bug in ATI GPU detection, caused zero RAM measurements
- client: fix ATI GPU max mem display issue.
- msg tweaks in make_project
- client: more stuff for replicated trickle ups
- lib: don't include thread.cpp; not needed for server, and causes errors on some 64-bit Linux
- vboxwrapper: fix code which sets environment variables. "PATH" must be upper case. putenv() does not copy its input string, so must use setenv().
- VBOX: More environment variable tweaks.
- client: more work on replicated trickles. Not working yet.
- client: replicated trickles. Seems to be working now.
- client: added <trickle_debug> config option
6.13.6 change log
- client: Disable GPU detection of Windows when running as a service to avoid a deadlock condition with the latest ATI drivers.
- Mac: fixes for problems with OS 10.4 compatibility
|
|
|
MarkJ Volunteer moderator Volunteer tester Send message
Joined: 24 Dec 08 Posts: 738 Credit: 200,909,904 RAC: 0 Level
Scientific publications
|
6.13.7 change log (not released)
- fix typo in manage_privileges
- client: fix spurious error message about trickle-up URLs
- client: don't call CLIENT_STATE::free_mem() on shutdown. This is for debugging only, and it can cause crashes.
- Mac: more fixes for problems with OS 10.4 compatibility. (checked into 6.13.5 and 6.13.6 tags)
- client simulator: add --existing_jobs_only option. This simulates just the jobs in the state file, rather than simulating an infinite stream of jobs modeled after the ones in the state file.
- Mac: update wxMac build script for building with XCode 4.1 under OS 10.7 while maintaining OS 10.4 compatibility. (checked into 6.13.6 tag)
- client simulator: fixes
- client: message tweaks
- client: Fix compile break on Mac.
- lib: only build the static version of libboinc.
- fix comment
- Updates Linux notifications to use current libnotify.
- Fix build problems on Mac OS X using autotools
Consistently use #if HAVE_X for platform checks, rather than #ifdef HAVE_X or #if defined(HAVE_X)
- In Unix build, make lots of compiler checks standard
- Fix some compile warnings From Matt Arsenault. Note: there are now lots of compile warnings in clientgui/ on Unix, mostly in WxWidgets code
- client: Fix compiler warnings on Mac.
- client: Fix compile break on Mac.
- manager: fix build break on Linux Undoes part of yesterday's checkin.
- more changes from #ifdef HAVE_X to #if HAVE_X
- WINSETUP: Add more logging to the create group and add user to group functions in an attempt to figure out what is going on with Windows 8.
- client: fix a bug reported by Jacob Klein, where work fetch didn't work right in the presence of multiple GPUs and <exclude_gpu> config options. For example: suppose: you have 2 GPUs and 2 projects, Project A is excluded from GPU 1
you have lots of jobs for project A Then the client won't try to fetch jobs from project B. The problem had 2 parts:
a) round-robin simulation wasn't taking GPU exclusions into account. In the above example, it would think that both GPUs had jobs. I fixed this by computing the # of GPUs from each project is excluded, and using this in the RR simulation.
b) Once this was done, I needed to make the client request GPU jobs from project B rather than project A. I did this with following policy: If a project has excluded GPUs of a given type, and has a runnable job of that type, don't ask it for more work of that type.
Notes:
the policy in b) is crude, and it means that work-buffer preferences are ignored in some cases. neither a) nor b) takes into account app-level exclusions. I could fix both of these with a lot of work, but I'd rather move to a model in which dissimilar GPUs are modeled as different resources, which would remove the need for the <exclude_gpu> mechanism in the first place.
Other note: I figured out this problem using the client simulator, based on the client state file that Jacob sent me.
- client: specify the project in "Some tasks need more memory than allowed by your preferences" messages
- client: fix bug that could cause GPU idleness in the presence of GPU exclusions. The problem was in the job-selection phase, which picks enough jobs to use all devices. It was ignoring GPU exclusions, so for example on a 2 GPU system it could pick 2 jobs from a project for which 1 GPU is excluded, and as a result 1 GPU would be idle. Solution: during job selection, keep track of GPU usage on a per-instance basis. Select a job only if it can run on a non-excluded GPU.
- client: in computing ncprocs_excluded (which is used in work fetch policy) don't count exclusions of non-existent devices
- client: compute project scheduling priority more efficiently
- client: if an app version can't be used because the GPUs it needs are all excluded, mark it and all its results as "coproc missing" so that they won't be looked at in scheduling logic.
- client: Fix compiler warnings.
- lib: move XML parse test program to its own file. Note: XML_PARSER::parse_str() doesn't currently work right for something like <foo><a>xx</a></foo>. It should return "<a>xx</a>". TODO.
- client: don't generate notice if lookup of host in remote_hosts.cfg fails.
- client: don't show "(device N)" if there's only 1 device
- client: win compile fixes
- WINSCR: Before shutting down the screensaver, quickly reinitialize the OpenGL device on the primary display. Some of the issues being reported with the screensaver is a left over ghost image of the OpenGL display before the graphics application was terminated because keyboard/mouse activity was detected.
- client: in the function that sorts jobs by arrival time, don't use name as a tiebreaker. The will typically group jobs of the same application, and (it is believed that) things run faster when applications are mixed.
- client: fix a memory leak; would lose ~120 bytes each time a job is started
- Lib: Re-enable boinc lib mem snapshots for BOINC based applications (boinc, boincmgr, boinc.scr) on Windows.
- client: fix memory leak when reading stderr of completed job. This caused 128KB + size of stderr loss for each job.
- client: print error message if reading stderr fails (e.g. because of malloc failure)
- client: free vectors in NOTICES, RSS_FEEDS, and DAILY_XFER_HISTORY in free_mem() (for mem leak checking)
- client: problem: suppose a project has 2 data servers, and one of them is down. If several downloads from the broken one fail, we go into "project-level backoff" and don't start downloads from either server. (Same applies to uploads). Solution: make project-level backoff apply only to transfers that have already failed at least once
- GUI RPC: add get_daily_xfer_history() RPC for getting the daily records of #bytes uploaded and downloaded
- client: fix bug in writing daily xfer history file
- client: write descriptions of OpenCL devices to stdout (and display in manager's Event log).
- client: work around a bug where OpenCL reports global RAM of ATI GPUs incorrectly (1/2 of actual value.)
- client/server: change field names in OPENCL_DEVICE_PROP to match those in the clGetDeviceInfo() calls. Principles: if there's already a name for something, use it. follow case conventions
- client and scheduler: estimate peak FLOPS for GPUs that are detected by OpenCL but not by native APIs (CUDA/CAL). This is limited by the fact that OpenCL doesn't give us the necessary hardware info (ATI; wavefrontSize; NVIDIA: compute capability). We use the minimum values for these, so in most cases we'll be underestimating the peak FLOPS.
- client (Mac): there was no error check of the creation of a memory-mapped file used for communication with an app. Add a check, and don't start the job if it fails.
- client: don't do scheduler-requested RPCs if project is set to No New Work, and project has no jobs on the client
- client/scheduler: the code for estimating peak FLOPS of ATI GPUs (from Crunch3r) has a multiplier of 2.5 for cores/processor. This is possibly because give a double-precision estimate. But actually we want single-precision. Change it to 5. See http://golubev.com/about_cpu_and_gpu_2_en.htm
- client: improve code which writes OpenCL descriptions.
- client: Compare openCL-only devices by estimated peak flops.
- client: compare OpenCL-only devices the same as other devices
- client: Fill in peak flops for each OpenCL GPU before compare; else there is nothing to compare with.
- API: don't crash if send trickle msg running standalone. From Christian Ries.
- client: fix bugs in acct manager attach/detach
- client: Fix crashing bug in OpenCL detection on Windows.
- lib: Fix crashing bug for debug builds of the BOINC client software
- Mac installer: follow recommendations of Apple Developer Technical Support: create users and groups boinc_master and boinc_project at first available UserIDs and GroupIDs starting at 501 instead of 25 to avoid conflicts with UserIDs and groupIDs which may be added in the future; use Directory Services to find the user names of all human users instead of stepping through the entries in the /Users directory.
- Mac installer: revert to using LoginItemAPI.c under OS 10.7.1, because it once again sets hidden property for login items, but the AppleScript seems not to work under OS 10.7.1.
6.13.8 change log
- client/server: add a new result state RESULT_UPLOAD_FAILED for when the job completed successfully but one or more output files had permanent upload failures. Show this state in web interfaces.
- client and user web: show NVIDIA driver version and CUDA version as, e.g., 275.33 instead of 27533
- vbox: Move the destination of the VBOX_USER_HOME environment variable to <boinc_data_dir>/projects/virtualbox so that the virtualbox configuration can remain consistent across one or more projects.
- client: fix NVIDIA driver version and CUDA version display for Mac. |
|
|
MarkJ Volunteer moderator Volunteer tester Send message
Joined: 24 Dec 08 Posts: 738 Credit: 200,909,904 RAC: 0 Level
Scientific publications
|
The BOINC developers are expecting this version will become the new BOINC v7 once testing is complete. Given the large number of changes in this version use caution.
6.13.9 change log
- client: fix honoring of cc_config ignore GPU options.
- atiopencl sample: call boinc_get_opencl_ids() if not stand-alone; improve error messages.
- WINSCR: Move the reset display call to the end of the full screensaver section. We do not need to perform a display reset in the various test modes.
- client: fix bug where network suspend got ignored when OS suspends (e.g. sleep or hibernate)
- client: create and destroy PERS_FILE_XFERs even if network suspended. This will show pending uploads in the Transfers tab.
- file_upload_handler: fix message to client when can't acquire lock
- client: parse <alt_platform> in state file correctly
- MGR: Support both the old and new libnotify at runtime on Linux
- manager: don't show slot number in simple view task list
- MGR: Remove code that blocks the switch to simple view when an accessibility aid is running. Remove dead code related to v5 graphics applications from the client software.
- MGR: Remove the triangle in the lower right-hand corner of the default project image for the simple GUI
- MGR: Persist Simple GUI notification dialog size and position information.
- MGR: Remove context menu help buttons from dialog.
- client: show OpenCL version correctly on Win
- client: improvements to job scheduling and work fetch policies.
Job scheduling: the baseline policy is to schedule based on "project priority", which is how much processing P should receive based on resource share minus how much it actually has received recently. This policy tends to run jobs from the same project together, so we modified it by adding a priority adjustment as jobs are scheduled. The idea is that if 2 projects have about the same priority they should split the processors. The problem: the adjustment was too large on hosts that are on only a small fraction of the time, thus tending to run 1 job from each project, regardless of priority. Solution: make an adjustment that reflects the host's actual throughput. See adjust_rec_sched() for details.
Work fetch: similar situation. We were making an adjustment based on how much work the project currently has queued, but the adjustment drowned out the project priority, so we'd tend to always get work from the project that has least work queued. Solution: make a smaller adjustment (-.3 ... .3)
- client: in message announcing app start, show the plan class
- client: don't show "unrecognized XML" messages for account files. It's typically project-specific prefs that the client doesn't know about.
- client: bug fix for the above
- client simulator: make the output more graphical
add boinc_opencl.h to set of installed headers
emulator tweaks
- client: call xp.skip_unexpected() if get unexpected tag, to avoid showing multiple error messages
- client simulator: bug fixes and tweaks
- client: associate a PROJECT with HTTP_OP where applicable, so that if you use <http_debug> and filter by project you don't see other projects' HTTP stuff
- client simulator: cc_config.xml is part of the scenario; log flags are part of the simulation
- MGR: Make the Default skin loadable from the file system.
- MGR: Change the in-memory defaults for the skin to be a light-gray background.
- MGR: Change the dots used in the simple gui.
- MGR: Make the dots used in the simple gui skinable.
- MGR: Change the 'Project Web Sites' button text to 'Project Web Pages'.
- MGR: Add a basic 'Default' skin to be included by the various installers
- MGR: Remove a bunch of files that are not used by the default skin anymore.
- Mac: Update Mac build scripts, XCode project and source files to allow automated builds under OS 10.7 Lion and XCode 4.2.
- Mac: Build and link jpeglib from boinc/samples/jpeglib instead of requiring a separate jpeglib-6b directory.
- MGR: More simple GUI text changes
- MGR: Reduce clutter in log file
- client: change the way project priorities are computed, so that they do what they're supposed to (i.e. enforce resource shares)
- client: change log flag <debt_debug> to <priority_debug>
- client simulator: update REC even with large delta-t.
- client simulator: handle "no new work" apps correctly
- client: fix bug that caused extra "<" to get written at end of global_prefs_override.xml and cc_config.xml when they are modified via GUI RPCs
- client: fix crashing bug when there's a cycle in the process graph. I had fixed this in one place but not another.
- client: don't memset(0,) a PROCINFO; use clear() instead
- Mac: Update XCode project and Mac build scripts to build libboinc_opencl.a library and to work both with XCode 3.2 on OS 10.6.8 and with XCode 4.2 on OS 10.7.2.
- MGR: Replace backup images RedDot16.xpm, YellowDot16.xpm and GreenDot16.xpm with XPM files created from Rom's new files dotred.gif, dotyellow.gif and dotgreen.gif. These need to be cmpiled into the source code as backups in case the GIFs are missing, because these images are essential resources.
- MGR: Simple View bug fix.
- MGR: Fix dot images
- client simulator: bug fix
- MGR: Replace colored dot GIF files with new PNG files which do the anti-aliasing in the alpha channel, so they look correct when highlighted on the Mac. Generate new XPM files from these PNG files.
- MGR: Force update of Task Selection List on reskin interface.
- MGR: Move skin file to correct place, set background image's background color to black for this background_image.png.
- client/API: pass bool using_sandbox in APP_INIT_DATA; says whether the client is using account-based sandboxing. Needed by vboxwrapper.
- MGR: Adjust preference dialog titles, improve Simple View menus and other text, make Simple Preferences dialog more like Advanced Preferences dialog.
- VBOX: Don't redirect VirtualBox to a different directory structure for the root configuration file when the client is NOT in sandbox mode. Doing so could cause confusion if the volunteer uses VirtualBox for any of their own work. If BOINC started up first it would have appeared that their own VM's no longer existed.
- MGR: Make the simple gui rounded edges seem smoother by increasing the radius.
- MGR: Fix project name font in the tasks area, normal size. Increase its weight to BOLD.
- MGR: Make sure the dot is red if the project has been suspended for the given task.
- MGR: Scale background skin so that it now fits in the new simple gui NOTE: We are in the process of trying to get new artwork so that we can handle the localization issues better.
- fix NVIDIA peak FLOPS
- MGR: Fix crash bug.
- MGR: Fix project name font on Mac, which uses Lucinda Grande font not Arial. SetFont for the parent window does not propogate to the text controls because CTransparentStaticText uses OnPaint() to draw.
- MGR: Bug fix: when the task currently selected in Simple View is deleted, change selection to a different task.
- MGR: Sort Simple View task selection control alphabetically.
- MGR: Reverted the above change because wxBitmapComboBox on Windows loses existing items' clientData when we Insert() a new item.
- Mac installer: Fix a very old bug.
- client: reimplement the round-robin simulator to reduce its runtime from O(N^2) to O(N), where N is the number of runnable jobs (which can be in the thousands). This will make the client emulator run a lot faster, and will reduce the client CPU overhead a bit.
- API: change boinc_get_opencl_ids() so that it returns a BOINC error code (< -100) if the app_init.xml is missing or bad (i.e. we're running standalone), and an OpenCL error code (> -100) if an OpenCL call failed.
- MGR Skins: Fix numerious issues related to bad entries in the Skin XML file.
- API: compile fixes for MinGW. From Oliver Bock.
- MGR: Sort Simple View task selection control alphabetically. Subclassed CBOINCBitmapComboBox from wxBitmapComboBox to work around clientData bug in wxBitmapComboBox::Insert().
- MGR: Allow skin to specify the (simulated) opacity of Simple View task and project panels on a scale of 0 (clear) to 255 (opaque). |
|
|
MarkJ Volunteer moderator Volunteer tester Send message
Joined: 24 Dec 08 Posts: 738 Credit: 200,909,904 RAC: 0 Level
Scientific publications
|
There are a few issues with 6.13.9 so don't use this one.
One is that it doesn't seem to convert client_state properly when you upgrade (even from 6.13.8) and the other to do with the T4T project (see message from Charlie below):
Date: Wed, 26 Oct 2011 16:19:15 -0700
From: Charlie Fenton
Subject: Re: [boinc_alpha] BOINC 6.13.9 released for Windows
Dear Alpha testers:
Please do _not_ run T4T at this time on the Mac. The current version of T4T requires you to run a script which disables sandbox security and we have unconfirmed reports that this causes problems with other projects. If you have run the script, please detach from or suspend T4T and reinstall BOINC without running their script.
We have developed a method for projects to use VirtualBox without disabling BOINC's sandbox security. Once T4T has implemented these changes, we will ask you to begin testing it.
I hope to have a new version of BOINC for you to test on the Mac soon.
Thank you!
Cheers,
--Charlie |
|
|
MarkJ Volunteer moderator Volunteer tester Send message
Joined: 24 Dec 08 Posts: 738 Credit: 200,909,904 RAC: 0 Level
Scientific publications
|
6.13.10 change log
- client: message tweak
- Mac: Modify XCode project to link with libcrypto.0.9.7.dylib and libssl.0.9.7.dylib if OS 10.5 SDK is present, to allow running BOINC on OS 10.4 and later. If OS 10.5 SDK is not present then it will link with libcrypto.0.9.8.dylib and libssl.0.9.87.dylib and product will require OS 10.6 or later. (Checked into 6.13.9 tag.)
- Mac: Update build instructions for client and libraries.
- Mac installer: fix bugs when installing under OS 10.5.
- Mac installer: Update release script to include Default skin. (All checked into 6.13.9 tag.)
- client: fix typo in project parse code
- client: smoothed working-set size wasn't being computed correctly. It was always just the most recent size.
- Mac installer: Update release script to create projects/virtualbox/ directory, to ensure it has the correct owner and permissions because vboxwrapper does not have sufficient privileges to do so. |
|
|
MarkJ Volunteer moderator Volunteer tester Send message
Joined: 24 Dec 08 Posts: 738 Credit: 200,909,904 RAC: 0 Level
Scientific publications
|
6.13.11 change log
- Mgr: Exit manager as soon as quit rpc to client succeeds, instead of waiting for client to exit.(Checked in to 6.13.10 for Mac build only.)
The problem: if suspended tasks are kept in memory, some project applications don't respond to exit request from client, but client needs to allow 20 seconds before killing them in case they are writing a large checkpoint file. But if the manager waits that long to exit, it seems unresponsive to users, so it was killing the client after only 10 seconds. This left orphan project apps in RAM.
The solution: assume that if the quit rpc to the client succeeds, the client will exit properly, so kill client only if RPC fails or is not completed in 10 seconds.
- GUI RPC client: parse the reply of quit(), so that it returns an error if no response
- Mgr: Code cleanup.
- lib: fix a "strcpy(p, p+1)" instance
- api: Update comments, remove unused includes for boinc_opencl.a.
- API: fix bug in boinc_get_opencl_ids()
- add simulator for distributed storage (not finished)
- api: Restore lost checkin of 31 October 2011.
- Mac installer: update ReadMe files for BOINC 6.13.x.
- client: fix bugs when writing/parsing cc_config.xml via GUI RPCs (e.g. when editing it via the Manager). Include only the GPUs that were specified in the original cc_config.xml, not those detected by the client.
- client: fix bug that failed to require authorization for GUI RPCs that are supposed to be authorized
- client: report parse errors in acct_mgr_url.xml and acct_mgr_login.xml
- fix compile warnings
- wrapper: handle Windows .bat files as main programs
- client: show GPU exclusions at startup (need to do this after reading the state file, since GPU exclusions refer to projects).
- client: fix bug that added garbage <coproc> element to <app_version> in state file when using GPU exclusions
- client: fix work fetch bug. If we're contacting a project to report results, only piggyback work requests for resources for which that project is the highest priority that may have work.
- client: compute result.not_started more efficiently TODO: continue efficiency work. There's still some quadratic stuff
- Mac: add -Wno-format-security compiler flag to suppress warning that format string is not a string literal in code to show messages from server in CLIENT_STATE::handle_scheduler_reply().
- client: fix errors in (currently unused) get_max_cpu_temperature() code for Macintosh.
- client: attempt to fix bug reported by John McLeod, where the client crashes after giving up (90 day timeout) on an upload. I'm guessing this was caused by [24391], which changed the order in the poll loop from garbage_collect file_xfers->poll pers_file_xfers->poll handle_pers_file_xfers to garbage_collect handle_pers_file_xfers file_xfers->poll pers_file_xfers->poll I don't understand why this would have caused a crash, but so be it. I restored the original order, but with handle_pers_file_xfers not inside the if (!network_suspended).
- client: renamed handle_pers_file_xfers() to create_and_delete_pers_file_xfers()
- client simulator: show simulator CPU time
- Mac: remove -Wno-format-security compiler flag (no longer needed).
- client: don't crash if trickle up exceeds 64KB (this bug was introduced Sept 20)
- client: actually do the checking described above
- client: don't crash if a project sends app_version.flops = 0.
- Mgr: Bug fix.
- manager: apparently WxWidget's combo box has problems (bugs) if multiple items have the same string. So, in simple view task combo box: show % done (unique in most cases). remove version number. instead of showing plan class, show "NVIDIA GPU" or "ATI GPU" TODO: update the fraction done
- client: condition RR sim negative FLOPs message on rr_simulation.
- client: reduce complexity, possibly get rid of a crash condition on 64-bit Windows.
- MGR: Change default skin to the one Jacob Klein purposed.
- client: on transient upload failure, don't do start_xfer() within PERS_FILE_XFER::transient_failure(); we're about to delete and free the FILE_XFER. The transfer will be restarted in the next poll.
- Mgr: Fix Simple View layout to fit 3 decimal places for % done.
- Mac installer: fixes for OS 10.4 compatibility.
- API: Remove exception trapping stuff from the boinc_get_opencl_ids.
- Mgr: to fix Windows combo box problem when multiple items have the same string, add spaces to identical application names in Task Selection control as needed to make each entry unique. Don't append % done to Task Selection control entries, as that varies over time, causing significant complications.
- WINSCR: Add a reference to SCRAPPERR_BOINCNOGRAPHICSAPPSEXECUTING in the message lookup table.
- WINSCR: In the ResetProc message pump, change the call for CloseWindow() to DestroyWindow().
- WINSCR: Sync up the timer IDs.
- OpenCL API: fix logic error
- OpenCL API: check return value from clGetDeviceIDs()
- WINSCR: Fix compile error.
- WINSCR: Attempt to gracefully shutdown a graphics application first
- client & lib: Update the OpenCL header to include calling conventions and weak link information for Mac machines. |
|
|
MarkJ Volunteer moderator Volunteer tester Send message
Joined: 24 Dec 08 Posts: 738 Credit: 200,909,904 RAC: 0 Level
Scientific publications
|
6.13.12 change log
- MGR: On Mac, work around bug in XCode 4.2 by accepting and ignoring command line argument "-DocumentRevisionsDebugMode=YES"
- client: On Mac, work around bug in XCode 4.2 by accepting and ignoring command line argument "-NSDocumentRevisionsDebugMode=YES"(checked into 6.13.11 tag)
- Mgr: fix a bug deleting entries from Task Selection control which I introduced on 9 November. Deleting an entry cvan create a gap in the alphabetically sorted sequence, so we can't use my earlier shortcut in checking for existing entries.
- Mgr: If a slide show has only one slide, load it only once
- client: check return value of FILE_REF when parse project file. Fixes crashing bug.
- MGR: Update default skin to v4 |
|
|
MarkJ Volunteer moderator Volunteer tester Send message
Joined: 24 Dec 08 Posts: 738 Credit: 200,909,904 RAC: 0 Level
Scientific publications
|
7.0.1 change log (not released)
- Mac installer: There can now be multiple instances of the Manager running, so shut them all down.
- client/scheduler: If the file "client_opaque.txt" exists on the client, include its contents in scheduler request messages. On the scheduler, parse this into SCHEDULER_REQUEST::client_opaque, where it can be used by the customizable scheduler functions.
- Mgr: Don't call Simple View specific periodic RPCs when BOINC is hidden or minimized.
- client: show error messages (as notices) when get an error parsing cc_config.xml
- client: if an <exclude_cpu> element in cc_config.xml specifies a nonexistent app, show an error msg with a list of existing app names
- client: improve messages for the above
- Mgr: In CSimpleTaskPanel, change name of Update() to UpdatePanel() to fix compiler warning about overloading wxWindow::Update().
- MGR: Limit change of 9 November to only Debug builds: accept and ignore command line argument "-NSDocumentRevisionsDebugMode=YES"
- client: add some missing items to CONFIG::parse_options_client().
- MGR: use wxBitmapComboBox insert() and append() calls without client data argument instead of passing NULL.
- Remove include of boinc_cl.h from parse.h; it is no longer needed.
- Remove Mac Availability Macro and weak-link support from cl_boin.ch as it prevented building BOINC libraries under OS 10.5.
- MGR: Fix button font sizes in Simple View Projects panel.
- client: on network_available() GUI RPC, clear project-level upload and download backoffs, as well as RPC and individual xfer backoffs. This was an oversight.
- MGR: Hide slideshow subpanel if no slides for current task.
- MGR: In Simple View, draw Mac progress bar on white background for better visibility; adjust red New Notices ring for new button shapes if on Mac OS 10.7.
- MGR: const fixes for platform bitmaps. (From: Steffen Möller)
- MGR: Add trace statements to help track down RemoveAt bug
- MGR: Remove static var guard, may not be needed with the SetDlgOpen() routines blocking timer based updates. If there is a buffer overrun hopefully it'll manifest itself in a detectable way.
- MGR: Prevent crash, check returned pointer of menu entry.
- MGR: Fix bad asserts.
- MGR: Fix bad transparency in default project icon.
- MGR: The asserts were correct; fix minor errors in calling code.
- MGR: In Simple View, if deleting a task above the current selection, decrement the index of the current selection.
- MGR: In Simple View, reload slide show when task selection changed.
- MGR: In Simple View, sort Project Selection Control; make sorting of Project and Task Selection controls case-insensitive,
- fix bugs in MacBitmapComboBox.cpp.
- GUI RPC client lib: change setsockopt() for receive timeout to work on Windows. From Fred.
- default screensaver: fix divide-by-zero; code cleanup
- client: fix errors in transferring RAM info between CAL and OpenCL. (bytes vs MB units, local/global terminology issue). From Oliver Bock>
- default screensaver: fix build breaks caused by code cleanup above.
- MGR: In Simple View, if task has no slide show, then display the institution, science area and description. This is in progress: not yet finished.
- MGR: Continue work on Simple View to display the description if task has no slide show. Change all occurrences of "n" to "^n"
- MGR: Complete work on Simple View to display the description if task has no slide show.
7.0.2 change log
- MGR: Better sizing of Simple View description text box. |
|
|
MarkJ Volunteer moderator Volunteer tester Send message
Joined: 24 Dec 08 Posts: 738 Credit: 200,909,904 RAC: 0 Level
Scientific publications
|
7.0.3 change log
- Mac installer: revert to using a wrapper application around installer package to require a system restart if creating users and groups.(checked into 7.0.2 tag)
- Mac installer: for files in projects and slots directories, if the executable-by-owner permission is set, ensure that the executable-by-group bit is also set.(checked into 7.0.2 tag)
- MGR: Increase the opacity of the panels to make the black text more readable.
- MGR: eliminate "ghost" Notices window when running on Windows OS.
- MGR: don't show "indeterminate" progress bar in Simple View.
- Mac installer: eliminate use of WaitPermissions.app.
- Mac installer: revert branded build scripts for wrapper application around installer package.
- MGR: If CSkinIcon PNG file has an alpha channel, use it as mask and ignore any <transparency_mask> tag.
- Mac installer: update build scripts for naming consistency with other platforms.
- API and client: add "ncpus" field to APP_INIT_DATA. Tells multicore apps how many cores to use. The --nthreads command line arg to the app is now deprecated though we'll keep it around for the time being.
- client: isdigit() asserts if its arg is negative (which it can be). Call isascii() first.
- GUI RPC lib: add some consts
- client: when contacting a project for reasons other than work fetch (e.g. to report completed jobs) only request work if it's the project we would have chosen if we were fetching work.
- client: the way in which project priorities were adjusted in work fetch to reflected currently queued work was wrong.
- client: fix bug in the way project priorities are adjusted in RR simulator
- client emulator: if there are results in the state file with states DOWNLOADING or UPLOADING, change them to DOWNLOADED or UPLOADED. Otherwise they're stuck.
- client: compile fix; remove redundant total_peak_flops()
- client: if a file download was in progress at the time of an upgrade from 6.12 to 6.13+, it could get erroneously marked as an upload and get stuck forever. Problem: uninitialized member.
- MGR: Scale the task pane in the advanced view to encompass the largest button.
- lib: encode CAL version numbers in a way that handles release #s > 1000
- client: tweak parameters of file xfer backoff to reduce backoff intervals somewhat
- MGR: Add IE8-10 support for browser cookies when UAC is enabled. Use the supported API. It appears MS changed the cookie file format in their latest browsers which broke our hack. I have to leave the hack in for now because IE7 on Vista didn't expose the IEGetProtectedModeCookie API.
- WINSETUP: Start BOINCMgr as a restricted process on Windows Vista+. |
|
|
MarkJ Volunteer moderator Volunteer tester Send message
Joined: 24 Dec 08 Posts: 738 Credit: 200,909,904 RAC: 0 Level
Scientific publications
|
7.0.4 change log (not released)
- MGR: in Simple View, localize institution, science area and description.
- MGR: Display project descriptions in Attach Wizard using wxTextCtrl instead of wxHtmlWindow to support screen readers for accessibility, after converting all occurrences of "n" to "^n". Show localized project descriptions in Attach Wizard.
- MGR: Fix horizontal sizing of text in Simple View project description.
- API: sllow applications to supply a "web graphics URL", in which case the manager's "Show Graphics" button opens a browser at that URL. This typically would used for applications that implement a web server that serves pages showing job information in HTML.
- add support for APP::needs_network flag. If set, don't run jobs for that app while network is suspended.
- client: parse this flag and maintain in state file; do a job reschedule when network suspend state changes
- GUI RPC: add RESULT::network_wait flag; if set, this job is waiting for network access to be allowed
- Manager: display the above in task info
- add support for "web graphics URL" (see above)
- client: parse message containing URL on graphics_reply channel and store in ACTIVE_TASK::web_graphics_url
- GUI RPC: add RESULT::web_graphics_url
- Manager: if web graphics URL is present, Show Graphics opens a browser
- remove some vestigial code for pre-V6 graphics
- make "needs network" a property of APP_VERSION rather than APP
7.0.5 change log
- SCR: Remove last linger pieces of v5 backward graphics compatibility from the screensaver. |
|
|
MarkJ Volunteer moderator Volunteer tester Send message
Joined: 24 Dec 08 Posts: 738 Credit: 200,909,904 RAC: 0 Level
Scientific publications
|
7.0.6 change log
- client: detect Windows HyperV Server 2008 R2 (from Crashtest)
- client: increase the buffer sizes for retrieving cpu features on *nix type systems. the latest generation of processors blow past 256 bytes and vmx and svm are truncated.
- WINSETUP: Introduce new BOINC setup packages which include VirtualBox
The BOINC Vbox installers are 71Mb (32 bit) and 78Mb (64 bit) in size. The Vbox download alone (from www.virtualbox.org) is 87.9Mb |
|
|
MarkJ Volunteer moderator Volunteer tester Send message
Joined: 24 Dec 08 Posts: 738 Credit: 200,909,904 RAC: 0 Level
Scientific publications
|
7.0.7 change log
- client: parse APP:non_cpu_intensive correctly. This got broken somehow.
- client: don't crash if missing RSS feed file for some reason
- client: for VBox apps, check stderr for "ERR_CPU_VM_EXTENSIONS_DISABLED". If found, set HOST_INFO::p_vm_extensions_disabled, and pass this to the scheduler. Note: if you have a host with VM extensions, and they're disabled in the BIOS, and you enable them, you can remove the <p_vm_extensions_disabled> line from client_state.xml and you'll be eligible to get multicore VM jobs again.
- client: processor features buffer is supposed to be 1024 bytes. avoid truncation. |
|
|
MarkJ Volunteer moderator Volunteer tester Send message
Joined: 24 Dec 08 Posts: 738 Credit: 200,909,904 RAC: 0 Level
Scientific publications
|
7.0.8 change log
- VBOX: If VirtualBox reports an error snag both the hypervisor system log as well as the VM execution log. Maybe the hypervisor log will tell us what is up with the virtual floppy device.
- VBOX: Don't retry commands that are expected to fail in normal use cases. It slows down getting the VM up and running.
- VBOX: After starting the VM, use a timed loop waiting for the initial VM state change instead of just waiting for 5 seconds. Older machines can take longer than 5 seconds to switch from poweroff to starting. If we hit the main poll loop in that state the wrapper thinks we have crashed.
- VBOX: Strip carriage returns from all the vboxmanage output on Windows.
- client: compute projects' disk share (based on resource share). Report it (along with disk usage) in scheduler request messages. This will allow the scheduler to send file-delete commands if the project is using more than its share.
- client: add <disk_usage_debug> log flag
- VBOX: Fix crashing issue I introduced last night attempting to extract the hypervisor system log.
- VBOX: Report the hypervisor system log with any failed vboxmanage command that happens during the phase where we setup the VM.
- client: calculate disk share for zero-priority projects correctly
- client: Remove scaling factor for AMD OpenCL devices. Latest generation of drivers now report the correct memory size. They didn't wait for the next OpenCL spec change.
- VBOX: Per tester feedback, at an hourly status report to track network usage.
- VBOX: For errors where an error code is specified in the output, use that value when returning from vbm_open(). Make it easier to track failure rates by problem type in the ops pages. (Windows Only)
- VBOX: Try making the process of extracting the hypervisor system log more robust, make a temp copy of it in the slot directory. Avoid exclusive file lock issues since VboxSvc will still be logging to it.
- VBOX: Change the session lock text to make it clearer that the use of other VirtualBox management tools can cause a problem.
- VBOX: Restore the elapsed time from the checkpoint file instead of aid.starting_elapsed_time. It appears some older client versions are giving erratic results.
- VBOX: Use strtol instead of atol to parse Vbox error codes from stderr/stdout output.
- VBOX: Undo my reorg yesterday with regards to report_vm_pid and report_net_usage.
- VBOX: Only report network usage in the status report if aid.global_prefs.daily_xfer_limit_mb is non-zero
- VBOX: Add the VM log to the list of things reported on a start failure. Hypervisor log suggests that it launched the VM but it failed unexpectedly. So there might be cases where it actually exists.
- VBOX: Move start state change detection code from run() function to start() function and use similar code to handle stop as well. Weird stuff happens when people start/stop BOINC quickly, it looks as though the previous VM instance isn't shutdown before we attempt to start it again. Hopefully enough of a wait is in there for the VM to fully halt before the wrapper is terminated.
- VBOX: Fix a crash bug if multiple virtual NICs are defined for a VM. I'm not sure what the heck happened. It probably has something to do with my \r removal code on Windows. Bugs hidden by other bugs I suppose.
- VBOX: Extract the various logs before attempting to cleanup if the registration process fails.
- GUI RPC: use new XML parser
- client: Restore scaling factor for AMD OpenCL devices on Macs with OpenCL version < 1.2.
- Mac Installer: Changes for integrated BOINC+VirtualBox Mac installer.
- MGR: Remove sash window divider between the task panel and list panel in the advanced view. Retain the ability to dynamically adjust the width of the task panel based on widest button.
- LIB: Use parse string instead of copy contents for messages RPC.
- VBOX: Use sscanf instead of strtol to convert a hex string.
- VBOX: Use new FloppyIO implementation that reports image creation errors.
- manager: parse message contents with XML_PARSER::element_content().
- MGR: Derive from the correct base class to make the sizers work properly.
- VBOX: Sleep for the remainder of the polling period and not the whole poll period.
- scheduler: change vbox_mt app plan function to use 1, 2 or 3 CPUs depending on how many the host has, and whether CPU VM extensions are present (this reflects the requirements of CernVM).
- VBOX: Fix regression where the ERR_CPU_VM_EXTENSIONS_DISABLED error message wasn't being written to stderr when the VM extensions were disabled via the BIOS.
- scheduler: change vbox_mt plan function to use at most 2 cores, not 3 (CERN doesn't actually need 3)
- client: reset ACTIVE_TASK::bytes_sent and bytes_received when the task is started or restarted
- client: OpenCL 1.1 has no API for determining available GPU RAM, so if CAL is not present for ATI / AMD GPU or if CUDA is not present for NVIDIA GPU, set available GPU RAM equal to total GPU RAM.
- VBOX: Fix one last regression related to failed start detection. If only one CPU is allocated, manually disable VM hardware acceleration.
- scheduler: the p_fpops value reported by clients can't be trusted. Some credit cheats (e.g. with credit_by_runtime) can be done by reporting a huge value. Fix this by capping the value at 1.1 times the 95th percentile of host.p_fpops, taken over active hosts.
- client: Fix idle detection for Apple Remote Desktop and screen sharing (VNC) under Mac OS 10.7. See comments in HOST_INFO::users_idle() for details.
- first stab at improving Disk View colors
- Mgr: When launching Mac client as a daemon, allow time for it to start.
- vboxwrapper: add <pf_host_port> element to config file. Specifies host port # for port forwarding. If absent or zero, assign a port.
- API: respect direct_process_action even if multi_process is set
- VBOX: Enable remote desktop functionality for a VM that has <enable_remotedesktop/> specified in its vbox_job.xml file. NOTE: It does require the VirtualBox extension pack, but that is freely available on the VirtualBox download page.
- VBOX: Report the remote desktop connection information to the core client. Next commit will create an extra "VM Console" button in the manager when detected. Volunteers will just have to click the button to see what is going on with the VM.
- client: Add plumbing to support passing the remote desktop connection information to the manager
- MGR: Add a "Show VM Console" button for those tasks which report a remote desktop port number.
- VBOX: Make sure the configured port numbers persist across restarts of the client software. Remote desktop stopped working if the client software was restarted.
- client: Due to my changes of 10 Jan 2012, idle detection did not work when BOINC was run as a pre-login daemon. So use the old method when running as a daemon. This means that idle detection for Apple Remote Desktop and screen sharing (VNC) under Mac OS 10.7 works only when not running BOINC as a daemon.
- VBOX: Cleanup a few messages stating port numbers in the stderr spew.
- VBOX: Send configuration settings in one message instead of piece meal.
- VBOX: It helps to remove the older send msg routines. Oooops.
- API: fix queueing problem for graphics-related messages (web graphics URL and remote desktop addr)
- GUI RPC and API: change "remote_desktop_connection" to "remote_desktop_addr" everywhere. It's an address, not a connection.
- vboxwrapper: log message cleanup
- MGR: Add RDP client support for Linux.
- MGR: Launch the RDP client on Windows in full-screen mode to avoid a bug where the screen doesn't refresh and keyboard/mouse events don't manifest until you close down the client and restart it.
- MGR: Add RDP client support for the Mac. I have found no reliable way to pass the IP address and port to Microsoft's Remote Desktop Connection application for the Mac, so I'm using CoRD. Unfortunately, CoRD does not seem to be as reliable as I would like either.
7.0.9 change log
The zip library was moved to a directory (project_depends) outside of BOINC, but the build files weren't made to work. Move the library back where it was before.
- GUI RPC: add <xml> tag to the start of HTTP replies.
- client: identify ATI 97x0 GPUs (from Jord)
- GUI RPC client: don't write spurious messages to stderr
- VBOX: Fix regression where the vm_name wasn't reset back to the current wu name after deregistering a stale VM.
- VBOX: Add User ID and Host ID to the CERN data format.
- MGR: Use rdesktop-vrdp on Linux, it is included with VirtualBox and meant for what we are trying to do.
- MGR: Remove the fullscreen flag on Windows. It might only be my machine which has refresh problems when launching in windowed mode.
- optimize strip_whitespace(); from Steffen Moller
- storage simulator: generalize so you can use different coding parameters at different levels
- storage simulator: compute fault tolerance correctly
- client, lib: Improve available GPU RAM detection, include it in display of GPU description.
- client: Add logging message for insufficient GPU RAM details to coproc_debug flag.
7.0.10 change log
- Mac: In permissions error alert: show branded name; if permissions error is in a subdirectory, show path to bad file or subdirectory.
- client: Save all CUDA and CAL GPU info until done with OpenCL detection so we have available GPU RAM for all OpenCL GPU descriptions
7.0.11 change log
VBOX: Fix a regression I introduced on Saturday, is_vm_registered shouldn't be called when vm_name is empty. Change it so that is references vm_master_name instead to get the correct name of the VM.
- VBOX: Fix the logic that scan for the CR character and removes it. Also fix the partial line inclusion when the various log files are greater than 16k. string.erase returns what the iterator value should be.
- lib: recent checkin broke strip_whitespace(string&).
- client: add debugging aids to coproc_detect logic.
- client: ATI available RAM is in bytes, not MB; if no CAL, don't divide OpenCL global_mem_size by MEGA to fill in ATI available RAM. |
|
|
MarkJ Volunteer moderator Volunteer tester Send message
Joined: 24 Dec 08 Posts: 738 Credit: 200,909,904 RAC: 0 Level
Scientific publications
|
7.0.12 change log
- VBOX: Fix another issue that was a result of Saturdays commit. Make sure that the vm_name variable is populated with something useful if resuming from a previous execution of the wrapper.
- VBOX: Use the documented way to reset the UUID of a virtual hard disk. Thanks Daniel.
- Manager: in project web links, use "Home Page" instead of the project name (which could be very long)
- client: parse HOST_INFO::p_vm_extensions_disabled correctly
- Mac installer: If installing under OS 10.4, create users and groups boinc_master and boinc_project at first available UserIDs and GroupIDs starting at 25 instead of 501 to prevent problems with Accounts pane of System Preferences.
- storage simulator work
-client: Show GPU number in "GPU is OpenCL-capable" message.
- OpenCL:
Problem: Mac OpenCL does not recognize all NVIDIA GPUs returned by CUDA. Since there is no CAL for Mac, this is not an issue for ATI / AMD GPUs. On other platforms, the CUDA and CAL drivers also provide OpenCL support, so we don't expect the problem there.
Solution: I believe that CUDA and OpenCL return identical GPU model names for the same GPU, and that both return the GPUs in the same order (but with some possibly omitted from the OpenCL sequence.) We use that information to correlate the OpenCL data with CUDA data. We use our internal CUDA device_num for the corresponding OpenCL device, but add a new field opencl_device_index; the two fields are equal unless we have CUDA devices not recognized by OpenCL. We add a new array opencl_device_indexes[] to the COPROC struct, corresponding to the entries in device_nums[]. The init_data.xml file now has a new field gpu_opencl_device_index. If this field exists, the boinc_get_opencl_ids() API uses this to find the cl_device_id and cl_platform_id, otherwise it continues to use the value in gpu_device_num.
- client: add a mechanism for restartable download of compressed files. (It turns out that the compression schemes supported by Apache and libcurl, suprisingly, aren't restartable.) if a <file_info> from the server contains <gzipped_url> tags, use those instead of the <url> tags, and flag the file as "download_gzipped". If this is the case, download NAME.gz and save it as NAME.gzt. When the download is complete, rename NAME.gzt to NAME.gz, and uncompress it to NAME.(this ensures that if NAME.gz is present, it's complete). Also do the uncompression, if needed, in verify_file(). This ensures that the uncompression will eventually get done even if the client quits or crashes in the middle.
- VBOX: Enable the wrapper to handle fractional CPU usage. If the server specifies 1.1 CPUs used, allocate 2 CPUs to be used in VirtualBox.
- sched: adjust the vbox??_mt plan classes to use 1.5 CPUs instead of the full 2 CPUs. Vboxwrapper uses ceil() to allocate enough whole CPUs for Virtualbox. Ideally this will cause the BOINC client-side scheduler to use the remaining fraction of the CPU for GPU data transfer which will then free up one whole CPU for another job. All without over-commiting anything.
- GUI RPC: switching to the new XML parser (which won't parse a double as an int) revealed a type mismatch in FILE_TRANSFER::next_request_time between client and server.
- client: fix divide-by-zero bug in calculation of priority of projects with zero resource share
- MGR: Tweak the z-order of BOINC Manager owned windows a little bit. Image a case where BOINC Manager and the BOINC Manager event log live side-by-side or only slightly overlapped, and the user wants to use a full screen/maximized window. If the bring the BOINC manager window back into focus while that app is still running make sure the event log comes forward as well. The event log should appear behind the main window in the case they are overlapped.
- client - Remove Mac OSX 10.3.9 hack, it is no longer needed.
- scheduler: initialize COPROC_ATI::version to zero; avoid sending spurious "update driver" messages
- Mac: If permissions error because unable to opendir() a subdirectory, show path to that subdirectory.
- VBOX: Demote the priority level of the VM process to try and prevent latency issues for volunteers.
- VBOX: If the port forwarding preferred port isn't usable, try asking the OS for one.
- VBOX: On a failure, get the VM process exit code and report it with the rest of the stderr spew.
- client: treat the gzt file extension like we do for the gz file extension. Disable libcurls ability to decompress on-the-fly and let the CC decompress it after it has been fully downloaded.
- client: when deleting a file, check for .gzt and .gz variants as well
- client: bug fixes in gzipped download code
- client: undo my previous commit. We request .gz from the server and write the contents to a .gzt file.
- VBOX: Fix build breaks for Linux and Mac.
- client: Fix long standing issue with the .gz extension automatically being decompressed on-the-fly when it wasn't supposed to be.
- VBOX: Fix compiler warnings on Mac.
- MGR: Make the task pane in the advanced view and its buttons fixed sizes; ellipse the button contents if needed; show full button text plus description in button tooltips; don't set button labels if unchanged.
- client: parse and write the compressed size (FILE_INFO::gzipped_nbytes). For get_transfer GUI RPCs, if it's a compressed download send the compressed size. That way the manager will show the fraction done correctly.
- client: disable temporary debugging aids in coproc_detect logic.
- client: fix write of gzipped_nbytes |
|
|
MarkJ Volunteer moderator Volunteer tester Send message
Joined: 24 Dec 08 Posts: 738 Credit: 200,909,904 RAC: 0 Level
Scientific publications
|
7.0.12 change log
- VBOX: Fix another issue that was a result of Saturdays commit. Make sure that the vm_name variable is populated with something useful if resuming from a previous execution of the wrapper.
- VBOX: Use the documented way to reset the UUID of a virtual hard disk. Thanks Daniel.
- Manager: in project web links, use "Home Page" instead of the project name (which could be very long)
- client: parse HOST_INFO::p_vm_extensions_disabled correctly
- Mac installer: If installing under OS 10.4, create users and groups boinc_master and boinc_project at first available UserIDs and GroupIDs starting at 25 instead of 501 to prevent problems with Accounts pane of System Preferences.
- storage simulator work
-client: Show GPU number in "GPU is OpenCL-capable" message.
- OpenCL:
Problem: Mac OpenCL does not recognize all NVIDIA GPUs returned by CUDA. Since there is no CAL for Mac, this is not an issue for ATI / AMD GPUs. On other platforms, the CUDA and CAL drivers also provide OpenCL support, so we don't expect the problem there.
Solution: I believe that CUDA and OpenCL return identical GPU model names for the same GPU, and that both return the GPUs in the same order (but with some possibly omitted from the OpenCL sequence.) We use that information to correlate the OpenCL data with CUDA data. We use our internal CUDA device_num for the corresponding OpenCL device, but add a new field opencl_device_index; the two fields are equal unless we have CUDA devices not recognized by OpenCL. We add a new array opencl_device_indexes[] to the COPROC struct, corresponding to the entries in device_nums[]. The init_data.xml file now has a new field gpu_opencl_device_index. If this field exists, the boinc_get_opencl_ids() API uses this to find the cl_device_id and cl_platform_id, otherwise it continues to use the value in gpu_device_num.
- client: add a mechanism for restartable download of compressed files. (It turns out that the compression schemes supported by Apache and libcurl, suprisingly, aren't restartable.) if a <file_info> from the server contains <gzipped_url> tags, use those instead of the <url> tags, and flag the file as "download_gzipped". If this is the case, download NAME.gz and save it as NAME.gzt. When the download is complete, rename NAME.gzt to NAME.gz, and uncompress it to NAME.(this ensures that if NAME.gz is present, it's complete). Also do the uncompression, if needed, in verify_file(). This ensures that the uncompression will eventually get done even if the client quits or crashes in the middle.
- VBOX: Enable the wrapper to handle fractional CPU usage. If the server specifies 1.1 CPUs used, allocate 2 CPUs to be used in VirtualBox.
- sched: adjust the vbox??_mt plan classes to use 1.5 CPUs instead of the full 2 CPUs. Vboxwrapper uses ceil() to allocate enough whole CPUs for Virtualbox. Ideally this will cause the BOINC client-side scheduler to use the remaining fraction of the CPU for GPU data transfer which will then free up one whole CPU for another job. All without over-commiting anything.
- GUI RPC: switching to the new XML parser (which won't parse a double as an int) revealed a type mismatch in FILE_TRANSFER::next_request_time between client and server.
- client: fix divide-by-zero bug in calculation of priority of projects with zero resource share
- MGR: Tweak the z-order of BOINC Manager owned windows a little bit. Image a case where BOINC Manager and the BOINC Manager event log live side-by-side or only slightly overlapped, and the user wants to use a full screen/maximized window. If the bring the BOINC manager window back into focus while that app is still running make sure the event log comes forward as well. The event log should appear behind the main window in the case they are overlapped.
- client - Remove Mac OSX 10.3.9 hack, it is no longer needed.
- scheduler: initialize COPROC_ATI::version to zero; avoid sending spurious "update driver" messages
- Mac: If permissions error because unable to opendir() a subdirectory, show path to that subdirectory.
- VBOX: Demote the priority level of the VM process to try and prevent latency issues for volunteers.
- VBOX: If the port forwarding preferred port isn't usable, try asking the OS for one.
- VBOX: On a failure, get the VM process exit code and report it with the rest of the stderr spew.
- client: treat the gzt file extension like we do for the gz file extension. Disable libcurls ability to decompress on-the-fly and let the CC decompress it after it has been fully downloaded.
- client: when deleting a file, check for .gzt and .gz variants as well
- client: bug fixes in gzipped download code
- client: undo my previous commit. We request .gz from the server and write the contents to a .gzt file.
- VBOX: Fix build breaks for Linux and Mac.
- client: Fix long standing issue with the .gz extension automatically being decompressed on-the-fly when it wasn't supposed to be.
- VBOX: Fix compiler warnings on Mac.
- MGR: Make the task pane in the advanced view and its buttons fixed sizes; ellipse the button contents if needed; show full button text plus description in button tooltips; don't set button labels if unchanged.
- client: parse and write the compressed size (FILE_INFO::gzipped_nbytes). For get_transfer GUI RPCs, if it's a compressed download send the compressed size. That way the manager will show the fraction done correctly.
- client: disable temporary debugging aids in coproc_detect logic.
- client: fix write of gzipped_nbytes |
|
|
MarkJ Volunteer moderator Volunteer tester Send message
Joined: 24 Dec 08 Posts: 738 Credit: 200,909,904 RAC: 0 Level
Scientific publications
|
7.0.13 change log
- client: after a gzipped file is downloaded, we uncompress it and then verify it. The latter involves computing its MD5, which reads the entire file. Combine these 2 steps so that the MD5 is computed as the file is uncompressed, eliminating the need to read the file again.
- Mac: Update the build instructions with the current URL for c-ares-1.7.4.
- MGR: If CPU or GPU is suspended from Activity Menu, change "Snooze" items to "Resume" in system tray menu.
- client: Always remember previous CPU and GPU activity settings.
- manager: in Disk View, try to make colors more distinct. In addition to varying the hue, cycle through 3 different luminance values (.5, .7, .9)
- manager: in tooltips for Project/Task buttons, don't prepend "button name: "; add a tooltip for Home Page button.
- MGR: Disable new "Resume" items in system tray menu if modal dialog is open.
- screensaver coordinator: use new XML parser
- client: because available GPU RAM value is unreliable, don't defer scheduling a task based on insufficient GPU RAM. For now, the relevant code is guarded by a "#define DEFER_ON_GPU_AVAIL_RAM 0" so we can easily restore it if we find a reliable way to get the value of available GPU RAM periodically. NOTE: we are still sending this unreliable value to project servers in the sched_request file. Does it make sense to do so?
- manager: change text for buffer-size fields in advanced prefs dialog
- scheduler: parse d_project_share
- scheduler: if vbox and vbox_mt are both available, use vbox for a 1-CPU machine
7.0.14 change log
- client: fix job scheduler problem:
old: RR simulation marks some jobs as missing their deadline, and the job scheduler runs those jobs as "high priority". problem: those generally aren't the ones we should run. E.g. if the client has a lot of jobs from a project, typically the ones with later deadlines are the ones whose deadlines are missed in the simulation. But in this case the EDF policy says we should run the ones with earliest deadlines.
new: if a project has N deadline misses, run its N earliest-deadline jobs, regardless of whether they missed their deadline in the sim. Note: this is how it used to be (as designed by John McLeod). I attempted to improve it, and got it wrong.
- MGR: Fix cookie detection problem when using the IEGetProtectedModeCookie API. Function prototype changed from the InternetGetCookieEx function. HRESULT != BOOL. |
|
|
MarkJ Volunteer moderator Volunteer tester Send message
Joined: 24 Dec 08 Posts: 738 Credit: 200,909,904 RAC: 0 Level
Scientific publications
|
7.0.15 change log
- client: first pass at async file copy feature. When a large file is copied from a project dir to a slot dir, it's copied in chunks, interleaved with other polling activities such as GUI RPCs. That way the manager doesn't freeze while large copies (e.g. VM images) are happening
- client: add async file copy stuff to Windows project file.
- client: debug async file copy. Seems to be working.
- client: add async file copy stuff to Xcode project.
- SCR: Fix Xcode editor problems from recent screensaver.cpp changes.
- client: intermediate checkin for async file verification
- client: Fix compiler warning generated by above checkin.
- client: Undo my change of 24 Jan 2012 which broke WCG's use of the .gzb file extension. I was wrong in how I read the conditional and it turns out that libcurl does not attempt to honor the content-encoding if it was disabled as part of the request. My bad.
- client: tweaks to AMD GPU detection msgs
- client: async file stuff. sync decompress/verify seems to be working
- client: remove "GPU n is OpenCL-capable" messages. They were redundant with new OPENCL_DEVICE_PROP::description() and were confusing because they only listed the "best" CUDA / CAL GPUs.
- client: HTTP range request errors are permanent.
- Client: set threshold at 10 MB for doing things asynchronously. Don't count VERIFY_PENDING as failure
- client: Fix bug in setting opencl_device_index.
- client/Manager/GUI RPC: clean up RPC stuff involving resource-specific backoff and exclusion
Old: client writes <rsc_backoff_time><rsc_backoff_interval><no_rsc_ams><no_rsc_apps><no_rsc_pref>in GUI RPC entries for projects. Manager (GUI RPC client): PROJECT struct has cpu_backoff_time cpu_backoff_interval... cuda, ati no_cpu_pref... cuda, ati and it parses tags of these names. In other words, no information is being conveyed from client to Manager.
New: manager parses both forms
- client: fix bug in async file verify. File verify is done in 4 places: after a download finishes transition result to DOWNLOADED
if project->verify_files_on_app_start, on app start Use asynchrony only in the first 2 cases, since the async logic is set up to mark the file as PRESENT when done, not to restart a task
- VBOX: Remove the renaming of the vm disk image code. It isn't needed and it complicates things in the CC.
- client: bug fix for async file ops: set up files in slot dir when starting an app, whether or not it's the first time
- client: on startup, check file size as well as existence
- client: add <async_file_debug> log flag
- client: do decompress (both sync and async) to a temp file, then rename
- client: if a file's status is VERIFY_PENDING on startup, set it to NOT_PRESENT; that will trigger a verify
- client: do async copy only if size is above threshold
- client: fixed a bug in procinfo_app() that would cause processes to be treated as non-BOINC when they actually are, thus falsely triggering CPU-busy suspensions
- client: only check file size if the FILE_INFO specifies it.
- scheduler: don't send "update GPU driver" messages if the client didn't report a driver version # |
|
|
MarkJ Volunteer moderator Volunteer tester Send message
Joined: 24 Dec 08 Posts: 738 Credit: 200,909,904 RAC: 0 Level
Scientific publications
|
7.0.16 change log
- client (Unix): don't print misleading "task exited with no finish file" message if task actually called boinc_temporary_exit().
- storage stuff
- client: If OpenCL but no CAL or no CUDA, copy GPU model name from OpenCL so it will apppear in the host table's serialnum attributes (requested by Oliver Bock.)
- MGR: Fix a bug which pushed modal dialogs (Attach Wizard) to rear when Manager process was brought to front from behind (Mac only.) This bug was probably introduced in Z-order tweak of 23 Jan 2012.
- client: zero PROJECT::last_upload_start on reset, so that we can fetch work immediately
- client: in PERS_FILE_XFER::create_xfer(), check for already-existing file before seeing we're allowed to start a new xfer
- client: in PERS_FILE_XFER::create_xfer(), if an async verify is in progress, mark PERS_FILE_XFER as done.
- client: message tweak
- MGR: Fix bad <organization_help_url> in Progress Through Processor's skin files provided by Matt Blumberg on 9 December 2011.
- client: Try to fix incorrect NVIDIA device number in OpenCL descriptions.
- MGR: Update <organization_*> tags in 3 branded skins (GR, PtP, CE) to new values from Matt Blumberg.
- Mac sandbox: In initial permissions check when launching Manager or Client, don't check project-created subdirectories under project or slot directories because we have not told projects these must be readable and executable by group.
- API: Remove apparently unnecessary include of carbon.h (requested by Bernd Machenschalk.)
- client: instead of saying "comm deferred", say "project backoff XXX.XX".
- client: more tweaks to work-fetch messages
- lib: change get_mac_address() to avoid sprintf(buf, "%s...", buf); use strcat instead
- client: don't use get_mac_address() to create host CPIDs (we have plenty of other info to make them unique)
- client: fetch work from backup (zero resource share) projects only if a device instance is idle
- client: Remove some temporary debugging code. small code shuffle
- client: Always use GPU model name from OpenCL if available for ATI / AMD GPUs because (we believe) it is more reliable and user-friendly.
- client: fix bug where WCG downloads were getting wrong size errors. To be honest, I don't know that the problem was or why my change fixed it.
- client: Prevent an unlikely but possible crash.
- MGR: Fix a Mac-only bug which showed Event Log if About BOINC is selected from task bar menu when BOINC is hidden.
7.0.17 change log
- Mac: Fix back trace to work under OS > 10.5.(Checked in to boinc_core_release_7_0_16 tag)
- client: Fix OpenCL NVIDIA GPU detection when CUDA is not present.
- client: tweak to work-fetch policy: if we're making a scheduler RPC to a project for reasons other than work fetch, and we're deciding whether to ask for work, ignore hysteresis; i.e. ask for work even if we're above the min buffer (idea from John McLeod).
- client: fix bug in notices where, after a notice is deleted, the notices tab refreshes once/second forever after |
|
|
MarkJ Volunteer moderator Volunteer tester Send message
Joined: 24 Dec 08 Posts: 738 Credit: 200,909,904 RAC: 0 Level
Scientific publications
|
7.0.18 change log
- client: message tweaks
- Manager/Client: fix bugs in GUI RPC that prevented updates to proxy info from being saved by client
- Manager: compile fix
- client: define a "arrived-first" order on results in which the tiebreaker is MD5 of name. That way the order is stable (it doesn't change from one run of the client to the next) and it doesn't grep results with similar names (and hence for the same app). This ordering is used for 1) the order of display in the manager 2) the job scheduler's notion of FIFO
- client: Fix OpenCL NVIDIA GPU enumeration bug I introduced with last checkin. |
|
|
MarkJ Volunteer moderator Volunteer tester Send message
Joined: 24 Dec 08 Posts: 738 Credit: 200,909,904 RAC: 0 Level
Scientific publications
|
7.0.19 change log
- Mac installer: Update copyright notice from 2009 to 2012.
- storage stuff
- Vbox: Include date component in log messages to ease debugging long running VM tasks.
- client: change the job scheduling policy for MT jobs. The old policy avoided running an N-CPU job unless N CPUs were free. This could result in idle CPUs for long periods; for example: on a 4-CPU machine, suppose you have a long 1-CPU job in EDF mode, and some 4-CPU jobs. 3 CPUs will be idle until the 1-CPU job finishes. Furthermore, the work fetch mechanism won't try to get jobs (possibly non-MT) from other projects, because the RR simulation doesn't reflect the scheduling policy's exclusion principle. The change: schedule jobs until ncpus_used >= ncpus. E.g. in the above situation run the 1- and 4-CPU jobs together. In extreme cases we might run 3 1-CPU jobs and the 4-CPU job. This will degrade the performance of the 4-CPU job, but that's probably better than having idle CPUs.
- API, client, and Manager: add an optional "reason" argument to boinc_temporary_exit(), explaining why the app is exiting. Convey this to the client, and then to the Manager, and display it there and in the log.
- client: fix an instance of sprintf(buf, "%s...", buf) on Unix
- API: fix compile error on Mac.
- client: When available, use total RAM value from CAL for all ATI OpenCL GPUs, not only for the "best" GPU, so the descriptions show this value.
- MGR: Update <organization_help_url> in Progress Through Processor's skin file again as requested by Matt Blumberg on 17 February 2012.
- Mac installer: Create RealName field for users boinc_master and boinc_project and set it to empty string (following new advice from Apple Developer technical Suport.)
- MGR: Rename the "Remaining" column to "Remaining (Estimated)" in the Advanced GUI/Work view.
- client: amend checkin of 18 Feb to not request work if work buffer is above upper limit
- client, web: change default prefs to min_buf=.1 days, max_buf=.5 days
- MGR: Change strings in Simple View to match changes in Advanced View: "Remaining" -> "Remaining (Estimated)", "Home page" instead of project name in web links.
- client: On Mac only, get ATI RAM sizes from OpenGL.
- VBOX: Implement an exponential backoff scheme of sleeping between commands if a session lock error has been detected. Cap the overall delay to 30 seconds total for a single command. Experiments performed by jujube(T4T) suggest changing the sleep interval to an exponential style backoff would increase our chances of recovering in situations where the previous lock is held by a previous instance of vboxmanage whos instance data hasn't been cleaned up within vboxsvc yet.
- client: fix crashing bug when there is 1 instance of a resources. I'm not sure how this every worked.
7.0.20 change log
- Mac installer: Utility shell script creates users & groups boinc_master and boinc_project with IDs at 501 or above; also creates RealName field for users boinc_master and boinc_project and sets it to empty string (following advice from Apple Developer technical Suport.)
- Manager: small code cleanup
- Manager: in Project Properties page, show if a GPU type is excluded by configuration
- client: don't fetch work for a resource type if all instances of that type are excluded |
|
|
MarkJ Volunteer moderator Volunteer tester Send message
Joined: 24 Dec 08 Posts: 738 Credit: 200,909,904 RAC: 0 Level
Scientific publications
|
7.0.21 change log
- API: fix various bugs related to process control and critical sections.
- VBOX: Parse the vboxmanage error code for *nix as well.
- VBOX: Switch to using status.suspend_request instead of status.suspend when determining when to suspend/resume a VM. status.suspended is now only changed when direct_process_action is set to true.
- API: remove BOINC_STATUS::suspend_request; it's an implementation thing, not intended for export. Fix a related bug.
- VBOX: Setting the CPU Execution Cap should be done with the controlvm command after the VM has entered a running state instead of using modifyvm.
- VBOX: Allow the CPU execution cap to be set back to 100% after it had alreadly been set lower.
- VBOX: Only attempt to reset throttle values if the VM is in a running state, otherwise controlvm throws an error.
- VBOX: If a VM fails to start because the machine is low on memory, temporarily exit so BOINC can reschedule it for a later time. If the problem doesn't go away it'll just time out eventually anyway.
- client: msg tweak and fix compile warnings
- client: fix compile errors.
- client: In COPROCS::get_ati_mem_size_from_opengl() on Mac, compare ATI model names from OpenGL with those from IOKit only if coproc_debug flag is set.
- VBOX: Fix typo in Mac wrapper name (1686 -> i686).
- MGR: fix French translations of Remaining (estimated).
- client: When comparing ATI model names from OpenCL and IOKit on a Mac, substitute "AMD" for "ATI" because sometimes one API returns "ATI" but the other API returns "AMD".
- VBOX: Use the boinc_temporary_exit API properly. Wait for 5 minutes before allowing another attempt to start the VM when the hypervisor cannot allocate enough memory.
- VBOX: Print out a trace statement about the suspend/resume directive from the vboxwrapper perspective. This in conjuction with the BOINC API trace statements should provide a better idea with what is going on.
- client: On Mac only, update ATI available RAM after getting ATI total RAM size from OpenGL.
- client: on each scheduler RPC, make sure that files flagged as executable in the reply, and that are present, are actually executable.
- client: when killing a task, don't delete its shmem or change its state. These mess up the logic for dealing with exited processes, resulting in incorrect log messages.
- VBOX: Give the VM process a short priority boost when responding to a quit request. On older XP machines it might speed up the memory dump to disk.
- client: Increase the quit request timeout from 10 seconds to 60 seconds for machines running VMs and slow disk drives. It should give the VM enough time to gracefully shutdown and not give boinc reason to kill the wrapper. |
|
|
MarkJ Volunteer moderator Volunteer tester Send message
Joined: 24 Dec 08 Posts: 738 Credit: 200,909,904 RAC: 0 Level
Scientific publications
|
7.0.22 change log
- client: use %g to format job resources (#CPUs, #GPUs). This suppresses trailing zeroes and (if integer) the . (decimal point)
- client: changes to job scheduling policy: fix bug that could greatly overcommit CPUs if there are several EDF jobs and several non-EDF GPU jobs don't overcommit CPUs if any job is MT (MT means avg_ncpus > 1).
For example, on a 4-CPU machine we will run: a 0.5-CPU GPU job and 4 1-CPU jobs but not a 0.5-CPU GPU job and 1 4-CPU job
- MGR: Fix a Mac-only bug which sometimes failed to show the snooze icon after closing and opening the Manager windows. This was caused by having a second instance of CTaskBarIcon
Warning
This version contains a severe bug that does not allow GPU work to run when other (CPU) tasks are running in high priority. Run at your own risk only. v7.0.23 may have a fix. |
|
|
MarkJ Volunteer moderator Volunteer tester Send message
Joined: 24 Dec 08 Posts: 738 Credit: 200,909,904 RAC: 0 Level
Scientific publications
|
7.0.23 change log
- client: small changes to make client compile on Android, and to report the platform as "arm-android". From Carl Christensen.
- client: job scheduling policy tweak: if CPUs are fully committed (e.g. with EDF jobs) allow GPU jobs but only up to CPU usage of ncpus+1
- client: Don't include VBox executive processes as non-BOINC CPU time. On some systems they use significant CPU time while VMs are running. TODO: do this only if we're actually running a VBox app
- client: if an app process exits because of a signal, don't show the "no finish file" message; not sure why this was there in the first place.
- client: if an app process exits because of a signal, show the signal correctly
- client: report completed results if a time-of-day network suspend is scheduled within the next 30 minutes
- client: Initialize buffer which is used to hold the temporary exit reason. If somebody didn't populate the reason when calling boinc_temporary_exit the buffer contained junk.
- client: set file ownership and permissions after an async verify. This was presumably the cause of the recent Einstein@home problem.
- client: set file ownership and permissions after an async copy.
- client: set file ownership and permissions after a regular (non-async) copy. The latter 2 bugs would affect a VM app that copies its executable to slot/x/shared
- client: change timeout for job quit/abort from 60 back to 15 (time between sending app a quit/abort message and, if not exited yet, killing it)
- client: if app has reported an "other PID" (e.g., vboxwrapper reports the VBoxHeadless PID) then include it (along with descendants) in the list of processes we kill when killing the job. |
|
|
MarkJ Volunteer moderator Volunteer tester Send message
Joined: 24 Dec 08 Posts: 738 Credit: 200,909,904 RAC: 0 Level
Scientific publications
|
7.0.24 change log
- client/server: add optional <dont_use_dcf/> to schedule reply. If set, client won't use DCF for this project. Make this the default in server code; we now do runtime estimation entirely on the server side, and the client-side mechanism is counterproductive.
- client: if a job calls boinc_temporary_exit() 100 times, abort it. Otherwise it could keep doing it forever (e.g. if there's not ever enough available GPU RAM)
- client/server: estimate FLOPS for NVIDIA GPUs with compute capability 3.x. Not sure if the parameters are right (128 cores/proc, 2 flops/clock) but they're better than nothing.
- compile fix for redhat, from Steffen Moller
- client: report results if CPU suspend pending in next 30 min
- client: set PROJECT::last_upload_start whenever an upload starts, not just when a result becomes ready to upload. Fix bug where a scheduler RPC to report results is done even though uploads are active.
- client: cpu_sched_debug enables messages about not scheduling jobs because of insufficient RAM
- client/server: set cores/proc for NVIDIA compute capability 3.0 to 192 Why can't NVIDIA provide an API for this?????
- client: fix typo that prevented GPU jobs from running if CPUs were filled with EDF jobs
- client: fix bug where if we sent app a <quit> message, and it timed out and we killed it, we'd treat it as a job error. (This was a major bug).
- API: remove BOINC_STATUS::suspend_request. I meant to do this before.
- client: fix bug in reading reason for temporary exit
- lib: fix a valgrind warning
- client/scheduler: fix error in NVIDIA peak flops calculation
- Mac installer: When checking for duplicate group membership entries, count only whole words (preceded and followed by white space) so that if we have both 'jon' and 'jones' we don't count 'jon' twice.
- Mac uninstaller: Use Directory Services to find the user names of all human users instead of stepping through the entries in the /Users directory.
- client: Fix idle detection during fast user switching. See comments in HOST_INFO::users_idle() for details.
____________
BOINC blog |
|
|
MarkJ Volunteer moderator Volunteer tester Send message
Joined: 24 Dec 08 Posts: 738 Credit: 200,909,904 RAC: 0 Level
Scientific publications
|
7.0.25 change log
- MGR: Revert my changes of 18 March to Mac Task Bar Icon because the second instance is needed to handle our Dock menu. Fix the earlier problem of losing the suspended icon by ensuring that we always call the same instance of CTaskBarIcon::SetIcon().
It is there for all platforms, even though the above change is a Mac only one. I guess they wanted us all to start at the same version number.
They are expecting to make this one the release version. Apparently they are just updating documentation to match it. |
|
|
mikeySend message
Joined: 2 Jan 09 Posts: 297 Credit: 6,145,850,438 RAC: 30,110,083 Level
Scientific publications
|
7.0.25 change log
- MGR: Revert my changes of 18 March to Mac Task Bar Icon because the second instance is needed to handle our Dock menu. Fix the earlier problem of losing the suspended icon by ensuring that we always call the same instance of CTaskBarIcon::SetIcon().
It is there for all platforms, even though the above change is a Mac only one. I guess they wanted us all to start at the same version number.
They are expecting to make this one the release version. Apparently they are just updating documentation to match it.
I looked and it is not yet on the list of avilable downloads, maybe it is too early yet. |
|
|
skgivenVolunteer moderator Volunteer tester
Send message
Joined: 23 Apr 09 Posts: 3968 Credit: 1,995,359,260 RAC: 0 Level
Scientific publications
|
It's there now. I suggest anyone using a previous 7.x client move to 7.0.25.
- 7.0.28 is the recommended client as of July 2012. 7.0.31 is for Alpha testers only (as in don't use it).
____________
FAQ's
HOW TO:
- Opt out of Beta Tests
- Ask for Help |
|
|