David 1 Jan 2012 - remote job stuff html/ inc/ sandbox.inc user/ lammps.php submit.php Rom 1 Jan 2012 - OPS: Update failure_result_summary_by_platform.php to include plan class information. - OPS: Update error code translation table html/inc result.inc html/ops failure_result_summary_by_platform.php David 2 Jan 2012 - ops: fix link in index page html/ ops/ index.php user/ sandbox.php Rom 2 Jan 2012 - 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. samples/vboxwrapper/ vbox.cpp, .h vboxwrapper.cpp David 2 Jan 2012 - 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 log flag - create_work: add --help, show --command_line option tools/ create_work.cpp html/ inc/ util.inc user/ sandbox.php lib/ cc_config.cpp,h client/ client_types.h client_state.h cs_prefs.cpp cs_scheduler.cpp cpu_sched.cpp David 2 Jan 2012 - upgrade script: - prompt user for DB user/passwd if DB updates needed - error out immediately if any DB update fails Fixes #1169, #1170 - create_work: check for duplicate s in input template NOTE: the input template syntax is pretty clunky tools/ process_input_template.cpp html/ ops/ upgrade_db.php inc/ util_ops.inc Rom 2 Jan 2012 - 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. samples/vboxwrapper/ vbox.cpp, .h David 3 Jan 2012 - remote job submission: show input file links - ops: fix message: app.min_version applies to HR app versions, not client version html/ ops/ manage_apps.php user/ submit.php sandbox.php David 3 Jan 2012 - LAMMPS html/user/ lammps.php David 3 Jan 2012 - client: calculate disk share for zero-priority projects correctly client/ cs_prefs.cpp Rom 3 Jan 2012 - 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. client/ coproc_detect.cpp Rom 3 Jan 2012 - 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. samples/vboxwrapper/ vbox.cpp, .h vboxwrapper.cpp Rom 3 Jan 2012 - 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. samples/vboxwrapper/ vboxwrapper.cpp Rom 4 Jan 2012 - 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. samples/vboxwrapper/ vbox.cpp, .h vboxwrapper.cpp Rom 4 Jan 2012 - 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. samples/vboxwrapper/ vbox.cpp Rom 4 Jan 2012 - 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. samples/vboxwrapper/ vbox.cpp Rom 5 Jan 2012 - VBOX: Extract the various logs before attempting to cleanup if the registration process fails. samples/vboxwrapper/ vboxwrapper.cpp David 5 Jan 2012 - GUI RPC: use new XML parser lib/ gui_rpc_client_ops.cpp Charlie 5 Jan 2012 - client: Restore scaling factor for AMD OpenCL devices on Macs with OpenCL version < 1.2. client/ coproc_detect.cpp Charlie 6 Jan 2012 - Mac Installer: Changes for integrated BOINC+VirtualBox Mac installer. clientgui/ mac/ SetVersion.cpp mac_installer/ Description.plist Installer.cpp release_boinc.sh Rom 6 Jan 2012 - 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. clientgui/ BOINCBaseView.cpp, .h ViewNotices.cpp ViewResources.cpp ViewStatistics.cpp lib/ gui_rpc_client_ops.cpp Rom 6 Jan 2012 - VBOX: Use sscanf instead of strtol to convert a hex string. - VBOX: Use new FloppyIO implementation that reports image creation errors. samples/vboxwrapper/ floppyio.cpp, .h vbox.cpp David 6 Jan 2012 - manager: parse message contents with XML_PARSER::element_content(). lib/ gui_rpc_client_ops.cpp David 6 Jan 2012 - validator: for credit_from_runtime, use result.flops_estimate rather than host.p_fpops; otherwise it doesn't work for multicore apps. TODO: cheat-proofing sched/ validator.cpp html/user/ forum_thread.php Rom 6 Jan 2012 - MGR: Derive from the correct base class to make the sizers work properly. clientgui/ BOINCBaseView.cpp, .h ViewNotices.cpp ViewResources.cpp Rom 7 Jan 2012 - VBOX: Sleep for the remainder of the polling period and not the whole poll period. samples/vboxwrapper/ vbox.cpp, .h vboxwrapper.cpp, .h David 7 Jan 2012 - 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). db/ boinc_db.h sched/ sched_types.h sched_customize.cpp validator.cpp Rom 8 Jan 2012 - 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. samples/vboxwrapper/ vboxwrapper.cpp David 8 Jan 2012 - scheduler: change vbox_mt plan function to use at most 2 cores, not 3 (CERN doesn't actually need 3) sched/ sched_customize.cpp David 8 Jan 2012 - client: reset ACTIVE_TASK::bytes_sent and bytes_received when the task is started or restarted client/ app_start.cpp Charlie 9 Jan 2012 - 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. client/ coproc_detect.cpp Rom 9 Jan 2012 - VBOX: Fix one last regression related to failed start detection. If only one CPU is allocated, manually disable VM hardware acceleration. samples/vboxwrapper/ vbox.cpp David 9 Jan 2012 - 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. db/ boinc_db.cpp,h sched/ census.cpp sched_types.cpp,h sched_shmem.cpp,h sched_util.cpp,h sched_customize.cpp feeder.cpp sched_version.cpp hr_info.cpp,h Charlie 10 Jan 2012 - 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. client/ hostinfo_unix.cpp David 10 Jan 2012 - first stab at improving Disk View colors clientgui/ ViewResources.cpp Charlie 11 Jan 2012 - Mgr: When launching Mac client as a daemon, allow time for it to start. clientgui/ BOINCClientManager.cpp David 11 Jan 2012 - vboxwrapper: add element to config file. Specifies host port # for port forwarding. If absent or zero, assign a port. samples/vboxwrapper vbox.cpp,h floppyio.cpp,h vboxwrapper.cpp David 11 Jan 2012 - API: respect direct_process_action even if multi_process is set api/ boinc_api.cpp David 12 Jan 2012 - LAMMPS job submission: improve completion estimate html/ inc/ boinc_db.inc user/ lammps.php Rom 12 Jan 2012 - VBOX: Enable remote desktop functionality for a VM that has 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. samples/vboxwrapper vbox.cpp, .h vboxwrapper.cpp, .h Rom 12 Jan 2012 - 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. api/ boinc_api.cpp, .h samples/vboxwrapper vbox.cpp, .h vboxwrapper.cpp, .h Rom 12 Jan 2012 - 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. client/ app.cpp, .h app_control.cpp clientgui/ Events.h MainDocument.cpp, .h ViewWork.cpp, .h lib/ gui_rpc_client.h gui_rpc_client_ops.cpp Rom 12 Jan 2012 - VBOX: Make sure the configured port numbers persist across restarts of the client software. Remote desktop stopped working if the client software was restarted. samples/vboxwrapper vboxwrapper.cpp Charlie 13 Jan 2012 - 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. client/ hostinfo_unix.cpp Rom 13 Jan 2012 - VBOX: Cleanup a few messages stating port numbers in the stderr spew. - VBOX: Send configuration settings in one message instead of piece meal. api/ boinc_api.cpp, .h samples/vboxwrapper vboxwrapper.cpp Rom 13 Jan 2012 - VBOX: It helps to remove the older send msg routines. Oooops. samples/vboxwrapper vboxwrapper.cpp David 13 Jan 2012 - 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 api/ boinc_api.cpp,h client/ app.cpp,h app_control.cpp lib/ gui_rpc_client_ops.cpp gui_rpc_client.h app_ipc.cpp,h samples/ vboxwrapper.cpp Rom 13 Jan 2012 - MGR: Add RDP client support for Linux. clientgui/ MainDocument.cpp David 13 Jan 2012 - file deleter: improved logging; from Oliver sched/ file_deleter.cpp Rom 13 Jan 2012 - 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. clientgui/ MainDocument.cpp Charlie 13 Jan 2012 - 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. clientgui/ MainDocument.cpp Rom 13 Jan 2012 NOTE: Some previously experimental features in the client software are now important to have for the 7.0 release. The existing 7.0 branch will no longer be maintained, we'll create a new branch for the 7.0 client line at a later date. - Tag for 7.0.8 release, all platforms boinc_core_release_7_0_8 / configure.ac version.h David 13 Jan 2012 - 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. configure.ac Makefile.am zip/* David 13 Jan 2012 - GUI RPC: add tag to the start of HTTP replies. client/ gui_rpc_server_ops.cpp David 14 Jan 2012 - client: identify ATI 97x0 GPUs (from Jord) client/ coproc_detect.cpp David 14 Jan 2012 - GUI RPC client: don't write spurious messages to stderr lib/ gui_rpc_client_ops.cpp Rom 14 Jan 2012 - VBOX: Fix regression where the vm_name wasn't reset back to the current wu name after deregistering a stale VM. samples/vboxwrapper vbox.cpp, .h vboxwrapper.cpp Rom 15 Jan 2012 - VBOX: Add User ID and Host ID to the CERN data format. samples/vboxwrapper vboxwrapper.cpp Rom 15 Jan 2012 - 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. clientgui/ MainDocument.cpp David 15 Jan 2012 - optimize strip_whitespace(); from Steffen Moller - storage simulator: generalize so you can use different coding parameters at different levels lib/ str_util.cpp ssim/ ssim.cpp David 15 Jan 2012 - storage simulator: compute fault tolerance correctly ssim/ ssim.cpp Charlie 16 Jan 2012 - client, lib: Improve available GPU RAM detection, include it in display of GPU description. client/ coproc_detect.cpp lib/ coproc.cpp,.h Charlie 16 Jan 2012 - client: Add logging message for insufficient GPU RAM details to coproc_debug flag. client/ cpu_sched.cpp Rom 16 Jan 2012 - Tag for 7.0.9 release, all platforms boinc_core_release_7_0_9 / configure.ac version.h Charlie 17 Jan 2012 - Mac: In permissions error alert: show branded name; if permissions error is in a subdirectory, show path to bad file or subdirectory. client/ check_security.cpp sandbox.h clientgui/ BOINCGUIApp.cpp mac_installer/ PosInstall.cpp Charlie 17 Jan 2012 - client: Save all CUDA and CAL GPU info until done with OpenCL detection so we have available GPU RAM for all OpenCL GPU descriptions. client/ coproc_detect.cpp Charlie 17 Jan 2012 - Tag for 7.0.10 release, all platforms boinc_core_release_7_0_10 / configure.ac version.h Rom 17 Jan 2012 - 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. samples/vboxwrapper vbox.cpp David 17 Jan 2012 - storage simulator work - lib: recent checkin broke strip_whitespace(string&). ssim/ ssim.cpp plot ssim.php lib/ str_util.cpp David 18 Jan 2012 - web: link between LAMMPS job submission page and file sandbox page html/user/ lammps.php sandbox.php Charlie 18 Jan 2012 - client: add debugging aids to coproc_detect logic. client/ coproc_detect.cpp Charlie 18 Jan 2012 - Tag for 7.0.11 release, all platforms boinc_core_release_7_0_11 / configure.ac version.h Charlie 18 Jan 2012 - 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. (Checked in to 7.0.11 tag.) client/ coproc_detect.cpp Rom 18 Jan 2012 - 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. samples/vboxwrapper vbox.cpp David 18 Jan 2012 - WAP interface to credit info: return correct timestamp, and don't bother with caching. html/ inc/ wap.inc user/ userw.php Rom 18 Jan 2012 - VBOX: Use the documented way to reset the UUID of a virtual hard disk. Thanks Daniel. samples/vboxwrapper vbox.cpp David 18 Jan 2012 - Manager: in project web links, use "Home Page" instead of the project name (which could be very long) clientgui/ BOINCBaseView.cpp David 19 Jan 2012 - client: parse HOST_INFO::p_vm_extensions_disabled correctly lib/ hostinfo.cpp proxy_info.cpp gui_rpc_client_ops.cpp coproc.cpp version.h ssim/ ssim.php Charlie 19 Jan 2012 - 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. clientgui/ mac/ SetupSecurity.cpp David 19 Jan 2012 - storage simulator work ssim/ ssim.cpp ssim.php Charlie 20 Jan 2012 - client: Show GPU number in "GPU is OpenCL-capable" message. client/ client_state.cpp Charlie 20 Jan 2012 - 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. api/ boinc_opencl.cpp client/ app_start.cpp coproc_detect.cpp lib/ app_ipc.cpp,.h coproc.h David 20 Jan 2012 - volunteer data archival stuff ssim/ vda.cpp,h (new) ssim.cpp makefile David 20 Jan 2012 - 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 from the server contains tags, use those instead of the 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 are crashes in the middle. - update_versions: if is present in a , add a gzipped copy in the download directory and add a elements to the app version's xml_doc. client/ client_types.cpp,h file_xfer.cpp cs_files.cpp tools/ update_versions David 20 Jan 2012 - feeder: if we're rereading the DB because of trigger file, do PERF_INFO::get_from_db() also. From Teemu Mannermaa. sched/ feeder.cpp David 20 Jan 2012 - admin web: if change app or app version params, advise user to stop/restart the project html/ops/ manage_apps.php manage_app_versions.php Rom 21 Jan 2012 - 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. samples/vboxwrapper vboxwrapper.cpp Rom 21 Jan 2012 - 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. sched/ sched_customize.cpp David 22 Jan 2012 - 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. db/ boinc_db.cpp,h schema_vda.sql (new) lib/ gui_rpc_client_ops.cpp gui_rpc_client.h ssim/ vda.cpp vda_lib.cpp,h vda_transitioner.cpp makefile client/ net_stats.cpp David 22 Jan 2012 - client: fix divide-by-zero bug in calculation of priority of projects with zero resource share client/ cpu_sched.cpp Rom 23 Jan 2012 - 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. clientgui/ BOINCGUIApp.cpp, .h Rom 23 Jan 2012 - client - Remove Mac OSX 10.3.9 hack, it is no longer needed. client/ http_curl.cpp David 23 Jan 2012 - scheduler: initialize COPROC_ATI::version to zero; avoid sending spurious "update driver" messages lib/ coproc.cpp db/ boinc_db.cpp,h schema_vda.sql vda/ vdad.cpp makefile Charlie 23 Jan 2012 - Mac: If permissions error because unable to opendir() a subdirectory, show path to that subdirectory. client/ check_security.cpp Rom 23 Jan 2012 - 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. samples/vboxwrapper/ vbox.cpp, .h vboxwrapper.cpp David 23 Jan 2012 - web: use et_n instead of pfc_n for #jobs completed in host app details page (pfc_n is not populated for hosts running old clients) html/user/ host_app_versions.php Rom 24 Jan 2012 - 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/ http_curl.cpp David 24 Jan 2012 - client: when deleting a file, check for .gzt and .gz variants as well client/ client_types.cpp David 24 Jan 2012 - client: bug fixes in gzipped download code client/ client_types.cpp cs_files.cpp Rom 24 Jan 2012 - client: undo my previous commit. We request .gz from the server and write the contents to a .gzt file. client/ http_curl.cpp Rom 24 Jan 2012 - VBOX: Fix build breaks for Linux and Mac. samples/vboxwrapper/ vbox.cpp Rom 24 Jan 2012 - client: Fix long standing issue with the .gz extension automatically being decompressed on-the-fly when it wasn't supposed to be. client/ http_curl.cpp David 24 Jan 2012 - volunteer storage client/ client_types.h vda/ vdad.cpp Charlie 25 Jan 2012 - VBOX: Fix compiler warnings on Mac. samples/vboxwrapper/ vboxwrapper.cpp Charlie 25 Jan 2012 - 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. clientgui/ BOINCBaseView.cpp, .h BOINCTaskCtrl.cpp, .h stdwx.h David 26 Jan 2012 - update_versions: for gzipped files, send the size of the compressed file as well. - 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. tools/ update_versions lib/ gui_rpc_client.h vda/ vdad.cpp client/ client_types.cpp,h acct_setup.cpp Charlie 26 Jan 2012 - client: disable temporary debugging aids in coproc_detect logic. client/ coproc_detect.cpp David 26 Jan 2012 - client: fix write of gzipped_nbytes client/ client_types.cpp Rom 26 Jan 2012 - Tag for 7.0.12 release, all platforms boinc_core_release_7_0_12 / configure.ac version.h David 26 Jan 2012 - 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. lib/ crypt.cpp,h crypt_prog.cpp client/ client_types.cpp,h cs_files.cpp Charlie 26 Jan 2012 - Mac: Update the build instructions with the current URL for c-ares-1.7.4. mac_build/ HowToBuildBOINC_XCode.rtf Charlie 27 Jan 2012 - 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. client/ client_types.cpp,h cs_statefile.cpp clientgui/ BOINCTaskBar.cpp,.h mac/ MacSysMenu.cpp David 27 Jan 2012 - 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) - web: update the wording of buffer-size preferences clientgui/ ViewResources.cpp html/inc/ prefs.inc David 27 Jan 2012 - manager: in tooltips for Project/Task buttons, don't prepend "button name: "; add a tooltip for Home Page button. clientgui/ BOINCBaseView.cpp BOINCTaskCtrl.cpp Charlie 27 Jan 2012 - MGR: Disable new "Resume" items in system tray menu if modal dialog is open. clientgui/ BOINCTaskBar.cpp David 28 Jan 2012 - web: msg tweak - screensaver coordinator: use new XML parser clientscr/ screensaver.cpp html/user/ forum_report_post.php Charlie 30 Jan 2012 - 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? client/ cpu_sched.cpp lib/ coproc.h David 30 Jan 2012 - manager: change text for buffer-size fields in advanced prefs dialog clientgui/ DlgAdvPreferencesBase.cpp David 30 Jan 2012 - server: revamp the "assigned job" mechanism. This now supports two main use cases: 1) there's a job that you want to run once on all hosts, present and future (or all hosts belonging to a user, or to a team). The job is never transitioned, validated, or assimilated. 2) There's a normal job for which you want to use only hosts belonging to a specific user (e.g. cluster or cloud hosts). This restriction can be made either when the job is created, or on the fly, e.g. as part of a scheme for accelerating batch completion. For the latter purposes we now provide a function restrict_wu_to_user(DB_WORKUNIT&, int userid); The job goes through the standard transitioner/validator/assimilator path. These cases are enabled by config flags respectively. Assignment of type 2) are no longer stored in shared mem, so there is no limit on their number. There is no longer a rule that assigned job names must contain "asgn". NOTE: this requires a database update. db/ boinc_db.cpp,h constraints.sql schema.sql sched/ sched_util.cpp,h sched_shmem.cpp transitioner.cpp sched_assign.cpp tools/ backend_lib.cpp create_work.cpp html/ops/ db_update.php lib/ common_defs.h David 30 Jan 2012 - admin web: improvements to the pages for investigating result failures (though considerable funkiness remains) html/ ops/ failure_result_summary_by_platform.php failure_result_summary_by_host.php index.php pass_percentage_by_platform.php inc/ db_ops.inc David 31 Jan 2012 - admin web: fixes and clarifications to failure summaries html/ ops/ failure_result_summary_by_platform.php failure_result_summary_by_host.php index.php pass_percentage_by_platform.php inc/ boinc_db.inc db_ops.inc user/ apps.php David 31 Jan 2012 - create_work tool: change option names for assigned jobs - admin web: show actual platform name in result summary page tools/ create_work.cpp html/ops/ pass_percentage_by_platform.php David 31 Jan 2012 - web: fix the user search feature - scheduler: parse d_project_share - scheduler: if vbox and vbox_mt are both available, use vbox for a 1-CPU machine db/ boinc_db.h sched/ sched_customize.cpp sched_types.cpp html/user/ user_search.php David 1 Feb 2012 - scheduler: add log messages to show VM-related request items - fix typos in db_update script sched/ sched_send.cpp html/ops/ db_update.php Charlie 2 Feb 2012 - Tag for 7.0.13 release, all platforms boinc_core_release_7_0_13 / configure.ac version.h David 2 Feb 2012 - 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. client/ cpu_sched.cpp Rom 2 Feb 2012 - MGR: Fix cookie detection problem when using the IEGetProtectedModeCookie API. Function prototype changed from the InternetGetCookieEx function. HRESULT != BOOL. clientgui/ browser.cpp Rom 2 Feb 2012 - Tag for 7.0.14 release, all platforms boinc_core_release_7_0_14 / configure.ac version.h David 3 Feb 2012 - 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/ async_file.cpp,h (new) client_types.h client_state.cpp app.cpp,h app_start.cpp Makefile.am Rom 3 Feb 2012 - client: add async file copy stuff to Windows project file. client/ async_file.cpp win_build/ boinc_cli.vcproj David 3 Feb 2012 - client: debug async file copy. Seems to be working. client/ app.cpp app_start.cpp async_file.cpp lib/ common_defs.h Charlie 3 Feb 2012 - client: add async file copy stuff to Xcode project. mac_build/ boinc.xcodeproj/ project.pbxproj David 3 Feb 2012 - transitioner: fix bug that cause invalid SQL query db/ boinc_db.cpp Charlie 3 Feb 2012 - SCR: Fix Xcode editor problems from recent screensaver.cpp changes. clientscr/ screensaver.cpp David 5 Feb 2012 - client: intermediate checkin for async file verification lib/ crypt.cpp,h crypt_prog.cpp client/ client_types.cpp,h async_file.cpp,h pers_file_xfer.cpp cs_apps.cpp cs_scheduler.cpp acct_mgr.cpp cs_files.cpp Charlie 6 Feb 2012 - client: Fix compiler warning generated by above checkin. client/ pers_file_xfer.cpp Rom 6 Feb 2012 - 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/ http_curl.cpp David 6 Feb 2012 - client: tweaks to AMD GPU detection msgs - client: async file stuff client/ async_file.cpp coproc_detect.cpp cs_files.cpp David 6 Feb 2012 - client: async file stuff client/ async_file.cpp,h cs_files.cpp lib/ crypt.cpp,h crypt_prog.cpp David 6 Feb 2012 - client: async file stuff client/ client_types.cpp,h app_start.cpp async_file.cpp cs_files.cpp David 6 Feb 2012 - client: async file stuff. async decompress/verify seems to be working client/ async_file.cpp,h gui_http.cpp Charlie 6 Feb 2012 - 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/ client_state.cpp David 7 Feb 2012 - client: HTTP range request errors are permanent. client/ http_curl.cpp,h pers_file_xfer.cpp file_xfer.cpp lib/ gui_rpc_client_ops.cpp error_numbers.h str_util.cpp html/ops/ bolt_refresh.php David 7 Feb 2012 - async file stuff. mostly working. still a few bugs client/ cs_apps.cpp http_curl.cpp clientgui/ AccountManagerPropertiesPage.cpp ProjectPropertiesPage.cpp lib/ str_util.h David 7 Feb 2012 - client: async file stuff - set threshold at 10 MB for doing things asynchronously - don't count VERIFY_PENDING as failure client/ async_file.h client_state.cpp client_types.cpp,h cs_apps.cpp Charlie 7 Feb 2012 - client: Fix bug in setting opencl_device_index. client/ coproc_detect.cpp David 7 Feb 2012 - client/Manager/GUI RPC: clean up RPC stuff involving resource-specific backoff and exclusion Old: client writes 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 clientgui/ DlgItemProperties.cpp lib/ gui_rpc_client_ops.cpp gui_rpc_client.h David 8 Feb 2012 - 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 client/ client_types.h app_start.cpp pers_file_xfer.cpp cs_apps.cpp cs_files.cpp Rom 8 Feb 2012 - VBOX: Remove the renaming of the vm disk image code. It isn't needed and it complicates things in the CC. samples/vboxwrapper/ vboxwrapper.cpp David 8 Feb 2012 - 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/ app.h app_control.cpp app_start.cpp async_file.cpp,h David 8 Feb 2012 - client: on startup, check file size as well as existence - client: add 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 lib/ cc_config.cpp,h client/ client_state.cpp async_file.cpp,h sim.cpp app_start.cpp client_types.cpp cs_files.cpp David 8 Feb 2012 - 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 lib/ procinfo.cpp David 9 Feb 2012 - client: only check file size if the FILE_INFO specifies it. client/ cs_files.cpp David 9 Feb 2012 - scheduler: don't send "update GPU driver" messages if the client didn't report a driver version # sched/ sched_customize.cpp file_upload_handler.cpp Rom 9 Feb 2012 - Tag for 7.0.15 release, all platforms boinc_core_release_7_0_15 / configure.ac version.h David 9 Feb 2012 - client (Unix): don't print misleading "task exited with no finish file" message if task actually called boinc_temporary_exit(). client/ app_start.cpp app_control.cpp David 9 Feb 2012 - storage stuff vda/ vdad.cpp vdad_lib.cpp,h ssim.cpp makefile Charlie 10 Feb 2012 - 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.) client/ coproc_detect.cpp Charlie 11 Feb 2012 - 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. clientgui/ BOINCGUIApp.cpp David 12 Feb 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/ client_state.cpp log_flags.cpp pers_file_xfer.cpp David 12 Feb 2012 - storage stuff - client: message tweak lib/ crypt_prog.cpp susp.cpp (deleted) vda/ vda_lib2.cpp (new) vda_lib.h ssim.cpp makefile client/ cpu_sched.cpp Charlie 13 Feb 2012 - MGR: Fix bad in Progress Through Processor's skin files provided by Matt Blumberg on 9 December 2011. clientgui/skins/Progress Thru Processors/ skin.xml Charlie 13 Feb 2012 - client: Try to fix incorrect NVIDIA device number in OpenCL descriptions. client/ coproc_detect.cpp Charlie 13 Feb 2012 - MGR: Update tags in 3 branded skins (GR, PtP, CE) to new values from Matt Blumberg. clientgui/skins/ GridRepublic/ skin.xml Progress Thru Processors/ skin.xml Charity Engine/ skin.xml Charlie 13 Feb 2012 - 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. client/ check_security.cpp David 14 Feb 2012 - scheduler: fix bug that broke broadcast jobs (from Kevin) sched/ sched_shmem.cpp David 14 Feb 2012 - assimilator: when enumerating results for a WU, check retval. Otherwise we might get a partial list, which screws up assimilation logic. sched/ assimilator.cpp lib/ hostinfo.h David 14 Feb 2012 - admin web: fix error when showing unsent results html/inc/ db_ops.inc Charlie 14 Feb 2012 - API: Remove apparently unnecessary include of carbon.h (requested by Bernd Machenschalk.) api/ boinc_api.h clientscr/ gfx_switcher.cpp David 14 Feb 2012 - storage stuff vda/ vdad.cpp vda_lib.h David 14 Feb 2012 - client: instead of saying "comm deferred", say "project backoff XXX.XX". client/ work_fetch.cpp David 14 Feb 2012 - client: more tweaks to work-fetch messages client/ work_fetch.cpp David 15 Feb 2012 - web: in user search, show most recent rather than oldest users - web: don't show URL in account page if expavg_credit < 1. This discourages a type of spam. html/ inc/ user.inc user/ user_search.php David 15 Feb 2012 - client: msg tweak client/ work_fetch.cpp David 15 Feb 2012 - 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) - storage stuff db/ schema_vda.sql lib/ mac_address.cpp Makefile.am vda/ vda_lib2.cpp vda_lib.h client/ hostinfo_network.cpp David 16 Feb 2012 - client: fetch work from backup (zero resource share) projects only if a device instance is idle client/ work_fetch.cpp David 16 Feb 2012 - web: change wording of buffer-size prefs html/inc/ prefs.inc sched/ sched_types.h vda/ sched_vda.cpp Charlie 16 Feb 2012 - client: Remove some temporary debugging code. client/ coproc_detect.cpp David 16 Feb 2012 - storage stuff (work in progress) - small code shuffle db/ boinc_db.h sched/ delete_file.cpp tools/ backend_lib.cpp,h lib/ str_util.h vda/ sched_vda.cpp makefile Charlie 16 Feb 2012 - 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/ coproc_detect.cpp David 17 Feb 2012 - 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/ http_curl.cpp Charlie 17 Feb 2012 - client: Prevent an unlikely but possible crash. client/ coproc_detect.cpp Charlie 17 Feb 2012 - MGR: Fix a Mac-only bug which showed Event Log if About BOINC is selected from task bar menu when BOINC is hidden. clientgui/ BOINCGUIApp.cpp BOINCTaskBar.cpp Rom 17 Feb 2012 - Tag for 7.0.16 release, all platforms boinc_core_release_7_0_16 / configure.ac version.h David 17 Feb 2012 - db_purge: when deleting a workunit record, delete any assignments that refer to it db/ db_base.cpp,h sched/ db_purge.cpp David 17 Feb 2012 - server: add volunteer data archival to the build system sched/ sched_config.cpp,h Makefile.am configure.ac Makefile.am vda/ Makefile.am new makefile (renamed to makefile_orig) Charlie 17 Feb 2012 - Mac: Fix back trace to work under OS > 10.5. (Checked in to boinc_core_release_7_0_16 tag) lib/ mac/ mac_backtrace.cpp Charlie 18 Feb 2012 - client: Fix OpenCL NVIDIA GPU detection when CUDA is not present. client/ coproc_detect.cpp David 18 Feb 2012 - 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/ work_fetch.cpp,h cs_scheduler.cpp sched/ feeder.cpp vda/ vdad.cpp David 19 Feb 2012 - client: fix bug in notices where, after a notice is deleted, the notices tab refreshes once/second forever after client/ cs_notice.cpp Rom 20 Feb 2012 - Tag for 7.0.17 release, all platforms boinc_core_release_7_0_17 / configure.ac version.h David 20 Feb 2012 - client: message tweaks - scheduler: fix crash when use sched/ db_purge.cpp sched_assign.cpp client/ work_fetch.cpp David 20 Feb 2012 - Manager/Client: fix bugs in GUI RPC that prevented updates to proxy info from being saved by client lib/ gui_rpc_client_print.cpp gui_rpc_client_ops.cpp gui_rpc_client.h client/ boinc_cmd.cpp David 20 Feb 2012 - Manager: compile fix clientgui/ MainDocument.cpp David 20 Feb 2012 - scheduler: fix a couple of assigned-job bugs (need "where" at start of enumerate() clause!) sched/ sched_util.cpp sched_assign.cpp David 20 Feb 2012 - 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/ client_types.h cs_statefile.cpp cpu_sched.cpp Charlie 20 Feb 2012 - client: Fix OpenCL NVIDIA GPU enumeration bug I introduced with last checkin. client/ coproc_detect.cpp Charlie 20 Feb 2012 - Tag for 7.0.18 release, all platforms boinc_core_release_7_0_18 / configure.ac version.h Charlie 20 Feb 2012 - Mac installer: Update copyright notice from 2009 to 2012. clientgui/ mac/ SetVersion.cpp David 21 Feb 2012 - storage stuff db/ schema_vda.sql py/Boinc/ setup_project.py vda/ vda.cpp vda_lib.cpp,h vda_lib2.cpp vdad.cpp ssim.cpp Rom 21 Feb 2012 - Vbox: Include date component in log messages to ease debugging long running VM tasks. samples/vboxwrapper/ vbox.cpp vboxwrapper.cpp, .h David 22 Feb 2012 - scheduler: in version selection, when deciding which version is fastest, we multiple projected FLOPS by a normal random var with mean 1 and stddev 0.1. Make the stddev configurable; in particular it can be zero. db/ boinc_db.h schema_vda.sql sched/ sched_config.cpp,h sched_version.cpp vda/ vdad.cpp David 22 Feb 2012 - 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. client/ cpu_sched.cpp David 22 Feb 2012 - scheduler: tell the user if we're not sending work because VirtualBox is not installed sched/ sched_customize.cpp David 22 Feb 2012 - scheduler and create_work: fix bugs that caused targeted jobs to be sent to non-targeted hosts. The feeder was erroneously putting targeted jobs in the shared mem cache. Changes: - The feeder only enumerates jobs for which workunit.transitioner_flags is zero. NOTE: this field is nonzero iff the job is assigned. - create_work: when creating an assigned jobs, set workunit.transitioner_flags appropriately db/ boinc_db.cpp,h schema.sql sched/ sched_array.cpp tools/ create_work.cpp David 22 Feb 2012 - 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. clientgui/ MainDocument.cpp lib/ gui_rpc_client_ops.cpp gui_rpc_client.h api/ boinc_api.cpp,h client/ client_types.cpp,h app.h app_control.cpp David 22 Feb 2012 - client: fix an instance of sprintf(buf, "%s...", buf) on Unix client/ hostinfo_unix.cpp Charlie 22 Feb 2012 - API: fix compile error on Mac. api/ macglutfix.m Charlie 22 Feb 2012 - 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. client/ coproc_detect.cpp David 22 Feb 2012 - server: split out the "antique file deletion" feature of file_deleter.cpp into a separate program, since it blocks normal file deletion while it's running. From Bernd. - storage stuff db/ boinc_db.cpp,h schema_vda.sql sched/ file_deleter.cpp antique_file_deleter.cpp (new) Makefile.am vda/ vdad.cpp vda_lib.cpp vda_lib2.cpp vda.cpp David 22 Feb 2012 - install antique file deleter as periodic task (24 hours) when create new project sched/ antique_file_deleter.cpp tools/ make_project py/Boinc/ setup_project.py Charlie 23 Feb 2012 - MGR: Update in Progress Through Processor's skin file again as requested by Matt Blumberg on 17 February 2012. clientgui/skins/Progress Thru Processors/ skin.xml Charlie 24 Feb 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.) clientgui/ mac/ SetupSecurity.cpp Rom 24 Feb 2012 - MGR: Rename the "Remaining" column to "Remaining (Estimated)" in the Advanced GUI/Work view. clientgui/ ViewWork.cpp David 24 Feb 2012 - client: amend checkin of 18 Feb to not request work if work buffer is above upper limit client/ work_fetch.cpp David 24 Feb 2012 - storage stuff vda/ vdad.cpp vda.cpp vda_lib2.cpp vda_lib.h David 24 Feb 2012 - storage stuff db/ boinc_db.h schema_vda.sql sched/ delete_file.cpp put_file.cpp get_file.cpp tools/ backend_lib.cpp,h vda/ vda.cpp vda_policy.cpp,h (new) vda_lib.cpp,h Makefile.am ssim.cpp David 24 Feb 2012 - scheduler: when choosing the best app version, by default we skip app versions that use a resource for which work has not been requested. This is determined by the "check_req" arg to get_app_version(). This flag is cleared whenever we want to send a job regardless of whether a requested resource can be used: namely, when resending lost jobs, and when sending assigned jobs. Fix a bug that could skip unrequested versions even when check_req is false. NOTES: 1) The current semantics aren't right. When check_req is false, we selected the fastest of all app versions, including those for which no work is requested. Instead, we should select the fastest of the versions for which work is requested if there are any; otherwise, select the fastest version. 2) The mechanism isn't implemented for anonymous platform. It should be. 3) If we've cached an answer (including NULL) for a given value of check_req, that answer may be wrong for a different value. sched/ sched_version.cpp Bernd 27 feb 2012 - db_purge: record result and workunit name in index file sched/ db_purge.cpp Bernd 27 feb 2012 - validator: output the version string even when not in project directory sched/ validator.cpp Bernd 27 feb 2012 - scheduler: allow to configure userids for which the scheduler should not scan the host table. This was previously hardcoded for Einstein@home to prevent some users with many (identical) hosts from flooding the DB with slow queries. Now add userid to the project config (in config.xml) for each such userid. sched/ sched_config.h sched_config.cpp handle_request.cpp Bernd 27 Feb 2012 - scheduler: fix typo in previous commit (patch was using old parser) sched/ sched_config.cpp Bernd 27 Feb 2012 - scheduler: the scheduler (stderr) log is buffered to keep the output of one instance together in the scheduler.log when multiple instances are running. Currently the buffer has a fixed size of 32768 charaters. On one hand with much debug output this buffer may turn out to be too small. OTOH the log of this instance is completely lost in case of a crash, which doesn't help with debugging. Thus make the scheduler log buffer size configurable using the tag in project config. The default value is still the old size (32768), set it to 0 to disable buffering completely, e.g. for debugging. sched/ sched_config.h sched_config.cpp sched_main.cpp Bernd 27 Feb 2012 - scheduler: Another feature for debugging the scheduler. Previously (little known) the scheduler could be hacked to preserve the sched_request.xml and sched_reply.xml in own directories (you had to modify the initial value of use_files in sched_main.cpp). This feature could now be switched on and off on the fly just by changing the project config. When there is an (existing) directory configured as , each schduler instance will write three files in there: PID_C_sched.log, PID_C_sched_request.xml and (if all goes well) PID_C_sched_reply.xml. PID is the process id of this scheduler instance, C is an internal counter within the process if FCGI is used. The sched.log will contain nothing else than the pid and the IP address of the client. This should allow for identifying the scheduler instance responsible for a given apache error log message ("premature end of script headers") when a scheduler crashed. sched_request.xml (obviously) is the scheduler request, and if the scheduler doesn't crash in between, there will also be the reply to the client kept in sched_reply.xml Remove the tag from the project config to turn this feature off. sched/ sched_config.h sched_config.cpp sched_main.cpp Rytis 27 Feb 2012 - change antique_file_deleter logic not to delete files that still have workunit records sched/ antique_file_deleter.cpp David 27 Feb 2012 - VDA: add some log messages - scheduler: add VDA - client, web: change default prefs to min_buf=.1 days, max_buf=.5 days - scheduler: app plan function for vbox requires 7.0+ client Makefile.incl sched/ antique_file_deleter.cpp sched_config.cpp,h sched_customize.cpp handle_request.cpp html/inc/ prefs.inc lib/ prefs.cpp vda/ vda.cpp sched_vda.cpp,h Charlie 28 Feb 2012 - MGR: Change strings in Simple View to match changes in Advanced View: "Remaining" -> "Remaining (Estimated)", "Home page" instead of project name in web links. clientgui/ sg_ProjectWebSitesPopup.cpp sg_TaskPanel.cpp David 28 Feb 2012 - storage stuff db/ boinc_db.cpp,h schema_vda.sql sched/ sched_types.cpp,h vda/ sched_vda.cpp David 28 Feb 2012 - storage stuff. Getting there. db/ boinc_db.cpp sched/ handle_request.cpp vda/ vdad.cpp vda_policy.h sched_vda.cpp vda.cpp David 29 Feb 2012 - wrapper: compute final CPU time correctly for multi-process apps - storage stuff db/ boinc_db.cpp,h schema_vda.sql samples/wrapper/ wrapper.cpp vda/ vda_lib.cpp,h sched_vda.cpp vda.cpp ssim.cpp Charlie 29 Feb 2012 - client: On Mac only, get ATI RAM sizes from OpenGL. client/ coproc_detect.cpp lib/ coproc.h mac_build/ boinc.xcodeproj/ project.pbxproj Rom 29 Feb 2012 - 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/ vbox.cpp David 1 Mar 2012 - client: fix crashing bug when there is 1 instance of a resources. I'm not sure how this ever worked. client/ work_fetch.h sched/ feeder.cpp vda/ storage.txt Rom 2 Mar 2012 - Tag for 7.0.19 release, all platforms boinc_core_release_7_0_19 / configure.ac version.h Charlie 3 Mar 2012 - 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.) mac_build/ Mac_SA_Secure.sh David 3 Mar 2012 - Manager: small code cleanup client/ client_state.cpp clientgui/ DltItemProperties.cpp,h David 3 Mar 2012 - 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 - web: don't use filter_var(, FILTER_SANITIZE_STRING) to strip HTML tags from a string. This escapes singles quotes also. Use strip_tags() instead. clientgui/ DltItemProperties.cpp html/inc/ util.inc lib/ gui_rpc_client_ops.cpp gui_rpc_client.h David 3 Mar 2012 - LAMMPS job submission: set rsc_fpops_bound to 20 times rsc_fpops_est html/user/ lammps.php David 4 Mar 2012 - web: open BBCode instructions in new window (or tab). Otherwise, on IE, you lose the text you already entered when you go back. html/inc/ util.inc Bernd 5 Mar 2012 - scheduler: fix/augment file_deleter usage message sched/ file_deleter.cpp David 5 Mar 2012 - LAMMPS: fix code formatting html/user/ lammps.php Rom 6 Mar 2012 - Tag for 7.0.20 release, all platforms boinc_core_release_7_0_20 / configure.ac version.h David 8 Mar 2012 - API: fix various bugs related to process control and critical sections. - client: code cleanup (no functional change) api/ boinc_api.cpp windows_opengl.cpp client/ app.cpp app_control.cpp vda/ * Rom 8 Mar 2012 - 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. samples/vboxwrapper/ vboxwrapper.cpp vbox.cpp David 9 Mar 2012 - API: remove BOINC_STATUS::suspend_request; it's an implementation thing, not intended for export. Fix a related bug. samples/vboxwrapper/ vboxwrapper.cpp api/ boinc_api.cpp vda/ vda_lib.cpp Rom 9 Mar 2012 - 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. samples/vboxwrapper/ vbox.cpp David 9 Mar 2012 - web: allow a project to specify 2 stylesheets html/ inc/ util.inc project.sample/ project.inc Rom 9 Mar 2012 - VBOX: Allow the CPU execution cap to be set back to 100% after it had alreadly been set lower. samples/vboxwrapper/ vbox.cpp vboxwrapper.cpp David 10 Mar 2012 - storage: add some code vda/ vda_lib.cpp,h ssim.cpp vdad.cpp David 10 Mar 2012 - forgot to add files vda/ stats.cpp,h (new) Bernd 12 Mar 2012 - scheduler: remove lock file when scheduler caught SIGTERM sched/ handle_request.h sched_main.cpp Rom 12 Mar 2012 - VBOX: Only attempt to reset throttle values if the VM is in a running state, otherwise controlvm throws an error. samples/vboxsamples/ vboxwrapper.cpp Rom 12 Mar 2012 - 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. samples/vboxsamples/ vboxwrapper.cpp David 12 Mar 2012 - server: allow to include a :port db/ db_base.cpp David 12 Mar 2012 - client: msg tweak and fix compile warnings client/ client_types.cpp coproc_detect.cpp work_fetch.h lib/ coproc.h str_util.cpp Charlie 12 Mar 2012 - client: fix compile errors. client/ client_types.cpp Charlie 12 Mar 2012 - 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. client/ coproc_detect.cpp Charlie 12 Mar 2012 - VBOX: Fix typo in Mac wrapper name (1686 -> i686). samples/vboxwrapper/ vboxwrapper.xcodeproj project.pbxproj David 13 Mar 2012 - scheduler: do homogeneous app version check before rereading WU as well as after. sched/ sched_send.cpp,h David 13 Mar 2012 - transitioner: don't clear a WU's HR and HAV class if there are timed-out instances; they could still be returned. sched/ transitioner.cpp Charlie 14 Mar 2012 - MGR: fix French translations of Remaining (estimated). locale/fr/ BOINC_Manager.po Charlie 14 Mar 2012 - 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". client/ coproc_detect.cpp Rom 14 Mar 2012 - 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. samples/vboxwrapper vboxwrapper.cpp David 14 Mar 2012 - scheduler: add an alternative way of defining app plan functions that uses an XML configuration file; see http://boinc.berkeley.edu/trac/wiki/AppPlanConfig From Bernd. sched/ sched_customize.cpp plan_class_spec.cpp,h Makefile.am David 14 Mar 2012 - scheduler: code cleanup for the above sched/ plan_class_spec.cpp,h Charlie 14 Mar 2012 - client: On Mac only, update ATI available RAM after getting ATI total RAM size from OpenGL. client/ coproc_detect.cpp David 14 Mar 2012 - scheduler: fix FCGI compile vda/ sched_vda.cpp David 14 Mar 2012 - client: on each scheduler RPC, make sure that files flagged as executable in the reply, and that are present, are actually executable. client/ client_types.cpp David 15 Mar 2012 - 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. client/ app.cpp app_control.cpp David 15 Mar 2012 - scheduler: when HR is being used, make per-HR slot allocation an option rather than the default. Kevin reported that slot allocation wasn't working for WCG. The default is now no slot allocation, and use the regular result enumeration function rather than the once that scans the entire table. The config flag for enabling slot allocation is . sched/ sched_config.cpp,h feeder.cpp hr_info.cpp Rom 15 Mar 2012 - 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. client/ app.h samples/vboxwrapper/ vbox.cpp, .h vboxwrapper.cpp Rom 16 Mar 2012 - Moving trunk back into a development branch, further stabilization of the 7.0.x client is now in the boinc_core_release_7_0a branch. / configure.ac version.h version.h.in David 16 Mar 2012 - client: small changes to make client compile on Android, and to report the platform as "arm-android". From Carl Christensen. - Add a script for building BOINC and library dependencies on Android From Peter Hanappe. lib/ mac_address.cpp client/ android/ AndroidBuild.sh (new) cs_platforms.cpp hostinfo_unix.cpp David 17 Mar 2012 - client: use %g to format job resources (#CPUs, #GPUs). This suppresses trailing zeroes and (if integer) the . client/ client_types.cpp David 17 Mar 2012 - 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 client/ cpu_sched.cpp Charlie 18 Mar 2012 - MGR: Fix a Mac-only bug which sometimes failed to show the suspended icon after closing and opening the Manager windows. This was caused by having a second instance of CTaskBarIcon. clientgui/ BOINCBaseFrame.cpp BOINCGUIApp.cpp,.h mac/ MacSysMenu.cpp David 19 Mar 2012 - 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/ cpu_sched.cpp David 19 Mar 2012 - 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 lib/ procinfo.cpp David 19 Mar 2012 - wrapper: fix bug that reported wildly wrong CPU time lib/ procinfo.cpp David 19 Mar 2012 - scheduler: fix a bug in assigning deadlines to resent jobs. From Kevin. NOTE: Kevin also reported a bug that resulted in way too large (e.g. year) deadlines. sched/ sched_send.cpp David 19 Mar 2012 - 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/ app_control.cpp David 19 Mar 2012 - scheduler: if we can't resend a job (e.g. it's for an app for which the anonymous-platform client doesn't have a version) mark it as sent so the transitioner can do its thing sched/ sched_resend.cpp Rom 20 Mar 2012 - VBOX: Make it explicitly clear what the result of a start/stop request was. Hopefully this will give us insight into whether the core client is terminating the wrapper or something else is going on. - VBOX: Shorten the command execution timeout to 45 seconds. - VBOX: Don't attempt to re-execute the close/savestate commands. samples/vboxwrapper/ vbox.cpp Rom 20 Mar 2012 - VBOX: On successful completion, create the same output file that the CernVMWrapper would. This allows both wrapppers to work with the same BOINC job generation system. samples/vboxwrapper/ vbox.cpp David 20 Mar 2012 - client: report completed results if a time-of-day network suspend is scheduled within the next 30 minutes client/ app.h client_state.h cs_prefs.cpp cs_scheduler.cpp app_control.cpp lib/ prefs.cpp,h Rom 20 Mar 2012 - 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/ app_control.cpp Bernd 21 Mar 2012 - scheduler: fix hu.peak_flops and hu.projected_flops caclculation in plan_class_spec by using coproc_pref() and capped_host_fpops() (moved coproc_perf() to sched_customize.h to make it available in plan_class_spec.cpp, and cleaned up includes) sched/ sched_customize.cpp,h plan_class_spec.cpp,h David 21 Mar 2012 - 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/ client_types.cpp,h async_file.cpp,h app_start.cpp Rom 21 Mar 2012 - VBOX: Introduce the use of VM snapshots as a form of checkpoint. - Perform snapshots at most once every ten minutes. - Client suspend/resume messages behave the same. - Client no heartbeat/quit messages cause the wrapper to just poweroff the VM. On startup check to see if the last checkpoint time is greater than 0, if so, start from the most recent snapshot. - VBOX: If we receieve the status message of no heartbeat or quit, set the temporary delay to 5 minutes. If the wrapper is terminated during the middle of a snapshot, hopefully this will give VirtualBox enough time to complete the snapshot. Restarting the BOINC job should then poweroff the VM and restore from the last snapshot. samples/vboxwrapper/ vbox.cpp, .h vboxwrapper.cpp David 21 Mar 2012 - 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. client/ app.h app_control.cpp Rom 21 Mar 2012 - VBOX: We don't need to display the state of the VM before startup. - VBOX: Change the snapshot naming scheme by removing the quotes and prefixing the checkpoint time with 'boinc_'. Hopefully this will prevent the VM from asserting during the snapshot process. samples/vboxwrapper/ vbox.cpp, .h Rom 21 Mar 2012 - VBOX: Before attempting to take the snapshot for a VM, pause it first. This changes the snapshot type from a live snapshot to an online snapshot. Presumably difference might make it easier to do and prevent the VM from asserting. samples/vboxwrapper/ vbox.cpp, .h Rom 22 Mar 2012 - VBOX: Detect another form of out of memory error from VirtualBox. Reschedule the job for some time in the future when there might be enough memory. - VBOX: Resume the VM's execution after the creation of the snapshot but before we attempt to delete the previous, now stale, snapshot. - VBOX: Treat the 'livesnapshotting', 'deletingsnapshotlive', and 'deletingsnapshotlivepaused' states as online states. samples/vboxwrapper/ vbox.cpp vboxwrapper.cpp Rom 22 Mar 2012 - VBOX: Do not treat the timeout error as a fatal error when attempting to delete stale snapshots. Slower machines can take longer than 45 seconds to complete the deletion of old snapshots. samples/vboxwrapper/ vbox.cpp David 22 Mar 2012 - client/server: add optional 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. sched/ sched_types.cpp,h client/ client_types.cpp,h scheduler_op.cpp,h work_fetch.cpp cs_scheduler.cpp cpu_sched.cpp David 23 Mar 2012 - server: is_project_dir() was checking that cgi-bin is a directory. This doesn't work if it's a symlink to a dir. Check for that too. lib/ filesys.cpp,h sched/ sched_config.cpp David 23 Mar 2012 - 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/ app.h app_control.cpp David 23 Mar 2012 - scheduler: fix bug that could cause zero credit for the first few jobs of a new application (in wu_estimated_pfc(), only multiply by app.min_avg_pfc if it's nonzero). sched/ credit.cpp David 23 Mar 2012 - 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. - web: don't allow user names that have leading or trailing white space, or HTML tags, or are empty html/ inc/ user.inc user/ openid_login.php create_account_action.php edit_user_info_action.php create_account.php lib/ coproc.cpp error_numbers.h client/ coproc_detect.cpp Rytis 24 Mar 2012 - web: fix previous commit. html/ inc/ user.inc David 25 Mar 2012 - compile fix for redhat, from Steffen Moller clientgui/gtk/ taskbarex.cpp,h David 26 Mar 2012 - scheduler: enforce app_version.max_core_version sched/ sched_version.cpp David 26 Mar 2012 - client: report results if CPU suspend pending in next 30 min client/ cs_scheduler.cpp David 26 Mar 2012 - 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/ pers_file_xfer.cpp cpu_sched.cpp David 26 Mar 2012 - web: add script for replacing blank user names with the user ID html/ops/ fix_blank_user_names.php David 26 Mar 2012 - client/server: set cores/proc for NVIDIA compute capability 3.0 to 192 Why can't NVIDIA provide an API for this????? lib/ coproc.cpp David 27 Mar 2012 - client: fix typo that prevented GPU jobs from running if CPUs were filled with EDF jobs client/ cpu_sched.cpp David 27 Mar 2012 - client: fix bug where if we sent app a 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. api/ boinc_api.h client/ app_control.cpp David 27 Mar 2012 - client: fix bug in reading reason for temporary exit - lib: fix a valgrind warning lib/ parse.cpp client/ app_control.cpp David 27 Mar 2012 - scheduler: zero host.nsame_ip_addr if IP addr differs from previous sched/ handle_request.cpp David 27 Mar 2012 - client/scheduler: fix error in NVIDIA peak flops calculation lib/ coproc.cpp David 27 Mar 2012 - scheduler: ignore app_version.max_core_version if it's zero sched/ sched_version.cpp vda/ vda.cpp vdad.cpp sched_vda.cpp Charlie 29 Mar 2012 - 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. mac_installer/ PostInstall.cpp Uninstall.cpp Charlie 29 Mar 2012 - client: Fix idle detection during fast user switching. See comments in HOST_INFO::users_idle() for details. client/ hostinfo_unix.cpp David 30 Mar 2012 - scheduler: don't max with min_work_buffer() in estimating job turnaround time. min_work_buffer doesn't necessarily reflect network disconnect periods - client simulator: compile fixes sched/ sched_send.cpp vda/ vdad.cpp client/ sim.cpp sim_util.cpp client_types.cpp cs_scheduler.cpp app.cpp Charlie 31 Mar 2012 - 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(). clientgui/ BOINCBaseFrame.cpp BOINCGUIApp.cpp,.h BOINCTaskBar.cpp,.h mac/ MacSysMenu.cpp,.h David 2 Apr 2012 - client: change some unsigned int to size_t in our versions of NVIDIA APIs. This apparently caused crashes (in app, not client, which I don't understand) for Einstein@Home. From Steffen Moller. html/ops/ db_update.php lib/ coproc.h client/ coproc_detect.cpp David 2 Apr 2012 - client: don't write deviceHandle to NVIDIA XML description. Um, pointers don't have any meaning outside the process lib/ coproc.cpp David 5 Apr 2012 - admin web: when resetting app statistics, clear elapsed time stats as well as PFC stats db/ boinc_db.h sched/ sched_version.cpp html/ops/ app_reset.php David 9 Apr 2012 - server: create a harness for testing validator code. If you link your functions (init_result(), compare_results(), cleanup_result()) with validate_test.cpp, you'll get a program that you can run as validate_test file1 file2 and it will compare the two files (this works only for validators that expect 1 file per result). I added a makefile, sched/makefile_validator_test, that you can use for this. - server: shuffle code so that the above doesn't need to link MySQL libraries - client: if we fetch a master file and it contains no scheduler URLs, show a message of class INTERNAL_ERROR - client/scheduler: make CUDA_DEVICE_PROP.totalGlobalMem a double, and remove dtotalGlobalMem. Although NVIDIA reports RAM size as a size_t, there's no reason to store it as an integer after that. db/ boinc_db.h boinc_db_types.h sched/ validate_util2.h validate_util.h makefile_validator_test plan_class_spec.cpp sched_send.cpp validator_test.cpp validator.cpp html/inc/ stats_sites.inc lib/ coproc.cpp,h client/ coproc_detect.cpp scheduler_op.cpp David 9 Apr 2012 - API: fix C compile error - initial checkin of remote job stuff for app from ICT tools/ tt_boinc api/ boinc_api.h html/user/ tree_threader.php David 12 Apr 2012 - CAS@home stuff tools/ tt_boinc.cpp html/user/ tree_threader.cpp David 12 Apr 2012 - add script for canceling jobs - CAS@home stuff tools/ tt_boinc html/ ops/ cancel_wu_action.php cancel_wus.php inc/ util_ops.inc user/ tree_threader.php Charlie 12 Apr 2012 - web: separate Intel-only from Universal (PowerPC & Intel) clients on download-all page so that PowerPC clients don't tell users to upgrade to intel-only version. doc/ versions.inc David 13 Apr 2012 - CAS@home stuff tools/ tt_boinc html/user/ tree_threader.php David 13 Apr 2012 - wrapper: when reading fraction-done file, read the last line (or at least the last double). This accommodates a particular application (LAMMPS) that can only append to this file. - CAS@home stuff sched/ sched_util.cpp sched_send.cpp tools/ tt_boinc html/user/ submit.php tree_threader.php samples/wrapper/ wrapper.cpp David 13 Apr 2012 - client: add PID to random stuff used to make host CPID, in case running multiple clients on same host client/ hostinfo_network.cpp David 17 Apr 2012 - scheduler: fix bug in assigned-job logic (from Derrick Kondo) - client: only send active tasks in get_simple_gui_info GUI RPC sched/ sched_assign.cpp client/ client_types.h gui_rpc_server_ops.cpp David 17 Apr 2012 - scheduler: add a program that targets remaining jobs in a batch to a particular user (e.g. for cloud execution). From Derrick Kondo. sched/ target_batch.cpp David 17 Apr 2012 - scheduler: handling of allow_multiple_clients flag from client was wrong. From Bernd. sched/ handle_request.cpp David 19 Apr 2012 - web: don't show account keys on account page; rewrite the page explaining and showing account keys. - client: remove log flag - client: remove config option html/ inc/ user.inc user/ weak_auth.php lib/ cc_config.cpp,h client/ log_flags.cpp David 19 Apr 2012 - fix many problems with validator_test sched/ sched_util.h makefile_validator_test sample_dummy_assimilator.cpp single_job_assimilator.cpp sched_util.cpp sample_bitwise_validator.cpp validate_util.cpp,h validator_test.cpp sample_assimilator.cpp Rom 19 Apr 2012 - Update copyrights. client/win/ boinc_cli.rc boinc_cmd.rc boinc_log.rc clientctrl/ boincsvcctrl.rc clientgui/ BOINCGUIApp.rc DlgAbout.cpp clientscr/ boinc_ss.rc boinc_ss_opengl.rc clienttray/ boinc_tray.rc David 20 Apr 2012 - back end: print error messages instead of numbers in several places tools/ dir_hier_move.cpp backend_lib.cpp process_input_template.cpp dir_hier_path.cpp create_work.cpp David 20 Apr 2012 - client: add log flag lib/ cc_config.cpp,h David 20 Apr 2012 - client: add log flag client/ cs_prefs.cpp David 20 Apr 2012 - client/server: remove assert()s from message log code lib/ msg_log.cpp Rom 20 Apr 2012 - MGR: Show() does not restore the window state from a minimized state. Use maximize(false) to handle that situation. clientgui/ BOINCBaseFrame.cpp BOINCGUIApp.cpp David 20 Apr 2012 - client: if we're contacting a project to ask it for work of a particular processor type, ask it for work of other types only if we're below max buffer for those types. client/ work_fetch.cpp cs_prefs.cpp David 21 Apr 2012 - client: fix bug that could erroneously cause a GPU to be "blocked by config file". client/ work_fetch.cpp coproc_detect.cpp Rom 23 Apr 2012 - client: fix function prototypes for CUDA detection. client/ coproc_detect.cpp David 23 Apr 2012 - client: fix bug that caused a project's jobs to all be run EDF if the project has the flag set. client/ cpu_sched.cpp Rom 24 Apr 2012 - WINSETUP: Fix long standing installer bug where we were attempting to add the boinc_master account to the boinc_admins group when installing in the non-service install mode. boinc_master is only created during service installs. This was causing a setup failure on Windows 8. As far as I can tell it should have also been failing on Win7 and WinVista. win_build/installerv2/redist/Windows/src/boinccas/ boinccas.rc CACreateBOINCGroups.cpp win_build/installerv2/redist/Windows/Win32/ boinccas.dll boinccas95.dll win_build/installerv2/redist/Windows/x64/ boinccas.dll boinccas95.dll David 24 Apr 2012 - update_versions: eliminate PHP warnings when no version.xml file tools/ update_versions David 25 Apr 2012 - scheduler: fix bug that tried to open plan class spec file on each request. - client: when showing how much work a scheduler request returned, scale by availability (as is done to show the amount of the request) - client in account manager request, and are in wall time, not run time (i.e. scale them by availability) Note: there's some confusion in the code between runtime and wall time, where in general wall time = runtime / availability. New convention: let's use "runtime" for the former, and "duration" for the latter. sched/ sched_customize.cpp client/ client_types.cpp,h time_stats.h work_fetch.cpp rr_sim.cpp cs_scheduler.cpp cpu_sched.cpp David 25 Apr 2012 - client: fix crashing bug that happened when a scheduler reply had a parse error, and it included project files. While parsing the scheduler reply we'd add FILE_REFs to PROJECT::project_files, but wouldn't link them to FILE_INFOs since this is done only if the reply parses correctly. The next garbage_collect() would dereference these NULL pointers. Solution: parse the FILE_REFS into SCHEDULER_REPLY::project_files. Copy this to PROJECT::project_files only if the reply parses. client/ client_types.cpp,h scheduler_op.cpp,h cs_scheduler.cpp cs_statefile.cpp David 25 Apr 2012 - Bad logic in Win code: if you have *pbuf = HeapAlloc(...) then you need if (*pbuf == NULL) not if (pbuf == NULL) - various code cleanups - Makefile.am: don't include clientgui/res; nothing to make there from Steffen Moeller sched/ file_upload_handler.cpp lib/ diagnostics_win.cpp procinfo_win.cpp Makefile.am client/ coproc_detect.cpp client_types.cpp David 26 Apr 2012 - client: enforce in config file not just at startup, but also when config file is re-read. client/ log_flags.cpp David 26 Apr 2012 - A first attempt to fix the bug where apps die with exit(1) (whereas they didn't do this w/ older clients). On Windows, the client uses TerminateProcess(h, 1) to kill processes; the 1 is the exit code the process will appear to have. So instead, add a "will_restart" bool arg to the various kill functions, and if set use 0 (= STATUS_SUCCESS), otherwise use EXIT_ABORTED_BY_CLIENT. Note: in principle this shouldn't make any difference for quitting tasks, since handle_exited_app() checks for task state QUIT_PENDING and ignores the exit code in that case. The only place I can see where it would make any difference is when we kill a process because it hasn't been handling queued shared-memory messages for 180 seconds. - client: add more info to the message about an exited app - client: function return values (ERR_*) are different from process exit codes (EXIT_*). But in many places we were using return values as exit codes. Fix these. Also, break out the different types of limits a job can exceed (time, disk, memory) into difference exit codes. lib/ error_numbers.h client/ client_state.cpp app.h gui_rpc_server_ops.cpp cs_apps.cpp client_types.cpp cs_scheduler.cpp app_control.cpp David 27 Apr 2012 - compile fix lib/ str_util.cpp David 27 Apr 2012 - scheduler: call get_reliability_and_trust() and get_prefs_info() in send_work_setup(), so that they run before lost jobs are resent. Otherwise lost jobs could get sent using an app version that's prohibited by prefs sched/ sched_send.cpp David 27 Apr 2012 - web: put around username | log in html/inc/ util.inc David 27 Apr 2012 - scheduler: change ET_RATIO_LIMIT to 250 sched/ sched_version.cpp Rom 27 Apr 2012 - WINSCR: Use the DefProcHandler function when processing WM_CLOSE/WM_DESTROY window messages. In effect, let Windows do the default thing. This removes the hacks which kept the screensaver running with old versions of Microsoft's keyboard/mouse driver software installed. clientscr/ screensaver_win.cpp, .h David 30 Apr 2012 - web RPC: include rpc_time in XML host description - client: if acct mgr sends us an account with no authenticator, show an error message instead of trying to attach html/ inc/ xml.inc user/ show_user.php client/ acct_mgr.cpp David 30 Apr 2012 - client: code cleanup. Move RESULT and PROJECT to separate files client/ project.cpp,h (new) result.cpp,h (new) *.cpp David 30 Apr 2012 - client: minor code shuffle client/ project.cpp result.cpp client_state.h cs_scheduler.cpp cpu_sched.cpp David 30 Apr 2012 - client: if an app version needs OpenCL/CUDA/CAL, make sure that the GPU supports it (fix bug where sometimes, e.g. CUDA detection fails but OpenCL succeeds, and we have a CUDA app). client/ client_types.cpp Charlie 30 Apr 2012 - lib: Fix compile break on Mac. lib/ str_replace.h Charlie 30 Apr 2012 - Mac: Update XCode project with new source files. mac_build/ boinc.xcodeproj/ project.pbxproj David 1 May 2012 - Manager: message tweak - add new files to Win project clientgui/ MainDocument.cpp win_build/ boinc_cli.vcproj Charlie 3 May 2012 - Mac installer: changes for OS 10.8 compatibility. mac_installer/ PostInstall.cpp Uninstall.cpp Charlie 6 May 2012 - Mac installer: changes for OS 10.8 compatibility. mac_installer/ PostInstall.cpp Uninstall.cpp David 6 May 2012 - client: fix bug where coproc name could be set incorrectly when: a) there are multiple GPU vendors b) one of them is detected via OpenCL but not "native" (CUDA/CAL) client/ coproc_detect.cpp David 7 May 2012 - web: if user.has_profile = 0 but there actually is a profile, update user.has_profile html/user/ view_profile.php Bernd 7 May 2012 - lib: added function secs_to_hmsf() which converts (double) seconds to a string 0h00m00s00 lib/ str_util.cpp, .h Bernd 8 May 2012 - scheduler: no functional change, just got rid of DOS linebreaks sched/ plan_class_spec.cpp,h Bernd 8 May 2012 - scheduler: don't override avg_ncpus per default sched/ plan_class_spec.cpp Bernd 9 May 2012 - scheduler: get app_version info for validator items db/ boinc_db.cpp David 9 May 2012 - C++ code: use MAXPATHLEN for char arrays that hold paths (many .cpp files) David 9 May 2012 - compile fix api/ boinc_opencl.cpp,h David 9 May 2012 - Win compile fixes lib/ boinc_win.h filesys.cpp samples/vboxwrapper/ vboxwrapper.cpp Rom 9 May 2012 - lib: Fix a bug where information that was meant for stdout was being written to stderr instead. - lib: Keep track of the rough estimate of stdout and stderr by incrementing internal variables instead of doing a stat on each log write. stat() on Windows is converted to a FindFirstFile() call which in turn looks up the file size information in the directory structure file system entry. The directory structure information is only updated periodically. This lead to larger than expected log file for both the manager and core client. This has the added advantage of reducing the overall number of file I/O operations when logging information. lib/ diagnostics.cpp Charlie 10 May 2012 - MGR: Eliminate QuickDraw calls for OS 10.8 compatibility. clientgui/ BOINCGUIApp.cpp DlgEventLog.cpp DlgitemProperties.cpp sg_DlgMessages.cpp mac/ MacGUI.cpp,.h David 10 May 2012 - diagnostics lib: - store file sizes as double rather than int - if we're appending to log files, initialize the size variables to the current size - check return value of fprintf, only increment size if it's + - when rotate log file, reset size var to zero lib/ diagnostics.cpp Bernd 11 May 2012 - scheduler: don't try to send_file_deletes() with an incomplete request sched/ handle_request.cpp Rom 11 May 2012 - VBOX: When the system confirms our port number request or assigns us a new port number to work with convert it from network byte order (big endian) to the host byte order (little endian on x86/x64 processors). samples/vboxwrapper/ vbox.cpp David 11 May 2012 - web: use gmdate() instead date() to avoid time zone warning html/ inc/ uotd.inc translation.inc user/ cert_team.php cert1.php uotd.php cert_all.php project.sample/ project.inc David 13 May 2012 - LAMMPS script: chdir back to html/user, else page_head() breaks html/user/ lammps.php David 14 May 2012 - scheduler: revision of app_plan_spec mechanism. Not debugged, but it compiles now. sched/ plan_class_space.cpp,h Rom 15 May 2012 - MGR: Add OpenCL icon to the ProjectInfo wizard page. clientgui/ ProjectInfoPage.cpp, .h clientgui/res/ openclicon.xpm clientgui/res/templates/ openclicon.png lib/ diagnostics.cpp Rom 15 May 2012 - Normalize the way E@H returns OpenCL information to the client software. doc/ get_platforms.inc Rom 15 May 2012 - MGR: Fix the icon we use to represent OpenCL. - client: Update the stock all_project_list.xml file we send out with new client software. clientgui/res/ openclicon.xpm win_build/installerv2/redist/ all_projects_list.xml David 18 May 2012 - client/API/vboxwrapper: add an optional element to cc_config.xml. If present, run VMs without the --headless option. client/ app_start.cpp lib/ app_ipc.cpp,h cc_config.cpp,h samples/vboxwrapper/ vbox.cpp,h vboxwrapper.cpp David 18 May 2012 - web: show "run beta apps?" project pref if the project has any beta applications (don't require project to specify this in project_specific_prefs.inc) html/project.sample/ project_specific_prefs.inc David 18 May 2012 - web: fix PHP warnings by calling date_default_timezone_set(). Set it to the timezone specified by the constant TIMEZONE (in project.inc) or "UTC" if none specified. - web: fix bugs in submit.php html/ inc/ submit_util.inc util.inc user/ submit.php David 18 May 2012 - scheduler: add a lot more debug messages if is set sched/ sched_array.cpp David 18 May 2012 - vboxwrapper: don't run headful if client is sandboxed (it won't work). samples/vboxwrapper/ vboxwrapper.cpp Rom 18 May 2012 - MGR: Remove the visuals in the wizard for multi-core and opencl. This area will get a bunch of work in a future commit. clientgui/ ProjectInfoPage.cpp, .h clientgui/res/ openclicon.xpm (deleted) multicore.xpm (deleted) David 18 May 2012 - client: show option in log, and give warning if include this while in sandbox mode - web: update URLs for BOINCstats html/inc/ stats_sites.inc client/ log_flags.cpp Charlie 18 May 2012 - VBOX: Fix Mac compiler warnings (deprecated conversion from string constant to 'char*'). samples/vboxwrapper/ vboxwrapper.cpp Rom 18 May 2012 - MGR: Fix build breaks clientgui/ AccountManagerInfoPage.cpp clientgui/ ProjectListCtrl.cpp, .h David 20 May 2012 - API: add boinc_network_usage(); lets an application report its network usage to BOINC, and hence take it into account with monthly limits etc. - API: get rid of deprecated boinc_ops_per_cpu_sec(), boinc_ops_cumulative(), and boinc_set_credit_claim(); - admin web: update manage_apps.php; add the ability to set homogeneous app version html/ops/ manage_apps.php api/ boinc_api.cpp,h Rom 21 May 2012 - MGR: Fix menu redraw issue under Ubuntu's new interface. fixes #1180 (From Huibert) clientgui/ AdvancedFrame.cpp David 22 May 2012 - add script to repair damaged user.global_prefs fields - compile warning fixes sched/ delete_file.cpp sched_version.cpp html/ops/ fix_venue.php vda/ stats.cpp ssim.php David 23 May 2012 - server daemons: add daemon_sleep(n), which sleeps for n secs but checks for the "stop_daemons" trigger file every 1 sec. Use this instead of sleep() in daemons. This will speed up bin/stop. sched/ sched_util.cpp,h (daemons).cpp David 23 May 2012 - get rid of BOINC_SOCKLEN_T stuff; just use socklen_t configure.ac lib/ network.h David 23 May 2012 - server: make fix_venue.php work faster html/ inc/ boinc_db.inc ops/ fix_venue.php David 25 May 2012 - server: rename fix_venue.php to fix_prefs.php html/ops/ fix_prefs.php David 25 May 2012 - admin web: add a function for "revalidating" a given set of jobs. This reruns validation for instances that are successful but marked as invalid or inconclusive. Use this if you changed your validator to be more permissive, and you want to grant credit for instances that were originally marked as invalid. html/ops/ index.php revalidate.php (new) db/ boinc_db_types.h David 25 May 2012 - fix typos in two PHP scripts html/ops/ repair_forums.php notify.php David 26 May 2012 - web: don't truncate thread titles html/user/ forum_forum.php David 26 May 2012 - web: increase size of thread title input field to 80 html/user/ team_forum.php forum_post.php David 26 May 2012 - web RPC: make am_set_info available by POST as well as GET, since its args can be too long for a URL html/user/ am_set_info.php David 26 May 2012 - admin web: fix revalidated script html/ops/ revalidate.cpp David 26 May 2012 - web RPC: in am_set_info, if both GET and POST args are present, use POST html/user/ am_set_info.php David 28 May 2012 - user web: job submission home page has 1) links to job submission pages for relevant apps 2) links to Admin pages for relevant apps html/user/ submit.php David 28 May 2012 - fix tools/manage_privileges script html/ inc/ submit_db.inc user/ manage_project.inc David 28 May 2012 - web: allow users with admin privileges to abort or retire batches html/user/ submit.php David 28 May 2012 - feeder: if we purge a stale job, and it's commited to an HR class, un-commit it since that's probably the reason why it's stuck (and it may never get unstuck) sched/ feeder.cpp Rom 30 May 2012 - MGR: Wait until there is valid data in the list box before processing the OnProjectSelected() event. clientgui/ ProjectInfoPage.cpp David 3 June 2012 - scheduler: various fixes to plan_class_spec.cpp; from Bernd - admin web: don't include the project's stylesheet, which may assume a layout not used by admin pages sched/ plan_class_spec.cpp html/inc/ util.inc util_ops.inc David 4 June 2012 - scheduler: if we truncate the # of results accepted (like we're doing in SETI@home) don't resend lost results since we don't know what they are sched/ handle_request.cpp sched_types.cpp,h David 4 June 2012 - DB: add project_state and description fields to batch table. Both are for use by project. - job submission file sandbox: don't delete physical file when delete sandbox entry. We'll have to figure out how to garbage-collect physical files. - LAMMPS job submission: use the 50th-percentile host,not 0th html/ user/ sandbox.php lammps.php ops/ db_update.php db/ schema.sql boinc_db_types.h Wenjing 5 June 2012 - web: don't allow a sandbox file to be deleted if it's used by an in-progress batch. NOTE: this logic checks only 1 job from the batch, so it assumes that all jobs have the same input files. html/ user/ sandbox.php inc/ sandbox.inc David 5 June 2012 - scheduler: debug plan_class_spec a little. Add an #ifdef'd main program in plan_class_spec.cpp, and a makefile, for testing purposes. sched/ sched_main.cpp plan_class_spec.cpp,h makefile_plan_class_spec sched_types.cpp client/ coproc_detect.cpp lib/ coproc.cpp David 5 June 2012 - scheduler: add Vbox stuff to plan_class_spec sched/ plan_class_spec.cpp,h David 5 June 2012 - scheduler: add example plan_class_spec.xml - scheduler: change gpu_type from "ati" to "amd" in plan class spec sched/ plan_class_spec.cpp plan_class_spec.xml.sample Bernd 6 Jun 2012 - scheduler: moved client version check to be last of the checks performed for a particular app version. It is not necessary to tell the user to upgrade the client just to suite the needs of a particular app version if this app version requires resources that the host dosn't have or didn't request work for. Actually I don't think it's good to tell the user he needs to upgrade the client if there is only one particular app version that requires a more recent one than he has. I think that the purpose of the g_wreq->outdated_client flag was checking the min_core_version in the project configuration. For this the flag and the notice/message that it triggers is still ok. But in the app version checks setting this flag leads to misleading messages in most cases, so I commented that out for now. I'm not sure, though, that both of these measurements are needed. sched/ sched_version.cpp Bernd 6 Jun 2012 - scheduler: minor fixes to plan_clas_spec: - consistently accept both 'ati' and 'amd' for AMD/ATI plan classes - in OpenCL plan classes always use device memory reported via OpenCL (might be different e.g. from what's available/reported via CUDA) - comment formatting sched/ plan_class_spec.cpp David 6 June 2012 - scheduler: add option sched/ plan_class_spec.cpp,h handle_request.cpp sched_config.h David 7 June 2012 - scheduler: add max_results_accepted config option. Limits mem usage by the scheduler, can prevent crashes. sched/ sched_config.cpp,h sched_types.cpp David 7 June 2012 - scheduler: add , to plan class XML spec options; lets you specify a range of ATI GPU models to use sched/ plan_class.cpp,h sched_config.cpp,h David 9 June 2012 - fixes of various (non-critical) fd and memory leaks. Fixes #1188. From Julien. - fix bugs in setting scheduler output buffer size - code formatting client/ hostinfo_unix_test.cpp apps/ concat.cpp api/ make_app_icon_h.cpp texfont.cpp texture.cpp tgalib.cpp vda/ vdad.cpp vda_policy.cpp sched/ sched_driver.cpp feeder.cpp credit_test.cpp sched_main.cpp Bernd 10 Jun 2012 - API: fix for C-mode compilation of boinc_api.h moved app_ipc.h inclusion outside __cplusplus since it contains important C mode prototypes (boinc_resolve_filename() etc.) api/ boinc_api.h Bernd 11 Jun 2012 - API: fix #2 for C-mode compilation of boinc_api.h app_ipc.h didn't cleanly compile in C-mode either, had to fix this, too. lib/ app_ipc.h Rom 12 Jun 2012 - Make things build again on Mac OSX 10.8 using the autoconf framework. (From Oliver Bock) / configure.ac David 13 June 2012 - scheduler: remove from scheduler reply for now; the 7.0.25 client has a bug that causes jobs to run EDF if this flag is present. sched/ sched_types.cpp Charlie 13 June 2012 - client: Reverse my logic of 16 Feb 2012: we now always use GPU model name determined from CAL TargetID (if available) for OpenCL model name of ATI / AMD GPUs because (we believe) it is more user-friendly. client/ coproc_detect.cpp David 14 June 2012 - scheduler: send only if client is 7.0.28 or later. sched/ sched_types.cpp vda/ ssim.cpp vdad.cpp des.h stats.cpp,h vda_lib.cpp,h David 14 June 2012 - client: - added the definitions for the new Windows 7/2008r2 preSP1 and Windows 8/2012 SKUs based on the winnt.h from the Windows 8 RC SKD (also added as proof) - added the detection for some more Windows SKU - Updates provided by Teamwork of Planet3Dnow.de to coproc_detect.cpp - added CAL_TARGET_ID 21 as : AMD Radeon HD 78x0 series (Pitcairn) (from [P3D] Crashtest) client/ coproc_detect.cpp hostinfo_win.cpp David 14 June 2012 - client, GUI RPC: detect and export the PCI bus, device, and domain #s. - scheduler: increase #GPU limit from 8 to 64 lib/ coproc.cpp,h client/ coproc_detect.cpp sched/ sched_send.cpp vda/ vda_lib.cpp,h ssim.cpp Charlie 16 June 2012 - Mac installer: Fix bugs I introduced on May 3 and May 6. mac_installer/ PostInstall.cpp Uninstall.cpp Charlie 18 June 2012 - Mac installer: Create or delete Login Items and set screensaver properly when installing for multiple users on OS 10.7, 10.8. mac_installer/ PostInstall.cpp Uninstall.cpp David 18 June 2012 - client: it's possible for a host to get app versions for a given app that have different platforms and different version #s. The client was erroneously deleting the one w/ the lower version when it was no longer in use. Fix: in garbage collection, consider one version to supercede another only if they have the same platform client/ client_state.cpp vda/ ssim.cpp David 18 June 2012 - client: split GPU detection code into separate files lib/ coproc.h client/ gpu.h (new) gpu_opencl.cpp (new) gpu_amd.cpp (new) gpu_nvidia.cpp (new) coproc_detect.cpp Makefile.am David 18 June 2012 - client: rename coproc_detect.cpp to gpu_detect.cpp client/ gpu_detect.cpp,h Makefile.am David 18 June 2012 - client: compile fixes client/ gpu_opencl.cpp gpu_amd.cpp gpu_nvidia.cpp lib/ coproc.cpp,h David 18 June 2012 - win compile fixes client/ gpu_nvidia.cpp win_build/ boinc_cli.vcproj David 18 June 2012 - client: for NVIDIA, make an array of the PCI info for all usable GPUs client/ gpu_nvidia.cpp David 19 June 2012 - client: AMD GPU detection addition (from [P3D] Crashtest) client/ gpu_amd.cpp Charlie 20 June 2012 - Mac: Update XCode project with new source files. mac_build/ boinc.xcodeproj/ project.pbxproj David 20 June 2012 - fix configure error on Linux. I think the AC_PROG_OBJCXX should be limited to Mac somehow configure.ac David 20 June 2012 - web: fix BOINCStats link for host details html/inc/ stats_sites.inc David 20 June 2012 - API, Linux: increase timer thread stack size from 16K to 32K. Apparently new use of MAXPATHLEN can cause overflow. Fixes #1191 api/ boinc_api.cpp Charlie 21 June 2012 - Mac: Fix displayed names of BOINC installer, uninstaller, etc. clientgui/ mac/ SetVersion.cpp mac_build/ boinc.xcodeproj/ project.pbxproj David 21 June 2012 - web: server status page should show elapsed time, not CPU time html/user/ server_status.php Charlie 22 June 2012 - Mac: Code sign the BOINC installer and uninstaller if we have a valid code signing identity. Code signing using a registered Apple Developer ID is necessary for GateKeeper with default settings to allow running downloaded applications under OS 10.8. mac_installer/ release_boinc.sh David 22 June 2012 - client: AMD GPU detection addition (from [P3D] Crashtest) client/ gpu_amd.cpp David 25 June 2012 - scheduler: add support for Intel GPUs, and restructure things to make it easier to add other GPU types in the future sched/ sched_customize.cpp,h sched_shmem.cpp plan_class_spec.cpp sched_types.cpp,h sched_version.cpp sched_send.cpp lib/ coproc.cpp,h David 25 June 2012 - Unix build: fix typo configure.ac David 25 June 2012 - Unix build: fix for Mac OS X (from Oliver) configure.ac Charlie 26 June 2012 - Mac client: Upgrade to curl 7.26.60 and c-ares 1.9.1. mac_build/ boinc.xcodeproj/ project.pbxproj buildc_ares.sh buildcurl.sh HowToBuildBOINC_XCode.rtf setupforBOINC.sh Charlie 26 June 2012 - Mac client: build libssl.a and libcrypto.a from openssl 1.0.1c and do static links instead of a dynamic links with Apple-supplied dynamic libraries. mac_build/ boinc.xcodeproj/ project.pbxproj buildopenssl.sh (new) HowToBuildBOINC_XCode.rtf setupforBOINC.sh David 26 June 2012 - client: keep track of the fraction of time that 1) a network connection is available and 2) network communication is allowed and 3) CPU computation is allowed - If an app version is marked as needs_network, use the above fraction in estimating its rate of progress - replace "core client" with "client" in comments. - scheduler: message tweaks client/ client_state.h cs_files.cpp rr_sim.cpp app_start.cpp gui_rpc_server_ops.cpp boinc_cmd.cpp app_control.cpp time_state.cpp,h boinc_log.cpp sandbox.cpp check_state.cpp main.cpp work_fetch.cpp gui_rpc_server.cpp sched/ sched_send.cpp lib/ coproc.cpp David 26 June 2012 - Unix build tweaks. Fixes #1193 (I think) m4/ boinc_check_fcgi.m4 libcurl.m4 David 26 June 2012 - Unix build: remove "if" around AC_PROG_OBJCXX; apparently this is needed for Gentoo build. You may need a recent automake for this to work. Fixes #1193. configure.ac David 26 June 2012 - Unix build tweak configure.ac Charlie 28 June 2012 - Mac client: Update wxMac build script for partial compatibility with OS 10.8 and XCode 4.5. See comments in script for details. mac_build/ buildWxMac.sh David 28 June 2012 - client: when estimating FLOPS for an anonymous-platform app version for which no estimate has been supplied by user, use (CPU speed)*(cpu_usage + 10*gpu_usage) (add the 10*) lib/ common_defs.h str_util.cpp client/ client_state.cpp sched/ transitioner.cpp David 28 June 2012 - web: when showing a batch, recompute and update its fraction done - feeder: don't enumerate results for WUs with nonzero error_mask - scheduler: in slow_check(), make sure the WU error_mask is still zero html/user/ submit.php db/ boinc_db.cpp sched/ sched_array.cpp David 29 June 2012 - client: add missing end tag for . Doh! - validator: add some sanity-checking for credit, to prevent granting 1e38 credit. max_granted_credit now defaults to the equivalent of 1 TeraFLOP-year. Instances that exceed this are not counted in the credit calculation, and a critical-mode log message is written - wrapper: remove wall_cpu_time; not used anymore html/user/ host_app_versions.cpp samples/wrapper/ wrapper.cpp sched/ validator.cpp credit.cpp lib/ coproc.cpp David 1 July 2012 - When the client makes a scheduler RPC without requesting work, and there's a simple reason (e.g. the project is suspended, no-new-tasks, downloads stalled, etc.) show it in the event lot. If the reason is more complex, don't try to explain. client/ work_fetch.cpp,h scheduler_op.cpp David 2 July 2012 - client: in the job scheduler, there's a check to prevent overcommitting the CPUs if an MT is scheduled. Skip this check for GPU jobs. client/ cpu_sched.cpp David 2 July 2012 - Compile fixes for Fedora core 17. From Christian B. Fixes #1194. - Fix various #include issues. CODING STYLE LAW (minimal inclusion principle): If foo.cpp requires , #include in foo.cpp, NOT foo.h various/ various David 2 July 2012 - more code cleanup vda/ ssim.cpp sched/ plan_class_spec.cpp lib/ various David 2 July 2012 - Unix build: fix problem with Debian automated builds; from Steffen M configure.ac Charlie 3 July 2012 - Mac: fix build break. client/ cpu_sched.cpp Charlie 3 July 2012 - Mac client: Update Xcode project for compatibility with Xcode 4.3.2 and Xcode 4.5. mac_build/ boinc.xcodeproj/ project.pbxproj David 3 July 2012 - Client (Win): in file_size(), use _stat64() instead of stat(). Otherwise it doesn't work for files >= 2GB - Client: TIME_STATS::trim_stats_log() wasn't working because it's called in the constructor of TIME_STATS, which is called before we've done a chdir() to the data dir. Note: for this reason, no disk access should be done in constructors of global objects. A quick scan found no instances of this. client/ client_state.cpp time_stats.cpp,h lib/ filesys.cpp Charlie 5 July 2012 - Mac: update script which builds our installer to work with Xcode 4.3 for Lion and later. Because PackageMaker is now distributed separately from Xcode, we emulate it using low-level tools. mac_installer/ release_boinc.sh David 5 July 2012 - client: remove "device" entry from CUDA_DEVICE_PROP, and change types of mem-size fields from int to double. These fields are size_t in NVIDIA's version of this; however, cuDeviceGetAttribute() returns them as int, so I don't see where this makes any difference. - client: fix bug in handling of element. - scheduler: message tweaks. Note: [foo] means that the message is enabled by . lib/ coproc.cpp,h client/ gui_nvidia.cpp work_fetch.cpp scheduler_op.cpp db/ boinc_db_types.h boind_db.h vda/ sched_vda.cpp sched/ plan_class_spec.cpp sched_types.cpp Charlie 5 July 2012 - Mac: update build scripts to work with Xcode 4.3 for Lion and later. Xcode and the Mac OS X SDKs are no longer installed at fixed locations. mac_build/ boinc.xcodeproj/ project.pbxproj buildc_ares.sh buildcurl.sh buildopenssl.sh BuildMacBOINC.sh buildWxMac.sh HowToBuildBOINC_XCode.rtf David 7 July 2012 - distributed storage: move chunk_size to VDA_FILE. Add some missing code. sched/ sched_types.cpp,h db/ boinc_db_types.h boinc_db.cpp schema_vda.sql vda/ vda_lib.cpp,h vda.cpp vdad.cpp ssim.cpp sched_vda.cpp html/user/img/ star.gif Charlie 10 July 2012 - Mac: update build scripts, source files and Xcode project to allow building with Xcode 4.3 under OS 10.7.x Lion and Xcode 4.5 under OS 10.8 Mountain Lion. clientgui/ mac/ MacBitmapCompboBox.cpp MacSysMenu.cpp clientscr/ Mac_Saver_ModuleView.m mac_build/ boinc.xcodeproj/ project.pbxproj buildc_ares.sh buildcurl.sh buildopenssl.sh BuildMacBOINC.sh HowToBuildBOINC_XCode.rtf David 10 July 2012 - Unix: include db/boinc_db_types.h in installed headers - client: small code cleanup, no functional change db/ Makefile.am client/ time_stats.cpp David 10 July 2012 - web: show job status correctly for new exit codes html/inc/ result.inc David 10 July 2012 - user web: add "posts per page" pref for message boards; get rid of existing funky page-limit prefs html/ inc/ forum.inc user/ edit_forum_preferences*.php forum_reply.php forum_thread.php Charlie 11 July 2012 - Mac: update sample code to allow building with Xcode 4.3 and to eliminate compiler warnings. samples/ example_app/ MakeMacExample.sh Makefile_mac Makefile_mac2 uc2_graphics.cpp mac_build/ UpperCase2.xcodeproj/ project.pbxproj vboxwrapper/ BuildMacVboxWrapper.sh (new) Makefile_mac (new) vboxwrapper.xcodeproj/ project.pbxproj wrapper/ BuildMacWrapper.sh David 11 July 2012 - web: improve forum pagination client/ client_msgs.cpp html/ inc/ forum.inc user/ forum_forum.php forum_reply.php forum_threads.php David 11 July 2012 - web: forum fixes html/ inc/ forum.inc user/ forum_forum.php Charlie 12 July 2012 - Mac: update sample code to allow building with Xcode 4.4 GM seed under OS 10.8 GM seed. samples/ example_app/ MakeMacExample.sh mac_build/ UpperCase2.xcodeproj/ project.pbxproj vboxwrapper/ BuildMacVboxWrapper.sh vboxwrapper.xcodeproj/ project.pbxproj wrapper/ BuildMacWrapper.sh David 12 July 2012 - web: make "jump to first unread" work with pagination html/ inc/ forum.inc user/ forum_thread.php David 12 July 2012 - web: make links to specific posts work with pagination html/ inc/ forum.inc user/ forum_thread.php David 12 July 2012 - web: don't try to update thread last-read-time if not logged in html/inc/ forum.inc David 13 July 2012 - web: when posting to a thread, show a page of its most recent posts - feeder: add --by_batch option: interleaves jobs from different batches. From Jack Harris. sched/ feeder.cpp html/user/ forum_reply.php forum_user_posts.php David 13 July 2012 - web: after post to a thread, show a page of the most recent posts (but don't change user's sort prefs) html/user/ forum_thread.php forum_reply.php David 13 July 2012 - web: use · instead of | as a separator html/inc/ result.inc David 16 July 2012 - lib: treat MINGW32 like CYGWIN32 (in 1 place - should do everywhere?) from Oliver lib/ filesys.cpp db/ schema_vda.sql sched/ Makefile.am html/ops/ manage_apps.php vda/ sched_vda.cpp David 16 July 2012 - web: make "jump to first unread" work for threads that haven't been viewed before html/inc/ forum.inc Charlie 17 July 2012 - Mac: Minor corrections to documentation and sample code. mac_build/ HowToBuildBOINC_XCode.rtf samples/ example_app/ Makefile_mac2 David 17 July 2012 - compile fix (from Oliver) api/ boinc_api.h David 17 July 2012 - client: delete sticky files when reset project client/ client_state.cpp David 17 July 2012 - client: if we get a job for which a GPU is missing, keep the RESULT record so that we can report it to the scheduler. Otherwise we'll keep getting the same job if the project has set. client/ cs_scheduler.cpp Charlie 18 July 2012 - lib: Adjust #include files as requested by Oliver Bock. lib/ procinfo_mac.cpp Bernd 18 July 2012 - API: fix Makefile.mingw - allow to augment CFLAGS and CXXFLAGS - allow to at least set DEBUG flags externally, such that backtrace flags can be used - minor textual fixes (whitespace error, typo in comment) lib/ Makefile.mingw Rom 18 July 2012 - client: Re-introduce the WM_QUERYENDSESSION window message handler to the power management window proc, it was removed during one of the Win9x code scrubs. When we see it, inform the client it is time to shutdown. client/ sysmon_win.cpp David 21 July 2012 - lib: fix typo lib/ coproc.cpp David 21 July 2012 - client simulator: fix build breaks client/ makefile_sim sim.cpp sim_util.cpp David 21 July 2012 - client: don't request work for backup project for a processor type unless there are idle instances of that type client/ work_fetch.cpp David 23 July 2012 - volunteer storage: implement "vda status" command vda/ vda_lib.cpp,h vda_lib2.cpp (new) vdad.cpp vda.cpp Makefile.am db/ boinc_db_types.h David 23 July 2012 - client: improve "new version available" notice client/ current_version.cpp David 25 July 2012 - volunteer data storage: intermediate checkin vda/ vda.cpp ssim.cpp vdad.cpp sched_vda.cpp vda_lib2.cpp db/ boinc_db_types.h boinc_db.cpp schema_vda.sql Charlie 26 July 2012 - Mac: fix a typo in build script. mac_build/ setupForBOINC.sh Charlie 27 July 2012 - Mac: create build scripts for FreeType-2.4.10 and FTGL-2.1.3-rc5 libraries; eliminate extra output from wxMac build script. mac_build/ buildfreetype.sh (new) buildFTGL.sh (new) buildWxMac.sh setupforBOINC.sh Rom 30 July 2012 - MGR: Use the same fix for the simple gui that we used on the advanced gui with regards to the menu on Ubuntu's interface. clientgui/ sg_BoincSimpleFrame.cpp David 1 Aug 2012 - web: after post to a thread, show thread in user's chosen order instead of newest first. db/ db_base.cpp,h html/ inc/ forum.inc user/ forum_reply.php vda/ vda_lib.cpp vdad.cpp sched_vda.cpp vda_lib2.cpp David 1 Aug 2012 - code cleanup: in foo.cpp, include foo.h first lib/ *cpp David 1 Aug 2012 - use instead of . Seems to be needed on Debian. sched/ credit.cpp plan_class_spec.cpp sched_driver.cpp feeder.cpp vda/ ssim.cpp Charlie 1 Aug 2012 - API, SCR: Switch from *.txf fonts to TrueType fonts in graphics applications, ensuring that all related files have no licensing issues. / COPYRIGHT api/ gutil/cpp,.h ttfont.cpp,.h texfont.cpp,.h (deleted) texture.cpp,.h (deleted) txf_util.cpp,.h (deleted) txf/ *.txf (deleted) ttf/ courier_bold (deleted) helvetica (deleted) README (deleted) liberation-fonts-ttf-2.00.0/ (added) AUTHORS (added) CHANGELOG (added) LICENSE (added) README (added) *.ttf (added) clientscr/ ss_app.cpp mac_build/ boinc.xcodeproj/ project.pbxproj mac_installer/ release_boinc.sh Charlie 2 Aug 2012 - Mac: Update scripts for building branded installers to allow building with Xcode 4.3 under OS 10.7.x Lion; change names of branded installers from "*macOSX_universal" to "*macOSX_i686" since we no longer support PowerPC Macs. mac_installer/ make_CharityEngine.sh make_GridRepublic.sh make_ProgThruProc.sh David 2 Aug 2012 - scheduler: compile fixes for FCGI sched/ hr_info.cpp html/inc/ forum.inc lib/ util.cpp filesys.cpp Rom 2 Aug 2012 - SS: Update project files to use FreeType and FTGL on Windows. api/ ttfont.cpp, .h clientscr/ ss_app.cpp win_build/ boinc_ss.vcproj libgraphics2.vcproj Charlie 3 Aug 2012 - Sample Graphics app: Switch from *.txf fonts to TrueType fonts. samples/ example_app/ MakeMacExample.sh Makefile_mac Makefile_mac2 uc2_graphics.cpp mac_build/ UpperCase2.xcodeproj/ project.pbxproj Rom 3 Aug 2012 - VBOX: Do not perform the hardware virtualization check when the guest VM is 64-bit. 64-bit guest vms require hardware virtualization and should fail without it. - VBOX: Implement the directive in the vbox_job.xml file. if init_data.xml is set, the wrapper will copy the init_data.xml file to the shared directory before the VM is launched. samples/vboxwrapper/ vbox.cpp vboxwrapper.cpp David 3 Aug 2012 - volunteer storage. Seems to be working, at least in simulation vda/ vda_lib2.cpp vda_lib.cpp,h stats.cpp ssim.cpp vdad.cpp Rom 3 Aug 2012 - WIN: Make the example graphics application build again. - WIN: Get rid of the linker warnings for both the default screensaver and the example graphics application win_build/ boinc_ss.vcproj uc2_graphics.vcproj David 3 Aug 2012 - API: remove support for BMP and TGA image files; the code to parse these had no license info. Only JPEG is supported now. api/ Makefile.am bmplib.cpp,h (removed) tgalib.cpp,h gutil.cpp Charlie 3 Aug 2012 - API: remove references to removed files bmplib.h and tgalib.h. api/ gutil_text.cpp Charlie 3 Aug 2012 - Mac: Update build instructions and build script. mac_build/ HowToBuildBOINC_XCode.rtf setupforBOINC.sh David 3 Aug 2012 - Client: initial checkin for Android version. From Joachim Fritzsch. lib/ common_defs.h prefs.cpp,h android_log.h (new) network.cpp shmem.h hostinfo.h str_util.cpp synch.cpp client/ hostinfo_unix.cpp client_msgs.cpp cs_prefs.cpp main.cpp hostinfo_network.cpp David 3 Aug 2012 - client: other Android stuff, from Joachim client/ cs_platforms.cpp lib/ md5_file.cpp David 3 Aug 2012 - scheduler: fix message typo sched/ sched_send.cpp Rom 6 Aug 2012 - WIN: Don't include the newer DBGHELP symbols in MinGW64. (From Oliver Bock) lib/ stackwalker_imports.h David 6 Aug 2012 - client: fix error in runtime estimation for active tasks client/ work_fetch.cpp Rom 7 Aug 2012 - MGR: Enforce the 0..10 day limit on the connect interval for the advanced preferences dialog. At some point we should rename it. clientgui/ DlgAdvPreferences.cpp Rom 7 Aug 2012 - API: Remove ttfont.cpp from Makefile.am. Apps should include it in there Makefile as needed. api/ Makefile.am Rom 7 Aug 2012 - WINSCR: Fix problem with the screensaver needlessly cycling in preview mode. Ugh. clientscr/ screensaver_win.cpp David 7 Aug 2012 - client: parse in prefs - server: compile fix lib/ prefs.cpp vda/ vda.cpp ssim.cpp vdad.cpp vda_lib2.cpp Charlie 7 Aug 2012 - WIN: Remove reference to deleted tgalib.cpp file. win_build/ libgraphics2.vcproj David 8 Aug 2012 - server: volunteer storage bug fixes. Note to self: jerasure's decoder program loops or crashs if there are no missing chunks. vda/ vda_lib.cpp,h vda.cpp sched_vda.cpp vda_lib2.cpp db/ boinc_db_types.h David 8 Aug 2012 - Client/manager: there was a bug because some code was writing "cpu" in XML, and other code was looking for "CPU". To fix this and prevent similar problems, processor type names are now encapsulated in proc_type_name_xml(). Code should use this rather than having hard-wired names. Redefine: GPU_TYPE_* as macros that call proc_type_name_xml(). client/ client_types.cpp client_state.cpp clientgui/ DlgItemProperties.cpp sched/ sched_version.cpp lib/ gui_rpc_client_ops.cpp coproc.cpp,h Charlie 8 Aug 2012 - MGR: Fix build break. clientgui/ DlgItemProperties.cpp David 10 Aug 2012 - client: when we're making a scheduler RPC for a reason other than work fetch, and we're deciding whether to piggyback a work request, skip the checks for hysteresis (buffer < min) and for per-resource backoff time. These checks are there only to limit the rate of RPCs, which is not relevant since we're doing one any. This fixes a bug where a project w/ sporadic jobs specifies a next_rpc_delay to ensure regular polling from clients. When these polls occur they should request work regardless of backoff. client/ work_fetch.cpp,h David 10 Aug 2012 - client: tweak to the above: never ask for work if buffer > max. This is needed to prevent projects that use next_rpc_delay from queuing unbounded work. client/ work_fetch.cpp David 10 Aug 2012 - API: add boinc_set_min_checkpoint_period(int). Lets application specify a min checkpoint interval. The actual min checkpoint interval is the max of this and the user-specified pref for min disk interval. api/ boinc_api.cpp,h David 10 Aug 2012 - server: fix bug in restrict_wu_to_user() that caused it to go into infinite loop sched/ sched_util.cpp David 10 Aug 2012 - client: Android-related tweaks, from Joachim client/ main.cpp lib/ synch.cpp android_log.h David 10 Aug 2012 - lib: switch include order to the way it was (general to specific). Should fix MinGW compile lib/ *.cpp David 10 Aug 2012 - server: compile fix lib/ synch.cpp