This build has an updated messages dialog in the Simple GUI. The regular buttons will be replaced with graphical buttons as soon as I get the new bitmaps. Until then, imagine them looking like the close button.

This build should also remove the "compute_work_requests(): start" message.

----- Rom

Here are the list of changes:

- core client: put if() around "compute_work_request(): start" msg

- MGR: Add "Anytime" to the list of start times for the simple preferences dialog.

- MGR: Fix instructions when a connection failure happens.

- MGR: Let the core client manage the snooze timer. Changes for both the advanced gui and simple gui.

- MGR: Handle the clear preferences case better by setting the mask flags to false instead of just calling set preferences override with an empty string.

- MGR: Make sure we grab the correct localized dialog name during construction.

We are looking for show stoppers, if none are found this will be the build for public release. Showstoppers are crashes, data corruption issues, and things that cause people to think the software just doesn't work. We'll have to follow up with a release or two for localization changes, and anything we missed in testing.

Changes for this release:

1. Help system updated so that hitting F1, Help, or the ? on dialogs launches a browser and points them to some online help. The Simple GUI page is blank at the moment but that'll be fixed before launch.

2. Simplified snooze to mean suspend only the processor. Suspending the processor from the advanced gui and then switching over to the simple gui should display the resume button instead of the pause button.

3. Fixed remembering the messages dialog column widths as well as the dialog width and height.

4. Fixed screensaver bug where the screensaver didn't shutdown when the user just did a single mouse click.

5. Added the ability to migrate CPDNBBC data to the BOINC directory. This will only work on Windows 2000 or better and only if the BOINC directory does not already exist.

6. Added the ability to save and restore options the user selects during setup. This will only work from this version of BOINC and going forward. Two fields that are not stored is the launch program checkbox at the end, and the service password. Saving and restoring setup values only works if the Setup GUI is displayed.

7. On Windows XP or better, setup no longer requires that the service account has a password.

Here is another build, please log results to http://boinc.berkeley.edu/alpha/

Thanks in advance.

----- Rom

Change List:

- MGR: Fix segfault in simple gui when message button is clicked. SetBackgroundStyle() needs to be called after the window is created.

- core client: if swap space is zero, it must not have been measured on this host; don't use it in process scheduling

- DIAG: Clean up some warnings and add a new exception type to the list of known exceptions.

- Win SETUP: Make Windows XP or better require passwords for the service accounts again.

- Win SETUP: Fix a spelling mistake that JM7 found.

- core client: fixed crashing bug that happens when attaching to a project with wrong URL (e.g. setiathome.ssl.berkeley.edu). The fix allows the project to attach but prints a warning. It would be better to not allow the attach; I'll get back to this later

- core client: Change function that calculates RAM and SWAP used by a science project to return the max used by a process instead of totaling the process/child processes. Fixes the problem where the same RAM and SWAP used gets counted multiple times for some science apps.

- Manager: get rid of "CPU throttled" messages

- Manager: enhancements to Statistics tab (can click on project name in multi-project view) from Mifistor_x

- core: if we're preempting an app and leave it in memory because no checkpoint yet, say so in message

- MGR: Updates to disk usage pie charts from Frank Weiler.

