David Jan 2 2009 - added a script to make profile.has_picture consistent with the images actually on disk html/ops/ repair_profile_pictures.php David Jan 2 2009 - client: more work-fetch stuff. No more per-project shortfall. It's getting pretty close. client/ client_state.cpp client_types.cpp,h cs_scheduler.cpp rr_sim.cpp scheduler_op.cpp work_fetch.cpp,h lib/ coproc.cpp,h Janus Jan 6 2009 - Various translation fixes - Added Danish web interface translation - Added some Danish translation texts to the client translation file - Added Finnish web interface translation (contributed by ORE) html/ inc/ user.inc user/ info.php languages/translations da.po (fully rewritten) fi.po (new) locales/da BOINC-Manager.po Charlie Jan 6 2009 - client: preserve ownership when copying files to slot directory. Fixes a problem with Enigma@home which uses the tag. lib/ filesys.cpp Rom 7 Jan 2009 - Fix build environment so that it can build the client again (From Nicolás Alvarez) / configure.ac Makefile.am sea/ make-tar.sh make-tar_debug.sh David 7 Jan 2009 - get_project_config: don't send error text if no terms_of_use.txt - client: compute and store project work-fetch attributes fixes #820 client/ client_state.h work_fetch.h,cpp html/user/ get_project_config.php Charlie Jan 6 2009 - client: fix compiler warnings (formats didn't match data). client/ work_fetch.cpp David 9 Jan 2009 - client: connected_frac -1 is OK; fixes #821 client/ time_stats.cpp David 9 Jan 2009 - scheduler: add support for resource-specific scheduler requests: - parse new request message elements (CPU and coproc requested seconds and instances) - decide how many jobs to send based on these params - select app version based on these params (may send both CPU and CUDA app versions for the same app!) lib/ coproc.cpp sched/ handle_request.cpp main.cpp,h sched_plan.cpp sched_send.cpp server_types.cpp,h David 9 Jan 2009 - client: debugging CUDA-related stuff - client: if reset a project, clear its overall and per-resource backoffs client/ client_state.cpp client_types.cpp cs_scheduler.cpp rr_sim.cpp scheduler_op.cpp sim.h work_fetch.cpp,h lib/ coproc.cpp Charlie Jan 10 2009 - Mac: Fix build scripts for new locale source directory layout. mac_installer/ release_GridRepublic.sh release_boinc.sh David Jan 10 2009 - client: work_req_seconds is CPU req, not max(CPU req, CUDA req). In order to work with the 6.7 client, projects with both CUDA and CPU jobs must use the newest scheduler code. client/ work_fetch.cpp David Jan 11 2009 - scheduler: if a Windows host has a GPU slower than 60 GFLOPS, don't send it CUDA jobs (they may cause BSOD); send user a message to this effect sched/ sched_plan.cpp sched_send.cpp server_types.h David Jan 12 2009 - lib: check return values of RSA_*() functions. Also fix a memory leak, missing RSA_free(). Fixes #823. lib/ crypt.cpp error_numbers.h str_util.cpp Rom 12 Jan 2009 - WINSETUP: Update custom actions in case the goofy setup problems are related to old custom actions. I don't really think this is it, but i'm running out of ideas. win_build/installerv2/redist/Windows/src/boinccas/ boinccas.rc win_build/installerv2/redist/Windows/Win32/ boinccas.dll boinccas95.dll win_build/installerv2/redist/Windows/x64/ boinccas.dll boinccas95.dll David 12 Jan 2009 - web: add Eric's script for forum RSS html/user/ forum_rss.php David 12 Jan 2009 - scheduler, file upload handler: fix server runtime message in FCGI case sched/ file_upload_handler.cpp handle_request.cpp main.cpp sched_util.cpp,h server_types.cpp David 12 Jan 2009 - scheduler: initialize COPROC fields lib/ coproc.cpp David 12 Jan 2009 - scheduler: if we're not sending work because of the user's "no GPUs" pref, tell them so. - scheduler: fix bug that caused no CUDA jobs to be sent lib/ coproc.cpp,h common_defs.h sched/ handle_request.cpp sched_send.cpp sched_plan.cpp server_types.h David 12 Jan 2009 - scheduler: bug fixes sched/ handle_request.cpp sched_send.cpp David 12 Jan 2009 - scheduler: bug fixes sched/ sched_plan.cpp David 13 Jan 2009 - GUI RPC: add the following items to PROJECT_CONFIG (corresponding to the get_project_config.php web RPC): - platforms: list of platforms supported by the project - sched_stopped: scheduler disabled - web_stopped: DB-driven web features disabled - min_client_version - GUI RPC: add the following items to CC_STATE: - platforms: list of platforms supported by the client (this replaces the unused ) - GUI RPC: add the following items to PROJECT_LIST_ENTRY (entry in the "all projects" list): - platforms: list of platforms supported by the project - GUI RPC: move APP_VERSION pointer from WORKUNIT to RESULT; include plan class in APP_VERSION lookup. This completes the change of March 2008, and allows the Manager to work correctly when a project has two different app versions of the same (app, platform, version) running on a client at once (e.g., a CPU and a GPU app) - get_project_config.php: remove logic that checks client version. This page is accessed by PHP, not just by client - web: add link to forum page to get forum as RSS client/ cs_statefile.cpp clientgui/ DlgItemProperties.cpp MainDocument.cpp ViewWork.cpp sg_ViewTabPage.cpp html/user/ get_project_config.php forum_rss.php forum_forum.php img/feed_logo.png (new) lib/ gui_rpc_client_ops.cpp gui_rpc_client.h David 13 Jan 2009 - client: GPU bug fix; compile warning fixes client/ client_types.cpp clientgui/ BOINCTaskBar.cpp lib/ filesys.cpp parse.cpp David 13 Jan 2009 - GUI RPC: finish the changed started above; update the way that app versions are identified. Old: WORKUNIT contains version_num RESULT contains app_version_num (but only if running) New: Keep old fields so new client works with old manager. RESULT contains version_num, plan_class Manager: if RESULT doesn't have version/plan_class (because talking to old client) look up app version based on WU version num. clientgui/ BOINCTaskBar.cpp sg_ViewTabPage.cpp MainDocument.cpp DlgItemProperties.cpp ViewWork.cpp lib/ gui_rpc_client_ops.cpp gui_rpc_client.h Eric 13 Jan 2009 - STILL WORK TO BE DONE TO GET locale STUFF INSTALLED PROPERLY!!! - Update to libtool 1.5.24 - build environment: Major automake changes that I've been warning about for some time. - Now uses libtool to build libraries. - Builds separate boinc_fcgi and sched_fcgi libraries for use with FCGI server components. - New macro "BOINC_CHECK_LIB_WITH" that executes a "AC_CHECK_LIB" on a library only if --with-libname[=DIR] is specified on the configure command line. This is to allow inclusion of libraries when the ssl, gtk, wxWidgets, or other configuration is incorrect for static libraries. - Added a lot of "--with-*" for some libraries that might be required for static builds. - The sea directory has been moved to packages/generic. Changes to sea and the associated scripts might be required to better make use of the staging mechanism and shared libraries. - Fixed includes of boinc_fcgi.h in many files. - Fixed places where FCGI_FILE needs to be used implicitly. - Fixed missing define of _SC_PAGESIZE on hosts that define only _SC_PAGE_SIZE. - Moved build of boinc_cmd (and source file) from lib to client ltmain.sh config.guess config.sub Makefile.incl m4/ sah_check_lib.m4 check_ssl.m4 boinc_gtk.m4 (new) boinc_check_lib_with.m4 (new) libcurl.m4 boinc_wxwidgets.m4 sea/ (moved to packages/generic/sea) packages/ (new) generic/ (new) sea/ (new) Makefile.am client/ Makefile.am hostinfo_unix.cpp sched/ edf_sim.cpp sched_shmem.h sched_msgs.h sched_msgs.cpp sched_send.cpp handle_resuest.cpp file_upload_handler.cpp main.cpp sched_assign.cpp Makefile.am lib/ boinc_cmd.cpp (moved to client) diagnostics.cpp prefs.cpp msg_log.h cert_sig.cpp Makefile.am zip/ Makefile.am samples/ example_app/ Makefile api/ Makefile.am clientgui/ Makefile.am tools/ backend_lib.cpp Makefile.am doc/ manpages/ Makefile.am David 13 Jan 2009 - client/manager fixes client/ client_types.cpp lib/ gui_rpc_client_ops.cpp gui_rpc_client.h David 14 Jan 2009 - client: fix bug that caused estimated time to completion to increase while processing suspended Fixes #825 client/ app_control.cpp David 14 Jan 2009 - client: clamp long term debts tp +- 1 week - client: fix CUDA debt calculation - client: don't accumulate debt if project->dont_request_more_work - client: improves messages client/ rr_sim.cpp Rom 15 Jan 2009 - WINSETUP: Fix the problem introduced where Enable Application execution wasn't working. win_build/installerv2/ BOINC.ism BOINCx64.ism Rom 15 Jan 2009 - MGR: Don't convert strings to ANSI juts to have to reconvert them back to Unicode. Fix several help link issues. Fixes #826 clientgui/ AdvancedFrame.cpp DlgAdvPreferences.cpp sg_BoincSimpleGUI.cpp sg_DlgMessages.cpp sg_DlgPreferences.cpp sg_ProjectsComponent.cpp David 15 Jan 2009 - scheduler: improve message formatting; add flag for locality scheduling messages lib/ msg_log.cpp sched/ *.cpp David 15 Jan 2009 - GUI RPC: add CUDA info to PROJECT struct - manager: display CUDA info in project properties page - manager: use struct assignment instead of copy() function client/ boinc_cmd.cpp clientgui/ AsyncRPC.cpp DlgItemProperties.cpp lib/ gui_rpc_client_ops.cpp gui_rpc_client.h David 15 Jan 2009 - scheduler: remove clause in app_plan() that withholds jobs from slow GPUs. The SETI@home/CUDA app has been fixed so that it works on all GPUs. sched/ sched_plan.cpp Eric 15 Jan 2009 - build: Made static linkage of BOINC libraries the default for client, manager, and server components configure.ac tools/ Makefile.am clientgui/ Makefile.am client/ Makefile.am samples/ example_app/ Makefile Charlie Jan 15 2009 - client: boinc_copy ownership fix of 1/6/09 didn't work because it used system(cp ...) call, which invokes a shell, and POSIX specifies that shells run from an application use the real UID and GID not the effective UID and GID. Under Mac Sandbox security, we need to use the effective UID and GID. Changed boinc_copy to copy file directly. - MGR: On Mac, fix problems showing Manager window when it was minimized to Dock, especially if window was closed using Dock menu. - Mac: Fix XCode project for boinc_cmd.cpp moved to client/ from lib/. client/ app_start.cpp clientgui/ BOINCBaseFrame.cpp BOINCGUIApp.h BOINCTaskBar.cpp lib/ filesys.cpp mac_build/ boinc.xcodeproj/ project.pbxproj David 16 Jan 2009 - client: remove limits on LTD. client/ work_fetch.cpp David 19 Jan 2009 - scheduler: remove the config flag , and add . The latter is used in calculating max jobs/day for a host; namely, it's host.max_results_day * (NCPUS + NCUDA*cuda_multiplier). Set it to 10 or so if you have CUDA apps. - scheduler: don't overload effective_ncpus(); instead, add two new functions, max_results_day_multiplier() and max_wus_in_progress_multiplier() - scheduler: don't reduce max_results_day if we get an aborted job (it might have been aborted by the project; not appopriate to punish host in this case) db/ boinc_db.h sched/ main.cpp sched_config.cpp,h sched_result.cpp server_types.h David 20 Jan 2009 - client: fix messages client/ rr_sim.cpp work_fetch.cpp David 20 Jan 2009 - scheduler: improve no-work messages - web: don't use DB conn in mysql_real_escape_string() (otherwise won't work if DB is down) html/inc/ boinc_db.inc db_conn.inc sched/ sched_plan.cpp.h sched_send.cpp server_types.h Charlie Jan 20 2009 - Mac client: fix bug in build script so that curl-7.19.2 actually does build with c-ares 1.6.0. Fixes #830. mac_build/ buildcurl.sh David 21 Jan 2009 - scheduler: accept CUDA version 1.0 sched/ sched_plan.cpp David 21 Jan 2009 - client: fetch work from non-CPU-intensive projects client/ work_fetch.cpp,h David 21 Jan 2009 - client: compile fix, remove spurious message client/ work_fetch.cpp,h Rom 21 Jan 2009 - MGR: Make sure the UI thread doesn't call a GUI RPC that uses the SET_LOCALE class. clientgui/ BOINCClientManager.cpp Charlie Jan 22 2009 - MGR: fix compile error. clientgui/ BOINCClientManager.cpp David 22 Jan 2009 - client: if an app has avg_ncpus < 1, run it at above-idle priority even if it doesn't use a coprocessor. - scheduler: added an "nci" (non CPU intensive) plan class to sched_plan.cpp. It declares the use of 1% of a CPU. The above two changes are intended to allow the QCN app to run at above_idle priority, which it needs in order to do 500Hz polling. - API: the std::string version of boinc_resolve_filename() acts the same as the char[] version. client/ app.cpp app_start.cpp lib/ app_ipc.cpp gui_rpc_client.cpp sched/ sched_plan.cpp David 22 Jan 2009 - web: when using adaptive replication, show a WU's instances if it has a canonical result, not if it's been assimilated (if the assimilator is not working, the latter causes WUs to be hidden longer than needed) html/user/ workunit.php David 22 Jan 2009 - client: simplify message describing scheduler request; to get work request details, use client/ scheduler_op.cpp Eric 22 Jan 2009 - build: reordered compiler flags checking. Fixed problems with finding location of wx-config when running with cached configuration. Made sure to check ${prefix}/lib when looking for libGL, libGLU, and libglut. m4/ boinc_wxwidgets.m4 ax_check_glut.m4 ax_check_glu.m4 ax_check_gl.m4 boinc_set_compile_flags.m4 David 22 Jan 2009 - client: when preempting a process, remove it from memory if: 1) it uses a coprocessor 2) it has checkpointed since the client started 3) it's being preempted because of a user action (suspend job, project, or all processing) or user preference (time of day, computer in use) - scheduler: if shared mem seg doesn't exist, report it and don't crash client/ app.h app_start.cpp app_control.cpp cpu_sched.cpp sched/ main.cpp Charlie Jan 22 2009 - client sandbox: add details in switcher_exec "execv failed" message. - MGR: Work around bug in generic list control GetSelectedItemCount() which caused incorrect update of buttons in Projects tab after detching from a project; remove redundant UpdateSelection() call. client/ sandbox.cpp clientgui/ BOINCBaseView.cpp BOINCListCtrl.cpp,.h David 23 Jan 2009 - client: clear debts when reset project - client: respect work-fetch backoff for non-CPU-intensive projects - client: for non-CPU-intensive project, fetch new job if no currently running jobs - client: skip non-CPU-intensive projects in debt calculations - manager: show resource backoff times correctly client/ app_control.cpp client_state.cpp client_types.cpp,h work_fetch.cpp,h clientgui/ DlgItemProperties.cpp David 23 Jan 2009 - scheduler: for plan class "nci", set flops to CPU speed; this will give consistent completion time estimates for existing WUs. sched/ sched_plan.cpp David 23 Jan 2009 - scheduler: fix spurious error message when using nci sched/ sched_plan.cpp,h sched_send.cpp David 23 Jan 2009 - web: fix apps.php so that it knows about plan class html/user/ apps.php David 23 Jan 2009 - API: possible compile fix for OS/2 api/ boinc_api.cpp David 23 Jan 2009 - scheduler: reduce frequency of calls to work_needed() sched/ sched_array.cpp sched_send.app David 23 Jan 2009 - scheduler: make NCI app versions preferable to non-plan-class sched/ sched_plan.cpp David 23 Jan 2009 - scheduler: if client can't do plan class, don't complain about old client sched/ sched_send.cpp Charlie Jan 23 2009 - MGR: Remove override of GetSelectedItemCount() introduced yesterday; instead, call DeleteItem() rather than SetItemCount() when number of rows has been reduced, to allow virtual ListCtrl adjust its list of selected rows (and thus keep its count in sync with reality.) clientgui/ BOINCBaseView.cpp BOINCListCtrl.cpp,.h David 23 Jan 2009 - scheduler: initialize global sched/ handle_request.cpp David 23 Jan 2009 - scheduler: if anonymous platform, ignore coprocessor requests (since anonymous platforms apps are treated as CPU) sched/ sched_send.cpp server_types.h Janus 25 Jan 2009 - Fixed a major bug in the translation system which was causing a lot of people to receive the webpages in semi-random languages. - Added the ability for projects to decide whether they want the Q&A and Message Boards merged. html/ inc/ translation.inc user/ forum_index.php project_sample/ project.inc David 25 Jan 2009 - client: don't request work for a resource if it has no shortfall. - client and server: get rid of coproc_cuda global. client/ client_state.cpp,h work_fetch.cpp,h lib/ coproc.cpp,h sched/ handle_request.cpp sched_send.cpp server_types.cpp,h Rom 26 Jan 2009 - MGR: Don't use wxT() to describe parameters passed to GUI RPCs. clientgui/ BOINCClientManager.cpp David 26 Jan 2009 - client: if we're doing an RPC (for whatever reason) to a non-CPU-intensive project without a job, ask for one. client/ work_fetch.cpp Charlie Jan 26 2009 - MGR: In CBOINCClientManager::StartupBOINCCore() allow time for Client to start up, to avoid repeated attempts which put spurious messages "Another instance Another instance of BOINC is running" in stderrdae.txt. clientgui/ BOINCClientManager.cpp David 27 Jan 2009 - client: change the LTD policy so that 1) net adjustment for eligible projects is zero; 2) max LTD is zero - scheduler: fix msgs so disk size is shown in GB client/ work_fetch.cpp sched/ sched_send.cpp Eric K 27 Jan 2009 - SEA: Fixed problems building SEA - Manager: Fixed missing includes when building manager on unix. configure.ac packages/ generic/ sea/ Makefile.am make-tar.sh clientgui/ BOINCClientManager.cpp David 27 Jan 2009 - scheduler: in get_app_version(), if we previously sent a CUDA app, but we don't need to send any more CUDA jobs, delete the BEST_APP_VERSION record and look for another app version. This lets the scheduler send both CUDA and CPU app versions for a given app in a single RPC. client/ work_fetch.h sched/ sched_send.cpp David 27 Jan 2009 - client: if we're making an RPC to a project because of user request, clear the resource backoff times so that we potentially can ask the project for work. client/ cs_scheduler.cpp work_fetch.cpp Eric K 27 Jan 2009 - Manager: fixes to allow compilation on compilers that don't allow string concatenation within the _() macro. clientgui/ WelcomePage.cpp ProxyInfoPage.cpp David 27 Jan 2009 - lib: comment out perror()s in connection code. lib/ gui_rpc_client.cpp David 27 Jan 2009 - client: remove the "deadlines_missed" and "overworked" clauses from RSC_WORK_FETCH::choose_project() client/ work_fetch.cpp,h David 27 Jan 2009 - scheduler: don't count host as reliable if avg_turnaround is zero - client: restore notion of overworked; if a project is overworked for a resource R, don't fetch work for R unless there are idle instances client/ work_fetch.cpp,h sched/ sched_send.cpp David 28 Jan 2009 - GUI RPC: the "get all projects" RPC now also returns account managers lib/ gui_rpc_client_ops.cpp gui_rpc_client.h Charlie Jan 28 2009 - GUI RPC: Fix compiler warning (missing return value). lib/ gui_rpc_client_ops.cpp Rom Jan 29 2009 - MGR: Provide a way for skin creators to suppress error messages for missing resources. clientgui/ SkinManager.cpp Rom Jan 29 2009 - MGR: Save and Restore the last email address/user id used to attach to a project or account manager clientgui/ AccountInfoPage.cpp David 29 Jan 2009 - web: anywhere we show info about a host, show its GPUs too - web: add script to parse GPU completed-job log and generate summary data; also add page to display this data. html/ inc/ host.inc ops/ analyze_coproc_log.php user/ hosts_user.php show_coproc.php David 29 Jan 2009 - client: if user requests RPC, do it even if project is backed off - manager: show backoff interval correctly client/ cs_scheduler.cpp work_fetch.cpp clientgui/ DlgItemProperties.cpp David 29 Jan 2009 - scheduler: get effective RAM sizes and running fraction just once sched/ sched_send.cpp server_types.h David 29 Jan 2009 - client: update LTD correctly client/ work_fetch.cpp Rom 29 Jan 2009 - MGR: Add a virtual list box to display available account managers. clientgui/ AccountManagerInfoPage.cpp, .h AccountManagerProcessingPage.cpp AccountManagerPropertiesPage.cpp ProjectInfoPage.cpp, .h WizardAccountManager.cpp lib/ gui_rpc_client_ops.cpp Rom 29 Jan 2009 - MGR: Filter project list so that it shows only projects supported by the core client. clientgui/ ProjectInfoPage.cpp, .h Charlie Jan 29 2009 - MGR: call UpdateSelection() from OnListRender() instead of from RestoreSelections(). Fixes #837. clientgui/ BOINCBaseView.cpp Charlie Jan 30 2009 - MGR: Suppress Skin Manager error messages by default; enable them only if the Manager is launched from the command line with an argument -c or --checkskins. clientgui/ BOINCGUIApp.cpp, .h SkinManager.cpp, .h David 30 Jan 2009 - Work fetch / scheduler: There are two mechanisms to prevent the scheduler from sending jobs that won't finish by their deadline. Simple mechanism: The client sends the interval x for which CPUs are projected to be saturated. Given a job with estimated duration y, the scheduler doesn't send it if x + y exceeds the delay bound. If it does send it, x is incremented by y. Complex mechanism: Client sends workload description. Scheduler does EDF simulation, sees if deadlines are missed. The only project using this AFAIK is BOINC alpha test. Neither of these mechanisms takes coprocessors into account, and as a result jobs could be sent that are doomed to miss their deadline. This checkin adds coprocessor awareness to the Simple mechanism. Changes: Client: compute estimated delay (i.e. time until non-saturation) for coprocessors as well as CPU. Send them in scheduler request as part of coproc descriptor. Scheduler: Keep track of estimated delays separately for different resources - client: fixed bug that computed CPU estimated delay incorrectly - client: the work request (req_secs) for a resource is the min of the project's share and the shortfall. client/ cs_scheduler.cpp rr_sim.cpp work_fetch.cpp,h html/inc/ translation.inc lib/ coproc.cpp,h sched/ sched_send.cpp server_types.cpp,h David 30 Jan 2009 - client: computation of # idle CUDA instances was wrong client/ rr_sim.cpp David 30 Jan 2009 - scheduler: show message whether miss or meet deadline html/user/ show_coproc.php top_users.php sched/ sched_send.cpp David 30 Jan 2009 - client: tweak work fetch messages - client: buffer 2000 messages instead of 1000 client/ client_msgs.cpp work_fetch.cpp lib/ coproc.cpp David 30 Jan 2009 - client: work fetch fixes client/ work_fetch.cpp scheduler_op.cpp David 31 Jan 2009 - client: there was a problem with how the round simulator worked in the presence of coprocessors. The simulator maintained per-project queues of pending jobs. When a job finished (in the simulation) it would get one or more jobs from that project's pending queue. The problem: this could cause "holes" in the scheduling of GPUs, and produce an erroneous nonzero shortfall for GPUs, leading to infinite work fetch. The solution: maintain a separate (per-resource, not per--project) queue of pending coprocessor jobs. When a coprocessor job finishes, start pending jobs from the queue for that resource. Another change: the simulator did strict reservation of coprocessors. If there are 2 instances of CUDA, and a 1-instance job is running in the simulation, it wouldn't start an additional 2-instance job. This also can cause erroneous nonzero shortfalls. So instead, schedule coprocessors like CPUs, i.e. saturate them. This can cause distorted completion time estimates, but it's better than infinite work fetch. client/ client_types.cpp,h rr_sim.cpp,h work_fetch.cpp,h David 1 Feb 2009 - client: code cleanup client/ rr_sim.cpp,h work_fetch.cpp,h David 2 Feb 2009 - client: code cleanup client/ rr_sim.cpp,h work_fetch.cpp,h David 2 Feb 2009 - Manager: change terms for STD, LTD - web: change script that locks old threads to exempt team forums clientgui/ DlgItemProperties.cpp html/ops/ autolock.php David 3 Feb 2009 - client: fix bug that caused infinite sched RPCs if project down client/ cs_scheduler.cpp scheduler_op.cpp Rom 3 Feb 2009 - SCROPENGL: Checkin the files needed for the new OpenGL based BOINC screensaver. clientscr/ boinc_ss_opengl.h boinc_ss_opengl.rc screensaver_opengl.cpp screensaver_opengl.h win_build/ boinc.sln boinc_ss_opengl.vcproj David 3 Feb 2009 - renamed boinc_ss_opengl to ss_app David 3 Feb 2009 - GUI RPC: made password file read into function - lib: minimized FCGI library client/ boinc_cmd.cpp file_names.h lib/ gui_rpc_client.cpp,h common_defs.h Makefile.am Charlie Feb 4 2009 - SS: Begin work on upgrading screensaver coordinator for new functionality: - add filenames for ss config file and default OpenLG ss executable - add sandbox security support for these 2 files. client/ check_security.cpp file_names.h clientgui/ mac/ SetupSecurity.cpp mac_build/ Mac_SA_Secure.sh Rom 5 Feb 2008 - MGR: Display all projects in the project list but disable the text control is the project doesn't list a supported platform. If the user clicks on it display a message box stating that once attached the user may not get any work. clientgui/ AccountManagerInfoPage.cpp ProjectInfoPage.cpp, .h ProjectListCtrl.cpp, .h Charlie Feb 5 2009 - SS: Implement basic new functionality in screensaver coordinator. - Note: this is tested on Mac only at this point. - SS: Add ss_app to XCode Project, with a temporary icon. client/ check_security.cpp file_names.h clientscr/ screensaver.cpp, .h mac_app_icon.h (added) Mac_Saver_Module.h screensaver_win.h lib/ common_defs.h mac_build/ boinc.xcodeproj/ project.pbxproj David 5 Feb 2009 - manager: use sprintf() instead of WxString::Printf() when copying messages to clipboard, and use tab instead of | NOTE TO ROM: use WxWidgets features only where necessary. E.g., for a time that's not going to be displayed, use double instead of WxDateTime clientgui/ ViewMessages.cpp Rom 5 Feb 2009 - MGR: Back out David's change which broke clipboard functionality on Linux. Take care of the real performance problem with copying 20000+ records to the clipboard in a Debug build by pre-allocating the buffer. clientgui/ ViewMessages.cpp, .h David 5 Feb 2009 - client: redefine "overworked" as debt < -1.5 * work_buf * cpu_sched_period - web: on team page, link to cross-project team stats sites api/ graphics2_win.cpp client/ work_fetch.cpp html/ inc/ stats_sites.inc team.inc user/ team_display.php Rom 5 Feb 2009 - MGR: On newer versions of the wxWidget framework the project list wasn't being properly sized, so create it with a fixed size. clientgui/ ProjectListCtrl.cpp David 5 Feb 2009 - client: when accounting job elapsed time, ignore intervals longer than 10 secs; that could only happen if the client or host was suspended/hibernated. - client: in adjust_debts(), ignore intervals longer than 2*work fetch period, not 2*CPU sched period. adjust_debts() is called from work fetch. client/ app_control.cpp client_state.h cpu_sched.cpp cs_scheduler.cpp work_fetch.cpp David 5 Feb 2009 - web: added BOINCstats to list of team stats sites html/ inc/ stats_sites.inc team.inc David 5 Feb 2009 - web: add links to cross-project host stats sites (currently just boincstats) html/ inc/ hosts.inc stats_sites.inc util.inc user/ hosts_user.php David 5 Feb 2009 - client: if time intervals for debt adjustment or job elapsed time are negative, ignore (must be clock reset) client/ app_control.cpp cpu_sched.cpp David 5 Feb 2009 - web: must have a DB connection before calling mysql_real_escape_string() html/inc/ boinc_db.inc David 5 Feb 2009 - web: add another team stats link - client: if ncpus is zero in cc_config.xml, honor it. client/ cpu_sched.cpp log_flags.cpp html/inc/ stats_sites.inc team.inc David 5 Feb 2009 - client: it the state file or an RPC reply has an app version using a coprocessor we don't know about, ignore it (and all results using that app_version will be flushed). This deals with the situation where we have some GPU jobs, but the GPU card is removed (previously this resulted in a crash). This requires some code shuffling so that we check for coprocessors before reading state file. client/ client_types.cpp,h client_state.cpp cs_scheduler.cpp cs_statefile.cpp David 5 Feb 2009 - screensaver: flesh out new SS a bit clientscr/ ss_app.cpp Charlie Feb 5 2009 - SS: Continue work on screensaver coordinator. - SS: Fix ss_app compile errors on Mac. clientscr/ screensaver.cpp mac_saver_module.cpp Mac_Saver_Module.h screensaver_win.h ss_app.cpp mac_build/ boinc.xcodeproj/ project.pbxproj David 5 Feb 2009 - web: fix bug in cached user page stuff from 12/29/08 client/ time_stats.cpp html/ inc/ pm.inc user.inc user/ show_user.php Charlie Feb 5 2009 - SS: Screensaver coordinator reads ss_config.xml file. - SS: If coordinator runs default screensaver during science phase because no science graphics are available, then shorten the next default graphics phase by that much time. clientscr/ screensaver.cpp, .h Mac_Saver_Module.h screensaver_win.h ss_config.xml (added) David 6 Feb 2009 - web: don't show x-project links for anonymous hosts; fix &bull's html/inc/ host.inc user.inc Rom 7 Feb 2009 - MGR: fix build break for GCC based compilers. clientgui/ ProjectInfoPage.cpp David 8 Feb 2009 - web: remove around user links; doesn't play well with long user names html/inc util.inc David 9 Feb 2009 - client: all scheduler RPCs except user request are subject to backoff. - client: if a project-requested RPC doesn't return work, don't do resource backoff. - client: if a user-requested scheduler RPC errors out, clear the request client/ cs_scheduler.cpp scheduler_op.cpp work_fetch.cpp Charlie 10 Feb 2009 - SS: Fix new screensaver coordinator to work properly on Windows. clientscr/ Mac_Saver_Module.h screensaver.cpp screensaver_win.h David 10 Feb 2009 - client: add SCHEDULER_OP::rpc_failed(); this gets called when the op fails, either at initialization or later on; it clears the project's sched_rpc_pending flag if needed. This fixes a bug that caused user-requested RPCs to retry every 10 seconds when the network is down. - client: if debt-adjust period is too long, reset accounting. Otherwise we'll get this infinitely. - API: all optional alpha argument to TEXTURE_DESC::draw() api/ gutil.cpp,h client/ cpu_sched.cpp file_xfer.cpp gui_http.cpp http_curl.cpp,h scheduler_op.cpp,h clientscr/ ss_app.cpp David 10 Feb 2009 - client: if master file doesn't have URLs, clear RPC request client/ work_fetch.cpp cs_scheduler.cpp scheduler_op.cpp David 10 Feb 2009 - client: show proxy info correctly on startup - client: fix minor bug that produced spurious adjust debt interval too long messages when zero projects client/ client_state.cpp cpu_sched.cpp cs_scheduler.cpp Charlie 11 Feb 2009 - SS: Fix new screensaver coordinator sandbox permissions. - ss_app: Replace temporary icon with standard BOINC icon. - ss_app: Fix compiler warning. - lib: add time stamps to BOINCTRACE on non-Windows systems. client/ check_security.cpp clientgui/ mac/ SetupSecurity.cpp clientscr/ mac_app_icon.h lib/ diagnostics.cpp mac_build/ Mac_SA_Secure.sh David 11 Feb 2009 - client: change the formula for debt update so that largest debt among eligible projects tends towards zero - client: change definition of "overworked"; debt must be < 1 day client/ work_fetch.cpp David 11 Feb 2009 - client: change garbage collection so that an app version is deleted only if there's another version *of the same plan class* with a higher version number client/ client_state.cpp David 11 Feb 2009 - client and API: eliminate dynamically-allocated parts of GLOBAL_PREFS. This fixes a double-free bug in the API. lib/ prefs.cpp,h David 11 Feb 2009 - boinc_zip: put null arg at end of argv. Fixes crashing bug. From Michael Tyka. zip/ boinc_zip.cpp unzip/ unzip.c Rom 11 Feb 2009 - MGR: Check to see if the app version pointer is legit before attempting to use it. clientgui/ ViewWork.cpp David 11 Feb 2009 - lib: implement APP_INIT_DATA::copy() with assignments instead of memcpy(). This protects against any future double-free bugs. lib/ app_ipc.h,cpp Rom 11 Feb 2009 - MGR: Remove remaining UI thread calls to setlocale which could confuse the parsing system or vise versa. clientgui/ AdvancedFrame.cpp DlgItemProperties.cpp ViewWork.cpp David 11 Feb 2009 - client, API: populate APP_INIT_DATA::hostid. Remove userid and teamid fields, since the client doesn't know these. client/ app_start.cpp lib/ app_ipc.cpp,h Charlie 11 Feb 2009 - SS: Graphics executables need a Mac icon only if they can be run in a window, to allow the user to bring it to the front or control it. Since the new boincscr app runs only as a screensaver, the Dock is not visible when it is running so there is no reason to have an icon. So restore the previous permissions settings (non-writable). - ss_app: Remove code which adds a Mac icon. - ss_app: Fix compiler warning. - ss_app: Change Windows build executable file name to boincscr.exe. client/ check_security.cpp clientgui/ mac/ SetupSecurity.cpp clientscr/ mac_app_icon.h (deleted) mac_build/ boinc.xcodeproj/ project.pbxproj Mac_SA_Secure.sh win_build/ ss_app.vcproj Charlie 12 Feb 2009 - SS: Continue refining screensaver coordinator logic. clientscr/ screensaver.cpp David 12 Feb 2009 - client: debt_eligible() was returning false if the backoff was max. This can lead to a situation where a project never gets work. Remove that clause. client/ work_fetch.cpp David 12 Feb 2009 - client, web: add preference for not using GPU while computer busy client/ cpu_sched.cpp html/inc/ prefs.inc lib/ prefs.cpp,h David 12 Feb 2009 - client: bug fix for GPU pref client/ cpu_sched.cpp sim.h lib/ prefs.cpp Charlie 13 Feb 2009 - ss_app: Under sandbox security, set boincscr permissions the same as for BOINC Manager: setgid to boinc_master but do not setuid; this allows the screensaver coordinator to kill boincscr but still gives boincscr access to GUI RPC password file and so to all GUI RPCs. - SS: On Windows, add code to get paths to BOINC data and executable directories from Windows registry; expects boincscr in BOINC executable directory and ss-config.xml in BOINC data directory. client/ check_security.cpp clientgui/ mac/ SetupSecurity.cpp clientscr/ screensaver.cpp screensaver_win.cpp,.h mac_build/ Mac_SA_Secure.sh David 13 Feb 2009 - GUI RPC: "get prefs" RPC was messed up by yesterdays's checkin; also, change all bools to 0|1 rather than lib/ prefs.cpp David 13 Feb 2009 - Manager: add GPU preference to advanced prefs dialog clientgui/ DlgAdvPreferences.cpp DlgAdvPreferencesBase.cpp,h David 13 Feb 2009 - client: fix bug where master fetch failure doesn't clear request flag, leading to infinite retry without backoff client/ scheduler_op.cpp,h David 13 Feb 2009 - client: fix bug in time-of-day limit prefs (both CPU and network) lib/ prefs.cpp,h David 13 Feb 2009 - GUI RPC: add master_url and local_revision to PROJECT_CONFIG struct. The former will allow the Manager to verify project URLs lib/ gui_rpc_client_ops.cpp gui_rpc_client.h Charlie 13 Feb 2009 - SS: On Windows, make path strings Unicode compatible in ss coordinator. clientscr/ screensaver.cpp Rom 16 Feb 2009 - WINBUILD: Remove ReleaseSigned build depends. - WINBUILD: Add NVAPI to the list of static libraries to include during the build process. Driver version detection. / David 16 Feb 2009 - client: detect NVIDIA driver version number, show it on startup, and include it with CUDA coprocessor descriptor in request msgs lib/ coproc.cpp,h win_build/ libboinc.vcproj Charlie 16 Feb 2009 - client: fix compile break on Mac. lib/ coproc.cpp David 16 Feb 2009 - client: add a debug flag for seeing changes in DCF - scheduler: add a limit on NVIDIA driver version for CUDA apps (default 17500) client/ work_fetch.cpp log_flags.cpp,h cpu_sched.cpp sched/ sched_send.cpp sched_plan.cpp,h David 17 Feb 2009 - client: don't ignore jobs with fraction_done=1 (but still running) in RR simulation; we may need to mark them as deadline miss. - web: replace & with & various places client/ rr_sim.cpp html/ inc/ prefs.inc results.inc stats_sites.inc ops/ update_profile_pages.php user/ edit_forum_preferences.php edit_passwd_form.php hosts_user.php pm.php prefs_remove.php profile_menu.php top_hosts.php top_teams.php top_users.php David 18 Feb 2009 - client: if "no more work" checked, don't request more work (duh!) client/ work_fetch.cpp tools/ make_project David 18 Feb 2009 - client: adjust debts at least every minute. This fixes a bug that can cause debts to NEVER get updated. - client: added "abort_jobs_on_exit" feature (available by --abort_jobs_on_exit cmdline or in cc_config.xml). If set, when the client is exited by user request (this includes signals on Unix) it marks all pending jobs as aborted, and does a scheduler RPC to all projects with jobs. When these are completed the client exits. This is useful when BOINC is being used on grids where it is wiped clean after each run. client/ client_state.cpp,h cpu_sched.cpp cs_cmdline.cpp cs_prefs.cpp cs_scheduler.cpp log_flags.cpp main.cpp work_fetch.cpp lib/ error_numbers.h David 18 Feb 2009 - web tweaks html/ inc/ host.inc result.inc user/ workunit.php result.php David 19 Feb 2009 - scheduler: make host.p_features available to app_plan() db/ boinc_db.h sched/ server_types.cpp David 19 Feb 2009 - web: in lists of tasks, give the option of showing names instead of IDs html/ inc/ host.inc result.inc user/ results.php workunit.php David 19 Feb 2009 - client: add more info to messages client/ work_fetch.cpp David 19 Feb 2009 - client: don't complain that master URLs differ if it's only in case client/ cs_scheduler.cpp Charlie 19 Feb 2009 - screensaver: Implement --test and --retry_connect command-line arguments as requested by Rom. clientscr/ ss_app.cpp Charlie 20 Feb 2009 - screensaver: Implement new screensaver coordinator logic as requested by Rom: If the coordinator cannot connect to the core client: - coordinator retries connecting every 10 seconds - coordinator launches the default graphics application with the argument --retry_connect, so the default graphics app will continue running and will also retry connecting every 10 seconds. If the coordinator successfully connected to the core client, it launches the default graphics application without the argument --retry_connect. If the default graphics application can't connect, it will return immediately with the exit code ERR_CONNECT. In that case, the coordinator assumes the default graphics app was blocked by a firewall and so the coordinator will run only project (science) graphics. clientscr/ mac_saver_module.cpp Mac_Saver_Module.h screensaver.cpp,.h screensaver_win.cpp,.h ss_app.cpp Charlie 20 Feb 2009 - lib: Fix build break on Windows. win_build/ libboinc.vcproj libboinc_staticcrt.vcproj David 20 Feb 2009 - client: if a project is at max backoff for a resource, stop accumulating debt if it's at or around zero. This prevents other projects from being driven unboundedly negative. - client: if the number of overworked projects exceeds the number of device instances, clear debts; this indicates that an earlier client was buggy and produced bad debt values. client/ client_state.h cpu_sched.cpp sim.h work_fetch.cpp,h David 20 Feb 2009 - client: new work-fetch policy: 1) if an instance is idle, get work from highest-debt project, even if it's overworked. 2) if resource has a shortfall, get work from highest-debt non-overworked project 3) if there's a fetchable non-overworked project with no runnable jobs, get from from the highest-debt one. (each step is done first for GPU, then CPU) Clause 3) is new. It will cause the client to get jobs for as many projects as possible, even if there is no shortfall. This is necessary to make the notion of "overworked" meaningful (otherwise, any project with long jobs can become overworked). It also maintains as much variety as possible (like pre-6.6 clients). Also (small bug fix) if a project is overworked for resource R, request work for R only in case 1). client/ work_fetch.cpp,h David 20 Feb 2009 - client: remove the "debt repair" mechanism added earlier today. There are situations where multiple projects can legitimately have large negative LTD on a uniprocessor. Instead... - client: add option to cc_config.xml client/ log_flags.cpp,h work_fetch.cpp,h David 20 Feb 2009 - client: fix bug that can cause no GPU jobs to be scheduled even when a GPU is free client/ cpu_sched.cpp Charlie 20 Feb 2009 - Update various source files to GPL 3. Note: I've only updated those files which I created or have been maintaining. There are many others which still have the GPL 2.1 license. clientgui/ mac/ browser_safari.mm MacGUI.pch SystemMenu.m res/ macbadgemask.xpm macdisconnectbadge.xpm clientscr/ Mac_Saver_ModuleView.m screensaver.cpp mac_build/ buildcurl.sh buildjpeg.sh buildc-ares.sh BuildMacBOINC.sh buildWxMac.sh Make_BOINC_Service.sh Mac_SA_Insecure.sh Mac_SA_Secure.sh setupForBOINC.sh mac_installer/ release_boinc.sh release_GridRepublic.sh make_GridRepublic.sh samples/ example_app/ MakeMacExample.sh David 20 Feb 2009 - add a few GPL 3 notices clientsrc/ screensaver.cpp lib/ coproc.h boinc_fcgi.cpp,h David 21 Feb 2009 - client: tweak the LTD calculation so that the largest debt always tends towards zero client/ work_fetch.cpp David 22 Feb 2009 - client: print message if downloaded file has wrong size - client: associate file xfer messages with a project; fixes #848 client/ cs_files.cpp file_xfer.cpp pers_file_xfer.cpp David 22 Feb 2009 - client: more instances of showing project with message. Fixes #848 client/ app_start.cpp app_graphics.cpp file_xfer.cpp cs_account.cpp cs_scheduler.cpp scheduler_op.cpp app.cpp app_control.cpp Rom 22 Feb 2009 - WINSCR: Fix the BOINC text displayed is the screensaver control panel applet - WINSCR: Get rid of the 'Up to 5 second wait' for the data thread to terminate. Force terminate the thread and clean up the graphics app in a clean-up routine. Forcing the user to wait when they return to the system isn't a good idea. - WINSCR: Fix screensaver issue where the screensaver locks up when the graphics application deadlocks for one reason or another. Create two new threads: 1. Monitor system for keyboard and mouse events. 2. Shuffle window z-order positions if needed. The keyboard/mouse event monitor is isolated from either the core client getting stuck in a loop and not returning the results of an RPC or the window shuffling code which can get stuck if the graphics application dead locks. The window shuffle code is isolated due to the BroadcastSystemMessage() API using something akin to SendMessage() which waits for a return value from the target windows winproc. If a graphics application deadlocks for one reason or another it'll cause the thread to stall. This isn't terminal and so we just wait for the next time the data thread chooses a new application and terminates the old one which will cause the thread to resume. This should resolve all outstanding issues with the screensaver not exiting when the mouse or keyboard is used. clientscr/ boinc_ss.rc screensaver.cpp screensaver_win.cpp, .h David 22 Feb 2009 - client: fix work-fetch bug that caused infinite fetch; cleanup/reorganization of work fetch logic client/ work_fetch.cpp,h David 22 Feb 2009 - client: work-fetch bug fix: if we're fetching work for a starved project, it most have no runnable jobs for ANY resource. - client: work-fetch bug fix: when setting requests in the shortfall case, don't request anything if project is backed off or overworked for the resource. client/ rr_sim.cpp work_fetch.cpp,h Charlie 22 Feb 2009 - screensaver: Code consolidation, fix bug terminating default graphics application on screensaver exit. clientscr/ screensaver.cpp David 22 Feb 2009 - scheduler: include driver version in the CUDA description string storing in the database; - web: display the above client/ cpu_sched.cpp work_fetch.h html/inc/ host.inc lib/ coproc.cpp Charlie 22 Feb 2009 - screensaver: Fix a bug I introduced during code consolidation. clientscr/ screensaver.cpp screensaver_win.cpp Rom 24 Feb 2009 - WINSCR: Remove the progress indication code from the coordinator. It is now handled by the default screensaver app. - WINSCR: Clean-up some of the thread cleanup logic. clientscr/ screensaver_win.cpp Rom 25 Feb 2009 - WINSCR: Remove unneeded header files - SCR: Shuffle headers around so that it'll build on both Windows and Mac without having to put in duplicate entries. clientscr/ screensaver.cpp David 25 Feb 2009 - client: fix bugs in "abort_jobs_on_exit" feature: - clear project backoffs when start abort sequence - don't back off projects if in abort sequence client/ client_state.cpp main.cpp scheduler_op.cpp David 25 Feb 2009 - boinccmd: fix bug in --set_proxy_settings command (it wasn't setting the "use_XXX" flags). Fixes #776 - client: you can now include a element in your cc_config.xml options. TODO: the whole proxy info thing needs an overhaul: - no separate "use_XXX" flags; non-empty http_server_name implies using HTTP proxy, etc. - merge PROXY_INFO and GR_PROXY_INFO classes - use XML_PARSER for parsing - no PROXY_INFO element in HTTP_OP; just use gstate.proxy_info client/ boinc_cmd.cpp http_curl.cpp lib/ parse.h proxy_info.cpp Rom 25 Feb 2009 - MGR: Remove the /s parameter from the argument list on Linux until we know it is supported. Fixes #615 clientgui/ BOINCGUIApp.cpp Eric K 25 Feb 2009 - Added checks for net/*.h, arpa/*.h, netinet/*.h and code to figure out which of those files to include - Modified MAC address check to work on some non-Linux unixes. (mac_address.cpp) - Added suggested change to "already attached to project" checking. (ProjectInfoPage.cpp) - changed includes of standard c header files to their c++ equivalents (i.e. replaced with ) for namespace protection. - replaced "using namespace std;" with more explicit "using std::function" in several files. - Fixed bug in checking whether the os is OS/2 and added conditional OS_OS2 to the build environment. (boinc_platform.m4,configure.ac) - Changed build environment to not use -nostandardlibs unless we are using G++ and static linkage is specified. (configure.ac) - Added makefiles and package building files for solaris CSW package manager. - Fixed bug with attempting to find login name using logname. (configure.ac) - Added ifdef HAVE_* protection around some include files commonly found in sys. - Added support for unified binary for x86_64/i686-pc-solaris. (cs_platforms.cpp) - generate_host_cpid() now uses MAC address on non-linux unix. (hostinfo_network.cpp) - Macro BOINC_SET_COMPILE_FLAGS now doesn't check gcc only flags on non-gcc compilers. (boinc_set_compile_flags.m4) - Library compiles no longer depend upon the library extension or require the library to be prefixed with lib. - More fixes for fcgi builds. - Added declaration of "struct ether_addr" and ether_ntoa(). Have not yet implemented ether_ntoa() for machines that don't have it, or where it is buggy. (unix_util.h) - Added FCGI::perror() which calls FCGI_perror(). (boinc_fcgi.{h,cpp}) - Fixed library Makefiles so that all required headers get installed. version.h configure.ac api/ boinc_api.cpp graphics2_unix.cpp gutil.cpp gutil.h gutil_text.cpp make_app_icon_h.cpp Makefile.am reduce_main.cpp texfont.cpp texture.cpp tgalib.h x_opengl.cpp client/ app.h app_start.cpp client_types.h cs_account.cpp cs_benchmark.cpp cs_cmdline.cpp cs_platforms.cpp cs_scheduler.cpp gui_rpc_server.cpp gui_rpc_server_ops.cpp hostinfo_network.cpp hostinfo_unix_test.cpp log_flags.h scripts/boinc-client.in setprojectgrp.cpp switcher.cpp clientgui/ ProjectInfoPage.cpp clientscr/ gfx_switcher.cpp lib/ boinc_fcgi.cpp boinc_fcgi.h boinc_win.h common_defs.h coproc.cpp crypt.h diagnostics.cpp filesys.cpp filesys.h gui_rpc_client.h gui_rpc_client_ops.cpp mac_address.cpp Makefile.am md5_file.cpp mem_usage.cpp mfile.cpp msg_queue.cpp msg_queue.h network.cpp parse.h procinfo_mac.cpp procinfo_unix.cpp shmem.cpp synch.cpp unix_util.cpp unix_util.h util.cpp m4/ boinc_platform.m4 boinc_set_compile_flags.m4 packages/ solaris/ CSW/ build_packages.sh Makefile.am boincclient/ boinc.1 boinc_client.1 boinc-client.conf boinc_cmd.1 boinccmd.1 depend Makefile.am pkginfo.in postinstall preinstall prototype.in boincdevel/ depend Makefile.am pkginfo.in prototype.in boinclibs/ depend Makefile.am pkginfo.in prototype.in boincmanager/ boinc_manager.1 boincmgr.1 depend Makefile.am pkginfo.in prototype.in boincserver/ Makefile.am sched/ census.cpp db_purge.cpp fcgiapp.h file_deleter.cpp file_upload_handler.cpp handle_request.cpp hr_info.cpp main.cpp Makefile.am message_handler.cpp sched_config.h sched_locality.cpp sched_send.cpp sched_timezone.cpp sched_util.cpp server_types.cpp time_stats_log.cpp time_stats_log.h transitioner.cpp validator.cpp tools/ dir_hier_move.cpp dir_hier_path.cpp kill_wu.cpp poll_wu.cpp updater.cpp zip/ Makefile.am David 25 Feb 2009 - client: if you put in global_prefs_override.xml, it should select the venue from the network prefs. Now it does. client/ gui_rpc_server.cpp cs_prefs.cpp David 25 Feb 2009 - API: file descriptor leak in obscure case. fixes #103 api/ texture.cpp Charlie 25 Feb 2009 - MGR: Fix compiler warning. - lib: Fix compiler error: Please do not use unmatched single quotes (I changed don't to don`t in #warning statement to fix this.) clientgui/ ProjectInfoPage.cpp lib/ mac_address.cpp David 25 Feb 2009 - scheduler: slight code cleanup sched/ server_types.h sched_*.cpp handle_request.cpp server_types.cpp David 25 Feb 2009 - client: make timeout values into #defines client/ (several).cpp David 26 Feb 2009 - client: tag messages with project where possible; fixes #852 - client: show fetch share rather than run share in wfd message client/ client_types.h work_fetch.cpp cs_prefs.cpp cs_scheduler.cpp cpu_sched.cpp David 26 Feb 2009 - client: abort jobs that are unstarted and past deadline - client: abort runaway jobs based on elapsed time instead of CPU time. Specifically, abort jobs for which elapsed time > WU.rsc_fpops_bound / app_version.flops This policy works for 1) GPU jobs (which may use little CPU time) 2) jobs that run but because of bugs use little CPU time (e.g., because they're sleeping) whereas the old policy didn't. client/ client_state.cpp,h app.cpp,h app_control.cpp lib/ error_numbers.h str_util.cpp David 26 Feb 2009 - client: skip the above elapsed-time check for non-CPU-intensive jobs client/ app_control.cpp Rom 26 Feb 2009 - MGR: Remove the ability to display graphics on a remote computer, or from a remote computer on *nix machines using v5 graphics. fixes #674 clientgui/ ViewWork.cpp David 26 Feb 2009 - client: fix bug where if a GPU job is running, and a 2nd GPU job with an earlier deadline arrives, neither job is executed ever. Reorganized things so that scheduling of GPU jobs is done independently of CPU jobs. The policy for GPU jobs: - always EDF - jobs are always removed from memory, regardless of checkpoint (GPU memory is not paged, so it's bad to leave an idle app in memory) client/ app.cpp,h app_start.cpp client_state.h cpu_sched.cpp sched/ handle_request.cpp David 26 Feb 2009 - client: shuffle the startup code to avoid showing wrong prefs info on first-time startup. - client: don't do an RPC until we've done CPU benchmarks. We need the benchmark values to fill in app_version.flops client/ client_state.cpp cs_scheduler.cpp David 26 Feb 2009 - screensaver: show correct info if CPU throttling; show correct window title; show "no projects" message. api/ graphics2.h graphics2_win.cpp clientscr/ ss_app.cpp David 26 Feb 2009 - boinccmd: make --get_messages output more readable client/ boinc_cmd.cpp Charlie 27 Feb 2009 - screensaver: remove from the coordinator error codes and messages which will now be handled by default graphics app, add new error codes for problems in default graphics app. - Mac screensaver: improve logic to stop drawing BOINC logo when a graphics app covers coordinator window. clientscr/ mac_saver_module.cpp Mac_Saver_Module.h Mac_Saver_ModuleView.m, .h screensaver.cpp, .h screensaver_win.h David 27 Feb 2009 - manager: fix roundoff error in Advanced Prefs; fixes #613 clientgui/ DlgAdvPreferences.cpp Rom 27 Feb 2009 - MGR: Make CTRL-SHIFT-A the accelerator in the simple GUI that switches back to the advanced view. refs #147 clientgui/ sg_BoincSimpleGUI.cpp, .h David 27 Feb 2009 - client: fix bug that could cause scheduler RPC to ask for work inappropriately, and tell user that it wasn't asking for work. Here's what was going on: There are two different structures with work request fields (req_secs, req_instances, estimated_delay): COPROC_CUDA *coproc_cuda and RSC_WORK_FETCH cuda_work_fetch. WORK_FETCH::choose_project() copied from cuda_work_fetch to coproc_cuda, but only if a project was selected. WORK_FETCH::clear_request() clears cuda_work_fetch but not coproc_cuda. Scenario: - a scheduler op is made to project A requesting X>0 secs of CUDA - later, a scheduler op is made to project B for reason other than work fetch (e.g., user request) - choose_project() doesn't choose anything, so the value of coproc_cuda->req_secs remains X - clear_request() is called but that doesn't change *coproc_cuda Solution: work-fetch code no longer knows about internals of COPROC_CUDA and is not responsible for settings its request fields. The copying of request fields from RSC_WORK_FETCH to COPROC is done at a higher level, in CLIENT_STATE::make_scheduler_request() Additional bug fix: estimated_delay wasn't being cleared in some cases. client/ cs_scheduler.cpp scheduler_op.cpp work_fetch.cpp David 27 Feb 2009 - client: RR sim FLOPS estimate for GPU jobs should reflect fraction of time BOINC is running. client/ rr_sim.cpp work_fetch.cpp David 1 Mar 2009 - client: if we're going to do a scheduler RPC for reasons other than work fetch (e.g., user request, project request) temporarily clear resource backoffs while deciding whether to request work. The backoffs are there only to delay RPCs, and we're going an RPC anyway. client/ work_fetch.cpp David 1 Mar 2009 - web: link to 3rd-party signature sources on community prefs page html/ inc/ stats_sites.inc user/ edit_form_preferences_form.php David 1 Mar 2009 - web: fix buggy changeset 17278 html/user/ edit_form_preferences_form.php David 1 Mar 2009 - manager and GUI RPC: always show resource debt and backoff even if zero; also show backoff interval clientgui/ DlgItemProperties.cpp lib/ gui_rpc_client.h gui_rpc_client_ops.cpp David 2 Mar 2009 - fix bugs in the above. - GUI RPC: remove unused items from get_state RPC: host_info, time_stats, net_stats, host_venue NOTE: any change to a GUI RPC struct requires changing AsyncRPC.cpp. This is undesirable. client/ cs_statefile.cpp clientgui/ AsyncRPC.cpp lib/ gui_rpc_client_ops.cpp David 2 Mar 2009 - Manager: scheduling params are not defined for non-CPU-intensive projects; don't show them. clientgui/ DlgItemProperties.cpp Rom 2 Mar 2009 - Update to OpenSSL 0.9.8j for Win32 and Win64 openssl/ David 2 Mar 2009 - scheduler: replace choose_download_url_by_timezone with replace_download_url_by_timezone. From Bernd M. sched/ sched_timezone.cpp sched_config.cpp,h sched_send.cpp Rom 2 Mar 2009 - Update to LibCurl 7.19.3 for Win32 and Win64 curl/ David 2 Mar 2009 - scheduler/feeder: add option; lets you intermix locality and job-cache scheduling From Bernd M. - file_deleter: add --appid option sched/ feeder.cpp file_deleter.cpp handle_request.cpp sched_config.cpp,h sched_send.cpp David 2 Mar 2009 - scheduler: add and options From Bernd M. sched/ sched_config.cpp,h sched_locality.cpp Charlie 2 Mar 2009 - client: Revise Apple idle time detection for compatibility with OS 10.6. client/ hostinfo_unix.cpp lib/ hostinfo.h Charlie 3 Mar 2009 - Mac: Update libCurl to 7.19.4. mac_build/ buildcurl.sh HowToBuildBOINC_XCode.rtf setupForBOINC.sh boinc.xcodeproj/ project.pbxproj Charlie 3 Mar 2009 - WINSCR: fix an error I introduced. - Mac screensaver: logic to stop Data Management thread even if hung on an RPC. clientscr/ mac_saver_module.cpp screensaver.cpp, .h screensaver_win.cpp David 3 Mar 2009 - scheduler: add locality_scheduling arg to add_result_to_reply(); eliminate the need to diddle around with config.locality_scheduling. sched/ sched_array.cpp sched_assign.cpp sched_locality.cpp sched_resend.cpp sched_send.cpp,h David 3 Mar 2009 - scheduler: don't need to set wreq->infeasible_only in send_work() sched/ sched_send.cpp Rom 3 Mar 2009 - Update to LibCurl 7.19.4 for Win32 and Win64 curl/ David 3 Mar 2009 - client: fix message: "idle instance" => "starved" client/ work_fetch.cpp David 3 Mar 2009 - manager: when filtering messages by project, show messages not tagged with a project (fixes #852) - web: show X-project stats links as icons clientgui/ ViewMessages.cpp html/ inc/ host.inc team.inc stats_sites.inc user/ img/ freedc_icon.png boincstats_icon.png white.css David 3 Mar 2009 - client: change garbage-collect logic. old: reference-count files involved in a PERS_FILE_XFER new: if a PERS_FILE_XFER refers to an unreferenced file, delete it (and the associated FILE_XFER and HTTP_OP if present) May fix #366 client/ client_state.cpp David 4 Mar 2009 - client: run CPU benchmarks and contact ref site if platform changes client/ client_state.cpp David 4 Mar 2009 - client: show duration estimates for CPU and CUDA separately - web: reverse Reply and Delete buttons in private msg page fixes #858 client/ cs_scheduler.cpp html/user/ pm.php David 4 Mar 2009 - client: get rid of CPU_PESSIMISM_FACTOR; it wasn't actually being used. - manager: compile fix for gcc4.4 (this works on my computer; Rom/Charlie, please verify) client/ rr_sim.cpp sim.h clientgui/common/ wxFlatNotebook.cpp David 4 Mar 2009 - client: don't allow coproc apps in app_info.xml. Otherwise we'll get stuck in a loop where the client asks for CPU work, and the scheduler sends jobs for what it thinks is a CPU app but is actually a coproc app. Eventually we should add coproc info to the app descriptions send in scheduler request, so that you can use anonymous platform for coproc apps. But let's wait on this. - scheduler: compile fix for gcc 4.4. Fixes #854 client/ cs_statefile.cpp sched/ sched_driver.cpp sched_util.cpp David 4 Mar 2009 - client: reorganize and improve the logic for deciding when to do a scheduler RPC: if user request or acct mgr request, ignore backoff and suspend via GUI; in all other cases honor both of these. client/ cs_scheduler.cpp scheduler_op.cpp David 4 Mar 2009 - scheduler: use simpler variables in HOST_USAGE sched/ server_types.cpp,h sched_send.cpp sched_plan.cpp David 5 Mar 2009 - scheduler: add support for anonymous-platform coproc apps. Old: although the request message contained all info about the app version (flops, coproc usage etc.) the server ignored this info, and assumed that all anonymous platform apps where CPU. With 6.6 client, this could produce infinite work fetch: - client uses anon platform, has coproc app - client has idle CPU, requests CPU work - scheduler sends it jobs, thinking they will be done by CPU app - client asks for more work etc. New: scheduler parses full info on anon platform app versions: plan class, FLOPS, coprocs. It uses this info to make scheduling decisions; in particular, if the request is for CUDA work, if will only send jobs that use a CUDA app version. The records it returns contain info (plan_class) that tells the client which app_version to use. This will work correctly even if the client has multiple app versions for the same app (e.g., a CPU version and a GPU version) sched/ handle_request.cpp server_types.cpp,h sched_send.cpp David 5 Mar 2009 - client: if using anonymous platform, ignore (and complain about) app versions in scheduler reply - client: when reporting anonymous platform apps in sched request, don't include s (not relevant to server) client/ client_types.cpp,h cs_scheduler.cpp cs_statefile.cpp David 5 Mar 2009 - scheduler: parse and return platform name in anon platform apps. Otherwise, if an app version has a platform different from the client's primary platform, the client won't find it. sched/ server_types.cpp,h David 5 Mar 2009 - manager: show version minor numbers as 0n clientgui/ ViewWork.cpp David 5 Mar 2009 - client: anon plaform app versions can specify coprocs client/ cs_statefile.cpp Rom 5 Mar 2009 - MGR: Remove previous implementations of the already attached to projects detection code. - MGR: Prevent the user from progressing beyond the project selection page if they are already attached to the project they are trying to attach to. Display a dialog box telling they are already attached to that project and to choose a different project. This skips a bunch of steps if they meant to attach to a different project. clientgui/ AlreadyAttachedPage.cpp, .h BOINCWizards.h ProjectInfoPage.cpp ProjectPropertiesPage.cpp, .h WizardAttachProject.cpp, .h win_build/ boincmgr_curl.vcproj Rom 5 Mar 2009 - MGR: Account for new error code returned by the CC in response to a get_project_config.php request. It was causing the wizards to throw a temp unavailable error page instead of the not a boinc project page. Fixes #640 clientgui/ AccountManagerPropertiesPage.cpp ProjectPropertiesPage.cpp Rom 5 Mar 2009 - MGR: Newer versions of the server-side software publish their master url in the response to the get_project_config.php request. If it exists use it over what was specified by the user. Fixes #259 clientgui/ AccountManagerProcessingPage.cpp ProjectProcessingPage.cpp David 5 Mar 2009 - scheduler: get work request parameters before resend_lost_jobs(); otherwise get NaNs for CPU fraction, etc. - scheduler: show reasons in English when send job aborts html/user/ top_hosts.php sched/ sched_send.cpp,h sched_resend.cpp handle_request.cpp David 5 Mar 2009 - scheduler: move all send-work setup stuff (including messages) into a function that's called before resend_lost_results() sched/ sched_send.cpp,h handle_request.cpp Rom 5 Mar 2009 - MGR: Saving and Restoring window diminisions is not a Mac only operation when starting up or shutting down the client. Increase the frequency of the auto-save state timer from 5 minutes to 5 seconds. Fixes #69, Fixes #735, Fixes #790, - MGR: Lengthen the connected to client status field. Fixes #632 - MGR: Properly update the connected to client status field even after a change to the simple view. Fixes #688 clientgui/ AdvancedFrame.cpp sg_BoincSimpleGUI.cpp, .h Rom 5 Mar 2009 - MGR: Don't display the Simple GUI 'Remove Project' menu item if it was attached via an account manager. Fixes #261 clientgui/ sg_StatImageLoader.cpp David 5 Mar 2009 - client: with anonymous platforms, app versions are identified by app/platform/version/plan-class, same as normal client/ client_state.cpp Rom 5 Mar 2009 - MGR: Set the dial-up and VPN connection list box to a static size so that a scroll bar will appear if the number of items exceeds the space to display them. Fixes #96 clientgui/ DlgOptions.cpp Charlie 5 Mar 2009 - Mac: Remove obsolete files AlreadyAttachedPage.cpp, .h from XCode project. - MGR: On Mac, revert to auto-save frequency of 5 minutes because: * The 3 bugs did not occur on the Mac, and * The saved info is written to a file on the Mac, but the file is not flushed to disk until the Manager is closed, so the extra auto-saves have no effect but only waste CPU cycles. clientgui/ AdvancedFrame.cpp mac_build/ boinc.xcodeproj/ project.pbxproj David 6 Mar 2009 - GUI RPC: the Jan 13 checkin removed some items from the get_state() reply which are not included in our client interface. However, it turns out that BoincView uses these items; put them back. - GUI RPC: set_debt() can set CUDA LTD as well as CPU client/ gui_rpc_server_ops.cpp cs_statefile.cpp David 6 Mar 2009 - scheduler: fix bugs in support for anonymous platform + coprocs (app versions don't have a around coproc elements, may an oversight but let's stick with it). Anyway, I think it's working now. - lib: remove "owner" array from COPROC. This was used in client to keep track of assignment of coprocessors to tasks, but we got rid of the reserve/free scheme. NOTE: this breaks the mechanism for passing --device N to apps; I'll have to do this another way. Stay tuned. client/ app_start.cpp cpu_sched.cpp lib/ coproc.cpp,h sched/ sched_array.cpp sched_send.cpp server_types.cpp Rom 6 Mar 2009 - MGR: Don't hide the main window after attaching to an account manager if we don't support the system tray on that platform. refs #844 clientgui/ AdvancedFrame.cpp David 6 Mar 2009 - client: add a new mechanism for assigning coproc instances to tasks, and passing them the corresponding --device N cmdline args. This fixes a bug introduced in 17402 (Feb 26) that broke the --device feature, presumably causing problems on systems with multiple GPUs. client/ app_start.cpp client_types.h lib/ coproc.h David 6 Mar 2009 - client: fix crash lib/ coproc.h Charlie 6 Mar 2009 - client: Fix compiler warning on Mac. client/ app_start.cpp David 6 Mar 2009 - scheduler: fix bugs that caused only 1 job to be sent sched/ sched_array.cpp sched_config.cpp,h sched_send.cpp,h sched_locality.cpp David 8 Mar 2009 - client, GUI RPC: put back in get_state reply; it's used by BoincView client/ cs_statefile.cpp Rom 8 Mar 2009 - MGR: Fix a long standing bug where the pie control in the disk usage tab was being created but a default pie part wasn't being added to the control. This caused the control to display black circles during window initialization on slower systems. This issue has been around since we started using the pie control based disk usage tab. clientgui/ ViewResources.cpp Rom 9 Mar 2009 - MGR: Set the window size through the window creation routine instead of calling SetSize() after the fact. It removes all the flicker out of the Advanced GUI. - MGR: Consolidate all the window position restore functionality for both the Simple GUI and Advanced GUI in BOINCGUIApp.cpp instead of having duplicate copies in each view. - MGR: Have the Advanced GUI remember position across restarts. - MGR: Create new window events that will save and restore window state for both GUIs. This avoids multiple UI updates. Each time you would change window size from within a OnShow or OnSize event it would spawn an update of its own. Sometimes certain controls would ignore the event because it believed it was already processing the event. clientgui/ AdvancedFrame.cpp, .h BOINCBaseFrame.cpp, .h BOINCGUIApp.cpp sg_BoincSimpleGUI.cpp, .h ViewStatistics.cpp win_build/ boincmgr_curl.vcproj Rom 9 Mar 2009 - MGR: Restore state even if we are not going to display the window. Otherwise when restoring from the system tray we'll end up on the resources tab. - MGR: Save state before exit. clientgui/ BOINCBaseFrame.cpp BOINCGUIApp.cpp Charlie 9 Mar 2009 - MGR: CBOINCBaseFrame::FireRestoreState() calls ProcessEvent() on Mac instead of AddPendingEvent() to avoid displaying Disk tab for an instant when showing the Window on manual launch. - MGR: suspend periodic RPCs only when displaying SafeMessageBox() not for all dialogs, so tabs can update during Preferences dialog, etc. clientgui/ BOINCBaseFrame.cpp BOINCGUIApp.h MainDocument.cpp David 9 Mar 2009 - scheduler: msg tweak sched/ sched_array.cpp David 9 Mar 2009 - client: backoff overrides project-requested scheduler RPC. Otherwise, if scheduler is down, we'll retry infinitely every 10 secs - client: remove auto_update.poll() (not used) client/ client_state.cpp cs_scheduler.cpp scheduler_op.cpp David 11 Mar 2009 - Manager: show elapsed time instead of CPU time in Task tab. CPU time is visible in task Properties. - Manager: in task Properties, show final CPU and elapsed times if job is finished - client: honor backoff for account-manager-requested scheduler RPCs - client: keep track of final elapsed time for results - GUI RPC: report final elapsed time client/ app_control.cpp client_types.cpp,h cs_scheduler.cpp clientgui/ DlgItemProperties.cpp ViewWork.cpp lib/ gui_rpc_client.h gui_rpc_client_ops.cpp Charlie 12 Mar 2009 - MGR: Simplify the fixes for saving and restoring window sizes and other settings; eliminate unnecessary new events EVT_FRAME_RESTORESTATE and EVT_FRAME_SAVESTATE, etc; call SaveState() and RestoreState() directly. - MGR: Handle EVT_END_SESSION event to call SaveState() on Windows logout or shutdown; this fixes a long-standing problem where current settings were not being saved. clientgui/ AdvancedFrame.cpp, .h BOINCBaseFrame.cpp, .h BOINCGUIApp.cpp, .h sg_BoincSimpleGUI.cpp, .h Rom 13 Mar 2009 - MGR: Add the basic infrastructure for the up and comming news tab in the advanced frame. clientgui/ AdvancedFrame.cpp BOINCGUIApp.cpp Events.h stdwx.h ViewNews.cpp, .h (Added) ViewResources.cpp win_build/ boincmgr_curl.vcproj David 16 Mar 2009 - scheduler: in get_app_version() we check if our current best app version is a CUDA app and we don't need more CUDA work. Need to do this for CPU as well. sched/ sched_send.cpp David 16 Mar 2009 - web: in pages that show results, combine "server state", "client state", and "outcome" into a single status. The fact that there are three separate status fields is an implementation detail that users don't need to see. html/ inc/ result.inc user/ results.php David 16 Mar 2009 - validator utilities: improvements to two_credit() (used for deciding how much credit to grant when there are 2 valid results). From Kevin Reed sched/ validate_util.cpp David 16 Mar 2009 - scheduler: app_plan() is not the right place to check for "don't use GPU" pref; do it at a higher level sched/ sched_plan.cpp,h sched_send.cpp Charlie 16 Mar 2009 - MGR: Fix possible deadlock when exiting manager. clientgui/ AsyncRPC.cpp Charlie 17 Mar 2009 - MGR: Delete RPCThread::OnExit() because it is not called on Windows for some reason. - Mac: add new source files ViewNews.cpp, ViewNews.h to XCode Project. clientgui/ AsyncRPC.cpp mac_build/ boinc.xcodeproj/ project.pbxproj Eric K 17 Mar 2009 - Linux: client: Added code to detect capability to run 64-bit binaries from 32-bit BOINC client, and capability to run 32-bit binaries on a 64-bit linux system. client/ cs_platforms.cpp Charlie 17 Mar 2009 - MGR: CMainDocument::KillRPCThread() defers to RPC thread before testing if thread has exited on its own. clientgui/ AsyncRPC.cpp David 18 Mar 2009 - client: consider fetching work from overworked projects if resource is saturated for < work_buf_min() (rather than saturated for 0). So now the only significance of "overworked" is that we won't ask overworked projects for work if resource is saturated more than work_buf_min() but less than work_buf_total() client/ work_fetch.cpp,h David 18 Mar 2009 - client: in RR simulation, use app_version.flops instead of host_info.fpops as the FLOPS estimate for non-GPU apps. I don't see why this would make any difference (these two are equal for non-GPU apps) but people have reported that this change improves estimates. client/ rr_sim.cpp David 18 Mar 2009 - scheduler and web: add a project preference for whether to use the CPU. This complements the "use GPU?" pref. Neither should be necessary, but what the heck. db/ boinc_db.h server_types.cpp,h sched_send.cpp html/project.sample/ project_specific_prefs.inc David 18 Mar 2009 - web: job lists can be filtered by status html/ inc/ result.inc user/ results.php David 19 Mar 2009 - scheduler: move app-version selection and score-based scheduling to new files. sched/ Makefile.am sched_version.cpp,h (new) sched_score.cpp,h (new) various others David 19 Mar 2009 - client: work fetch: in RR sim, keep track of the number of device instances used by jobs that miss deadline. Don't do "variety" work fetch if this is >= # of instances client/ rr_sim.cpp work_fetch.cpp,h Rom 19 Mar 2009 - client: initial support for detecting the CPU L2 cache size on Windows. client/ client_state.cpp cs_benchmark.cpp hostinfo_win.cpp David 20 Mar 2009 - client: reduce frequency of writing state file: 1) multiply checkpoint period by # of cores (or GPUs) 2) don't write statefile after schedule_cpus() (we write it after enforce_schedule() if anything started or stopped, and that's all that matters) - client: add new log flag ; tells you when and why statefile is written client/ app_start.cpp client_state.cpp cpu_sched.cpp cs_statefile.cpp log_flags.cpp,h David 20 Mar 2009 - client: add --no_priority_change cmdline arg (and flag in cc_config.xml). If set, run apps at same priority as client. client/ app_start.cpp cs_cmdline.cpp log_flags.cpp,h David 20 Mar 2009 - API (win): TerminateProcess() apparently can return in some cases, causing process to go into infinite "no heartbeat" loop. Try sleeping for 1 sec, then calling DebugBreak() api/ boinc_api.cpp David 20 Mar 2009 - API: add some #ifdef'd debug messages api/ boinc_api.cpp David 20 Mar 2009 - web: fix X-project links in Computer page html/inc/ host.inc David 22 Mar 2009 - client: garbage collect after scheduler RPC; if project sent some irrelevant FILE_INFOs, this will avoid starting transfers for them. api/ boinc_api.cpp client/ cs_scheduler.cpp gui_rpc_server_ops.cpp samples/multi_thread/ multi_thread.cpp David 23 Mar 2009 - API: don't try to unlock lockfile if we failed to lock it - API: more detailed message if failed to lock api/ boinc_api.cpp html/project.sample/ project_news.inc lib/ filesys.cpp,h David 23 Mar 2009 - new screensaver: don't show jobs if suspended clientscr/ ss_app.cpp David 23 Mar 2009 - API: more lockfile messages lib/ filesys.cpp api/ boinc_api.cpp David 23 Mar 2009 - client (linux): if don't find libcudart.so in the current dir, look for it in the library search path. Fixes #863 lib/ coproc.cpp Rom 24 Mar 2009 - client: handle power events on Windows via a seperate thread and hidden window. The basic code was already in place to handle logoff events on Win9x but now it is enabled for all Windows versions. client/ app_control.cpp main.cpp, .h David 24 Mar 2009 - small code shuffle - fix manager build on unix clientgui/ Makefile.am ViewWork.cpp lib/ util.cpp samples/wrapper/ wrapper.cpp api/ boinc_api.cpp David 24 Mar 2009 - remove wait arg of resume_client() client/ main.cpp,h David 24 Mar 2009 - upgrade and make_project scripts: run update_translations.php, which compiles the translation files into the form used by the web code. Projects that don't use "upgrade" will need to do this manually whenever translation files change. - make_project: create an initial db_revision file. Otherwise make_project followed by upgrade will try to do DB upgrades, which will error out html/ inc/ translation.inc ops/ update_translations.php user/ language_select.php tools/ upgrade make_project David 24 Mar 2009 - web: updated the master translation file html/ ops/ build_po.php languages/translations/ en.po user/ home.php David 24 Mar 2009 - web: remove spurious translation files David 24 Mar 2009 - web: clean out translation directories before updating (to get rid of bad translation files) html/ops/ update_translations.php py/Boinc/ setup_project.py David 24 Mar 2009 - web: translation system didn't compile BOINC and project-specific translations correctly. html/ ops/ update_translations.php inc/ translation.inc David 25 Mar 2009 - improve msgs in file upload handler sched/ file_upload_handler.cpp David 25 Mar 2009 - client: give highest work-fetch priority to resources with idle instances client/ work_fetch.cpp Charlie 25 Mar 2009 - MGR: Remove erroneous call of locale in main thread which may be causing undesired chanegs in date and numeric formatting due to conflicts between threads; also set locale only on a per-thread basis if available. - MGR: Rename method CMainDocument::CopyProjectsToStateFile() to CMainDocument::CopyProjectsToStateBuffer() for clarity. clientgui/ AsyncRPC.cpp BOINCGUIApp.cpp MainDocument.h lib/ gui_rpc_client.h Charlie 26 Mar 2009 - Mac: revise XCode project to use OS 10.4 SDK for building PowerPC libraries and executables so that we can use weak-linking for APIs not available before OS 10.4, such as uselocale(). - MGR: Modify SET_LOCALE constructor and destructor to change locale only on those systems without support for setting locale on a per-thread basis, such as OS 10.3.9. NOTE: At this point it appears that Ubuntu and Fedora both support uselocale(). If any platform does not support it, see the comments at NO_PER_THREAD_LOCALE in lib/gui_rpc_client.h for info on allowing for that. clientgui/ AsyncRPC.cpp lib/ gui_rpc_client.h mac_build/ boinc.xcodeproj/ project.pbxproj David 26 Mar 2009 - client: clear resource backoffs on user-requested RPC - client: randomize resource backoffs to avoid lockstep client/ cs_scheduler.cpp work_fetch.cpp David 26 Mar 2009 - client: when a job finishes, clear the project's backoff for its resource type. This fixes a problem where a project has a "max jobs in progress" limit, and we're backed off because of that. We'll now fetch work immediately instead of waiting 24 hrs. client/ app.cpp Charlie 26 Mar 2009 - Mac: Additional changes to make sure BOINC libraries will continue to build on the Mac using either XCode on OS 10.5 or config / make on OS 10.3 and later, though the config / make method is still not recommended on the Mac. - MGR & lib: Provide a cleaner way to specify that a platform does not support uselocale() API or other per-thread locale. See the comments at NO_PER_THREAD_LOCALE in lib/gui_rpc_client.h for details. - Samples: Fix build breaks and warnings when using MakeMacExample.sh script or Makefile_mac2 make file to build example_app on Mac. These errors were probably introduced when boinc_samples was moved into boinc/samples. clientgui/ AsyncRPC.cpp lib/ gui_rpc_client.h mac_build/ boinc.xcodeproj/ project.pbxproj samples/ example_app/ Makefile_mac Makefile_mac2 MakeMacExample.sh David 27 Mar 2009 - manager: display versions as x.xx clientgui/ DlgItemProperties.cpp David 27 Mar 2009 - API: add function boinc_msg_prefix() that returns time of day and process ID. This should prefix all messages written to stderr by applications or by the runtime system. api/ boinc_api.cpp,h graphics2_win.cpp graphics2_unix.cpp samples/ wrapper/ wrapper.cpp multi_thread/ multi_thread.cpp example_app/ uc2.cpp David 27 Mar 2009 - manager: fix message clientgui/ ProjectInfoPage.cpp David 27 Mar 2009 - client: typo in work fetch code; may cause minor errors client/ work_fetch.cpp David 30 Mar 2009 - boinc_submit (single-job submission): set the job params to reasonable values (see below), and make it easy to change these values in the script - create_work (function and script): change default job params: FLOPs est: 1e9 => 3600e9 FLOPs bound: 1e10 => 86400e9 mem bound 100MB => 500MB, disk bound 100MB => 1GB delay bound: 100000s => 1 week client/ work_fetch.cpp tools/ boinc_submit create_work.cpp David 30 Mar 2009 - GUI RPC: client side: if parse a RESULT and CPU is nonzero but elapsed time is zero, we must be talking to an old client; set elapsed = CPU lib/ gui_rpc_client_ops.cpp David 31 Mar 2009 - client: (unix): if host name lookup fails, call res_init(). This is an attempt to fix a problem on Linux where, if the client starts before a VPN is set up, it can never communicate client/ http_curl.cpp lib/ network.cpp,h Charlie 31 Mar 2009 - Mac: Add -lresolv to XCode linker flags for client and manager to link with libresolv.dylib for new res_init() call. mac_build/ boinc.xcodeproj/ project.pbxproj Charlie 1 Apr 2009 - Mac: Add -lresolv to XCode linker flags for screensaver, ss_app and boinccmd. - MGR: on Mac, implement standard Preferences item under BOINC menu with standard keyboard shortcut; same as Advanced/Preferences. clientgui/ AdvancedFrame.cpp mac/ MacSysMenu.cpp mac_build/ boinc.xcodeproj/ project.pbxproj David 1 Apr 2009 - client: show project name in "backoff ended" msg client/ app.cpp cpu_sched.cpp cs_scheduler.cpp Charlie 1 Apr 2009 SS: Under Mac Sandbox security, launch default screensaver graphics app as user and group boinc_master via gfx_switcher, not via setgid. client/ check_security.cpp clientgui/ mac/ SetupSecurity.cpp clientscr/ gfx_switcher.cpp screensaver.cpp mac_build/ Mac_SA_Secure.sh Charlie 2 Apr 2009 SS: Under Mac Sandbox security, terminate default screensaver graphics app via gfx_switcher. This is safer because the man page for kill() says the user ID of the process sending the signal must match that of the target process, though in practice that seems not to be true on the Mac. clientscr/ gfx_switcher.cpp mac_saver_module.cpp Mac_Saver_Module.h screensaver.cpp screensaver_win.h mac_build/ Mac_SA_Secure.sh David 2 Apr 2009 - web: in filtered job lists, "pending" should include "inconclusive", and "invalid" should include "too late to validate" html/inc/ result.inc Rom 2 Apr 2009 - WINSCR: It appears newer notebook models with multiple video chipsets exhibit an interesting situation. It appears as though in certain conditions a single monitor machine actually reports itself as having three monitors. Normally the monitor that contains the primary window (coord 0,0) is on monitor 0, but on these machines coord 0,0 is actually on monitor 2. This led to the screensaver not properly exiting when keyboard and/or mouse activity was detected. Now when we detect that keyboard and/or mouse activity has happened we send the WM_INTERRUPTSAVER event to all windows on all monitors. clientscr/ screensaver_win.cpp, .h David 3 Apr 2009 - get_project_config.php: include plan classes in platform list; i.e., list both win/x86 and win/x86 + NVIDIA. This will allow the manager to show which projects can use the hosts's coprocessors, and also graying out projects that require an absent coproc. - fix compile warnings api/ graphics2.h graphics2_util.cpp client/ boinc_cmd.cpp work_fetch.cpp,h html/user/ get_project_config.php David 6 Apr 2009 - make_project: get rid of verbosity-level stuff and fancy overwriting of stdout lines tools/ make_project html/inc/ translation.inc py/Boinc/ setup_project.py Rom 6 Apr 2009 - WINSETUP: When uninstalling, don't migrate the client data back to the 5.x location. win_build/installerv2/redist/Windows/src/boinccas/ CAMigrateBOINCData.cpp Rom 7 Apr 2009 - WINSETUP: On some setups, how we were including the 'Everyone' well known security ID in the boinc_users group didn't work properly. From now on include the 'Everyone' security ID in the various ACLs instead. This will probley clean up a wide range of various issues with multi-user installs. win_build/installerv2/redist/Windows/src/boinccas/ boinccas.rc CACreateBOINCGroups.cpp CASetPermissionBOINC.cpp CASetPermissionBOINCData.cpp CASetPermissionBOINCDataProjects.cpp CASetPermissionBOINCDataSlots.cpp win_build/installerv2/redist/Windows/Win32/ boinccas.dll boinccas95.dll win_build/installerv2/redist/Windows/x64/ boinccas.dll boinccas95.dll David 7 Apr 2009 - web and client: change the default for "run_gpu_if_user_active" from true to false. Currently running CUDA apps on NVIDIA GPUs causes a significant slowdown in GUI response. html/inc/ prefs.inc lib/ prefs.cpp tools/ make_project David 7 Apr 2009 - client: we were setting config defaults after parsing cmdline. This meant that the cmdline args that set config params weren't working: --allow_multiple_clients --report_results_immediately --no_priority_change --start_delay client/ client_state.cpp cs_cmdline.cpp log_flags.cpp,h Eric 7 Apr 2009 - API: Added new function boinc_set_credit_claim() for use by projects that want to grant approximately fixed credits, but don't want to express them in terms of FPOPS and IOPS. This API just calls boinc_ops_cumulative(N*8.64000e+11,0). api/ boinc_api.cpp,h Charlie 7 Apr 2009 MGR: Fix compatibility problem with sizing of all-projects list in Attach Project Wizard when using wxWidgets 2.8.8 or later. clientgui/ ProjectListCtrl.cpp David 8 Apr 2009 - Add "html/ops/purge_profile.php" script to help admins locate and remove spam profiles html/ inc/ email.inc ops/ purge_profile.php user/ mail_passwd.php David 8 Apr 2009 - client: back out res_init() change; it didn't work client/ http_curl.cpp lib/ network.cpp.h Charlie 8 Apr 2009 - Mac MGR: build with wxWidgets 2.8.10. - Mac: Remove -lresolv from XCode linker flags for client, manager, ss_app, screensaver and boinccmd since res_init() call is removed. mac_build/ boinc.xcodeproj/ project.pbxproj Charlie 9 Apr 2009 - Mac client: fill in command field of PROCINFO struct so log flag works properly on Mac. lib/ procinfo_mac.cpp David 9 Apr 2009 - client: for each app version, keep track of the largest WSS of tasks using it. In checking whether tasks fit in RAM, use this as an estimate for tasks that haven't started yet. This avoids a situation where the client starts a lot of tasks in sequence, only to find that each one doesn't fit in RAM. client/ client_types.h cpu_sched.cpp David 9 Apr 2009 - manager: show execution directory in task properties clientgui/ DlgItemProperties.cpp Rom 9 Apr 2009 - WINSETUP 'Everyone' is not just a group, it is a well known group. win_build/installerv2/redist/Windows/src/boinccas/ CASetPermissionBOINC.cpp CASetPermissionBOINCData.cpp CASetPermissionBOINCDataProjects.cpp CASetPermissionBOINCDataSlots.cpp win_build/installerv2/redist/Windows/Win32/ boinccas.dll boinccas95.dll win_build/installerv2/redist/Windows/x64/ boinccas.dll boinccas95.dll David 9 Apr 2009 - graphics API: add rotation arg to txf_render_string() (from Carl C.) api/ txf_util.cpp,h Rom 10 Apr 2009 - WINSETUP: Be sure to define INSTALLDIR if it isn't already defined by the system or the transform. DATADIR was already being handled. - WINSETUP: Save setup state at the end of the execution phase as well as the end of the UI phase. win_build/installerv2/ BOINC.ism BOINCx64.ism win_build/installerv2/redist/Windows/src/boinccas/ CAValidateSetupType.cpp win_build/installerv2/redist/Windows/Win32/ boinccas.dll boinccas95.dll win_build/installerv2/redist/Windows/x64/ boinccas.dll boinccas95.dll David 10 Apr 2009 - client: for coproc jobs, don't start a job while a quit is pending. Otherwise the new job may fail on memory allocation. client/ cpu_sched.cpp David 10 Apr 2009 - client: instead of scheduling coproc jobs EDF: - first schedule jobs projected to miss deadline in EDF order - then schedule remaining jobs in FIFO order This is intended to reduce the number of preemptions of coproc jobs, and hence (since they are always preempted by quit) to reduce the wasted time due to checkpoint gaps. - client: the CPU scheduling policy made use of the number of deadline misses in various places. This should include only the deadline misses of CPU jobs. So move "deadlines_missed" from RR_SIM_STATUS and PROJECT to RSC_PROJECT_WORK_FETCH so that we have separate counts for CPU and coproc jobs, and use the count for CPU jobs. - GUI RPC: removed the rr_sim_deadlines_missed field from project descriptor. This is no longer meaningful, and it didn't seem to be used anywhere. client/ client_types.cpp,h cpu_sched.cpp rr_sim.cpp,h work_fetch.cpp,h lib/ gui_rpc_client.h gui_rpc_client_ops.cpp David 10 Apr 2009 - GUI RPC and manager: send slot and show it in task properties rather than slot path (slot_path is defined only for apps with graphics app). clientgui/ DlgItemProperties.cpp lib/ gui_rpc_client.h gui_rpc_client_ops.cpp Rytis 11 Apr 2009 - web: allow login from subdirectories of the site (expects login_form.php to be located in the URL_BASE). html/inc/ util.inc David 12 Apr 2009 - client: put back the call to res_init() on lookup failure. Apparently it worked after all. client/ http_curl.cpp lib/ network.cpp,h Charlie 13 Apr 2009 - Mac: Add -lresolv to XCode linker flags for client, manager, boinccmd, screensaver and ss_app to link with libresolv.dylib for res_init() call (again). mac_build/ boinc.xcodeproj/ project.pbxproj David 14 Apr 2009 - client: eliminate the need to write the state file on each checkpoint. Instead, write the info into a file in the slot directory, and check for these files on startup. This should reduce the overhead of state-file writing on machines with lots of cores. There will still be a flurry of writes each time a job finishes, but reducing that overhead would be a larger job. - client: make sure we write the state file after a failed RPC client/ app.cpp,h app_control.cpp cs_scheduler.cpp file_names.h scheduler_op.cpp Charlie 15 Apr 2009 SS: Under Mac Sandbox security, launch default screensaver graphics app via gfx_switcher as user and group boinc_project rather than boinc_master, since none of the default screensaver's RPC calls requires access to the password in gui_rpc_auth.cfg. clientscr/ gfx_switcher.cpp screensaver.cpp Rom 15 Apr 2009 - Fix compiler errors ( From: Sascha Manns ) client/ hostinfo_unix.cpp clientgui/ DlgAdvPreferences.cpp David 15 Apr 2009 - web: improve the appearance of buttons - web: divide the stylesheet into "main.css" (which has formatting stuff, rounded corners etc.) and "white.css" (which has colors). The above two from Simek. - scheduler: change default min NVIDIA driver version from 17500 to 17700 html/ inc/ util.inc user/ main.css (new) sample_index.php user_search.php white.css img/ white_grad.png (new) sched/ sched_plan.cpp David 15 Apr 2009 - Unix build: make it work if "diff" is missing (??) from Michael Tughan lib/ Makefile.am David 15 Apr 2009 - web: increase button text size a little html/user/ main.css David 15 Apr 2009 - web: update black.css html/user/ black.css Rom 15 Apr 2009 - Add ICU to the BOINC depends list. It is needed for SQLLite3 which will be needed for reading Firefox 3.x cookies. icu/ Charlie 15 Apr 2009 Mac MGR: Add keyboard shortcuts command-shift-S to switch to Simple View and command-shift-A to switch back to Advanced View. clientgui/ AdvancedFrame.cpp, .h sg_BoincSimpleGUI.cpp, .h David 15 Apr 2009 - client: fixed a crash caused by using %f to write working-set size into a fixed-size buffer. Use %e instead. TODO: figure out why WSS was huge. - web: if "en" is primary language, don't read translation files client/ app_control.cpp html/inc/ translation.inc samples/example_app/ uc2.cpp