- core client: fix problems when user aborts result (mark it as CPU_SCHED_PREEMPTED so scheduler doesn't try to preempt it; that confuses things)

- changed format of Deferring Comm messages

- core client: backwards > in PROJECT::some_download_stalled(). This caused the client to keep fetching work from a project with stalled downloads.

- core client: sort daily stats records in case they get out of order somehow

- manager: use user-friendly app names

- SCR: Disable the diagnostic support for release builds of the Windows screensaver. A smarter thing to do in the future is to write the log files to the 'temp' directory.

- Update libCurl to 7.16.0 and use sync name resolves instead of async name resolves.

- core client: fix a bug that could cause computation to stop.
The problem: if we suspended a task by sending it a <quit/> message, we were changing its scheduler state to CPU_SCHED_PREEMPTED but not changing its task state (PROCESS_EXECUTING). If, for some reason, the process didn't exit right away, the scheduler would treat it as still running, since it builds its "currently running" list based on task_state.

Solution: the scheduler shouldn't be looking at task_state. Use scheduler_state instead. It's still a mystery why the app wasn't quitting.

An Item of note, the manager will now attempt to restart the CC if the CC has crashed and the manager started the CC in the first place. If you have been experiencing crashes with 5.8.3 please check your log files regularly for:

“garbage_collect(); still have active task for acked result; state”

This might help with getting our head around the actual problem that is causing the crash.

----- Rom

Change Log:

- MGR: Add the help button to the list of images to update when the user selects a different skin.

It appears that the rash of crashes, -161s, state file errors, and new upload errors has subsided. If you still have upload errors with that read socket error message, abort them. We are still looking for any CC and manager issues that would block a public release.

We do not need any new bug reports on the grid based tabs, we'll be working over the weekend to clean-up the issues you all have raised.

The game plan as of right now is to beat the hell out of this build, come Monday we'll do another build which will contain the grid based tabs if we can get them into a polished state in time, if not the new release will contain the old tabs. We'll test the new build for a couple of days, if no showstoppers are found we'll release to the public.

So please give the client some 24 hours of testing and running looking for CC issues, log results to http://boinc.berkeley.edu/alpha.

I would like to reach 90% combined coverage for builds 5.8.6 and 5.8.7.

----- Rom

Change Log from last build:

- MGR: Disable advanced preferences dialog box.

- MGR: Do not refresh the Simple GUI when the manager is hidden.

- Manager: use a scientifically chosen set of colors for disk pie charts

- core client: there was logic that wouldn't start a result for a project if it had > 2 active uploads (intended to prevent an unbounded buildup of files for a project whose upload server is broken). It is was never triggered since the default is 2 active transfers per project. Maybe I meant persistent file transfers. In any case, this is a bad policy because there may be a project with lots of output files per result, possibly large, and there's no reason to keep it from computing. So instead, I changed it to not start a result from a project if its number of results in FILES_UPLOADING state exceeds 2*ncpus.

- core client and manager: reorganize message priorities. There are now three priorities:
MSG_USER_ERROR
Conditions that require user intervention. These messages are written for non-tech users, and tell the user exactly what to do.
GUI: red letters
MSG_INTERNAL_ERROR
Conditions that may indicate a problem or bug in BOINC itself, or with a BOINC project or account manager. The message is prepended with [error]".
GUI: black letters
MSG_INFO
All other messages.
GUI: black letters

Note: all messages that must be enabled by cc_config.xml
use MSG_INFO priority

- MGR: Flip the sorting icons for the Grid Control.

- MGR: Remove legacy tabs.

- MGR: Fix the OnFrameRender function in the Simple GUI, some of the logic in it blows out of the function with a return which was leaving the static variable that was guarding against repeated executions to true. This in turn kept the GUI from updating.

- MGR: Add a new menu item that'll shutdown the core client that the manager is connected too. It'll prompt for a new computer afterwards.

- core client: another attempt at fixing the problem where a project is issuing work but not uploading files.
New solution: don't fetch work from a project with more than 2*ncpus results in FILES_UPLOADING state.
Note: this doesn't address John McLeod's point that we shouldn't increase LTD for projects in this state.

- Manager: fix crash if select a project that doesn't have a name yet. There were two separate problems:
1) CMainDocument::project() was searching by name but not by master URL (BTW: all that at(), out-of-range exception stuff isn't needed, or the cut-and-pasted comment).
2) CViewProjects::UpdateSelection() (and its grid counterpart) were checking for project == NULL some of the time, but not all the time

- MGR: Give the user a change to abort a core client shutdown when they select 'shutdown current client'.

- MGR: Special case the authorization error dialog when it is attempting to use the default password, so that it also informs the user they need to run the manager from the same directory as the CC.

- MGR: Revert back to original tabs, grd controls are not going to make it for this release.

- core client: fix bug where client thinks an app is running but it isn't.
Basic problem: there are two layers
1) process control: start/stop/suspend/resume, handle exits.
files: app_*.C
It owns ACTIVE_TASK::task_state
2) CPU scheduling: decide what should run
files: cpu_sched.C
It owns ACTIVE_TASK::scheduler_state.
These layers weren't cleanly separated; e.g. the CPU sched layer relied on the process control layer to set scheduler_state in some cases, and this wasn't always being done. I fixed this; the layers are now separated.
Also: added new task_state value, PROCESS_QUIT_PENDING

- MGR: Add simple validation for the authenticator returned by InternetGetCookie.

- core client: when a scheduler reply has a FILE_INFO for a file for which we already have a FILE_INFO record, overwrite the file_signature field only if the new record actually has one. This fixes a bug where a project used the same file in both an APP_VERSION and a WORKUNIT. The scheduler reply contained two <file_info> elements for the file; the first had a signature, the second didn't. The second one overwrote the first, and the app version was rejected because one its file wasn't signed.

This build has some bug fixes for the Windows Installer. It'll now forcefully terminate boinc.exe, boincmgr.exe, and boinc.scr if it detects they are running on the system. It should help reduce the number of setup related issues.

----- Rom

Change Log:

- WININSTALL: Force the termination of BOINC and BOINCMGR if we could not gracefully shut them down.

- MAC: If relaunching AppStats due to an error, close any open file descriptors (we communicate with AppStats via a bidirectional pipe.)

- WININSTALL: Force the termination of BOINC.SCR if we could not gracefully shut it down.

- Linux: Prevent crash by initializing the Taskbar pointer, even though the Linux Boincmgr currently doesn't support that feature.

- core client: fix bug where if a task is aborted (e.g. because it exceeds CPU limit) it's restarted on the next enforce_schedule().
The problem: we're deleting the ACTIVE_TASK, but the result is still in the ordered_scheduled_results list.
The solution: call request_schedule_cpus() in handle_finished_apps() when an ACTIVE_TASK is deleted.

- WININSTALL: Use the Unicode version of ShutdownBOINCManager on NT based platforms and use the ANSI version on 9X based platforms.

- core client: if benchmark time is in the future (due to user tweak) always run benchmarks

- core client: when resetting or detaching a project, if a file transfer was active for a project file, the file delete would fail because Curl still has the
file open. This would cause the manager to freeze for N*5 seconds.
Fix: in CLIENT_STATE::reset_project(), delete FILE_XFER and PERS_FILE_XFER objects.

- core client: the limits on numbers of simultaneous file transfers (total and per-project) now apply to uploads and downloads separately. We don't want a situation where an upload is blocked because there are N downloads.

- core client: if benchmark time is in the future (due to user tweak) always run benchmarks

- boinc_cmd: change --lookup_account and --create_account commands so that they poll until the operation is done, and then show a meaningful result (e.g. an account key). Remove --lookup_account_poll and --create_account_poll commands

- core client: when detach from a project, delete its sched_request, sched_reply, and master files

Mac: Fix serious bugs in Mac_SA_Insecure.sh and Mac_SA_Secure.sh scripts when run under OS 10.3.x. They sometimes created bad users and groups with IDs that were duplicates of other users and groups. They ran correctly under OS 10.4.x. Users who ran an older version of either script under OS 10.3.x should first run the current version of Mac_SA_Insecure.sh to delete the bad entries and then run Mac_SA_Secure.sh to create new good entries.

Mac: if we started core client, close it with rpc->quit() instead of kill().

The core client was compiled with GCC 4.1 which should improve the benchmarks.

Walt

I have posted BOINC version 5.8.17 for the Macintosh to the alpha
download page.

This has only a few minor changes from 5.8.16:
- Correctly report Physical RAM sizes > 2GB
- Improved backtrace for debugging support
- Fix a typo which caused the installer to work incorrectly on some
Macs, resulting in a -1010 error.

Please test this as soon as possible. If there no problems are
reported, we expect to release this to the public in a day or two.

Here are just a few of the changes that made it into the 5.10 release cycles:
1. Sort-able views in the Advanced GUI.
2. Progress bars in the Advanced GUI.
3. Advanced preferences dialog.
4. Improved Vista compatibility.

I still have to go through the check-in notes to compile a complete list of changes.

The latest changes to the 5.9 version can be found at http://boinc.berkeley.edu/trac/roadmap, also showing which bugs (tickets) are still open and which have been closed. JordPlease do not private message me for tech support. Use the forums for that. Tech PMs will be ignored.