to time_stats.C
- Fixed problem with std_fixes.h when included from C.
m4/
libtool.m4
boinc_getsockopt.m4
sah_header_stdcxx.m4
sah_namespace.m4
client/
time_stats.C
gui_rpc_server.C
ssl_net_xfer.C
lib/
network.C
network.h
std_fixes.h
Charlie 5 May 2005
Mac installer: Wait until installer quits before launching BOINC.
mac_installer/
PostInstall.cpp
Charlie 6 May 2005
Macintosh only: wxProcess::Exists() and wxKill() are unimplemented
in WxMac-2.6.0 so create our own CBOINCGUIApp::ProcessExists(), use
it and kill() in CBOINCGUIApp::ShutdownBOINCCore().
clientgui/
BOINCGUIApp.cpp/h
David 6 May 2005
- fixes to work fetch policy (from John McLeod)
- changed names of work-fetch urgency constants to WORK_FETCH_*
(use common prefix for related symbols)
client/
client_state.h
client_types.C,h
cs_scheduler.C
scheduler_op.C
David 6 May 2005
- prevent users from changing their name to empty string
(from Rob Ogilvie)
html/user/
edit_user_info_action.php
Charlie 7 May 2005
Mac: Fix problems with window position & size caused by
calling Maximize(false). If m_bFrameVisible-visible is
false at startup, don't show & hide window (to eliminate
annoying flash of window).
clientgui/
BOINCGUIApp.cpp
BOINCTaskBar.cpp
MainFrame.cpp
Bruce 7 May 2005
- compile fix for HPUX and AIX
client/
hostinfo_unix.C
Janus 8 May 2005
- Security patches and improvements from Rob Ogilvie making it harder
to misuse the forums.
- escape all strings before inserting into SQL and check everything else
- use regex do search and remove images instead of old slow function
- added a function cleanTextBox that prepares text to be dropped into
a textarea (replacing < and >). Also added the use of it to the
reply-page and edit-page.
- changes in the stylesheet
- Added max width on authorcols in forum to css
- Added nicer style to blockquotes
- Removed some old code from forum show_post that wasn't used anymore but
still accessed the database and threw away the result.
- Added a tiny part of the PayPal donation system from BURP, more parts
will show up later when they have been rewritten to work with php4
Please check if the license of the original PayPal script
(http://opensource.org/licenses/cpl.php) fits with the BOINC license. The
way I read it there should be no problems (since BOINC is opensource as
well).
html/
inc/
db_forum.inc
forum.inc
paypal_global_config.php (new)
user/
black.css
forum_edit.php
forum_reply.php
style.css
style-black.css
white.css
payment_success.php (new)
payment_process.php (new)
David 8 May 2005
- work fetch and CPU scheduling fixes (from John McLeod)
client/
client_state.C,h
client_types.C,h
cs_scheduler.C
scheduler_op.C,h
David 9 May 2005
- scheduler: return error (and don't send result)
if result DB update, WU DB update, or XML mods fail
(from Ian Hay)
sched/
sched_send.C
Rom 9 May 2005
- Remove last Friday's benchmark checkin and introduce a benchmark startup
timeout. If an application cannot be shutdown because an application
fails to shutdown, it'll just skip the benchmarks.
- Add a new log flag for the cpu scheduler called '' so
that people can debug client-side issues with the scheduler
- Convert the #ifdef scheduler debug code to log flag calls
- Fix a CPU scheduling bug where the client thought all the CPU's were idle.
client/
app.C, .h
app_control.C
client_msgs.C, .h
client_state.C
cs_benchmark.C
cs_scheduler.C
log_flags.C, .h
Bruce 10 May 2005
- Forums: added an html/bookmark style link to the header for each message.
This makes it a bit more convenient to reference a particular message
(rather than the entire thread) in an email or another thread.
Janus, Rob, I hope this is OK with you.
Feel free to revert if you don't like it.
- Forums: added credit and recent average credit to the brief description
of users.
html/
inc/
forum.inc
Janus 10 May 2005
- Reply box on reply page in the forums is now at the top of the page
to avoid scrolling (From Rob Oglivie)
html/user/
forum_reply.php
Rom 10 May 2005
- work fetch and CPU scheduling fixes (from John McLeod)
- Convert screen saver debug messages to scoped messages so that everyone
can see them by adding a flag to log_flags.xml
client/
app_graphics.C
client_msgs.C, .h
client_state.C
cs_scheduler.C
log_flags.C, .h
scheduler_op.C
ss_logic.C
Bruce 11 May 2005
- Eliminate some annoying 'undefined index' errors in PHP log. Note
that in general the right way to use _GET[] is like this:
$x=default_value;
if (isset($_GET["x"])) $x=$_GET["x"];
This prevents PHP notice-type error messages.
- Eliminate some annoying undefined variables
- Typo in download_network.php
html/
inc/
forum.inc
util.inc
prefs.inc
forum_show.inc
db_forum.inc
host.inc
db_ops.php
user/
prefs.php
sample_rss_main.php
download_network.php
top_teams.php
show_host_detail.php
team_display.php
top_hosts.php
top_users.php
create_account_form.php
logout.php
view_profile.php
Rom 11 May 2005
- When adjusting the graphics mode to the application from within
the application use the acked_graphics_mode instead of the
current_graphics_mode since the current
graphics mode is what we would like to be,
not necessarily what we are.
api/
windows_opengl.C
David 11 May 2005
- scheduler: fixed bug where rpc_seqno wasn't getting updated
db/
boinc_db.h
sched/
handle_request.C
server_types.C
Bruce 12 May 2005
- forums: allow project admin, project developers and forum moderators
to edit their own posts at any time (not just within one hour).
- scheduler: if host reaches daily result quota and contacts the scheduler,
tell it to delay until a random time falling within the first hour
of the following day.
Previously the host would be told to delay one hour,
which could lead to as many as 24 retries in a one-day period.
html/
user/
forum_edit.php
sched/
sched_send.C
David 12 May 2005
- db_dump: don't exit if user lookup fails
- user web: improve processing of team names (from Rob Ogilvie)
html/
inc/
team.inc
util.inc
user/
team_create_action.php
team_display.php
team_edit_action.php
sched/
db_dump.C
David 12 May 2005
- core client: dir_scan() shouldn't skip over all entries
starting with ".". It should only skip over "." and "..".
lib/
filesys.C
David 12 May 2005
- parse unused ACTIVE_TASK entries to avoid error messages
client/
app.C
Rom 12 May 2005
- Bug Fix: ShutdownSaver() can be called from the data management thread
in the scrrensaver, so specifically look up the primary window and
post a quit message there instead of the default window proc of the
thread, which in our case doesn't exist.
- Bug Fix: Remove MODE_QUIT from the CC logic and use MODE_HIDE_GRAPHICS
with is_ss_app to stop the screensaver. Some projects were not giving
us the MODE_QUIT message and so the screensaver wouldn't shutdown in
a timely manor.
api/
windows_opengl.C
client/
app_graphics.C
client/win/
win_screensaver.cpp
Charlie 13 may 2005
Mac: Update build instructions.
Fix compile error.
client/
main.C
mac_build/
HowToBuildBOINC_XCode.rtf
Janus 13 May 2005
- Really make optional fields (postal code and url) optional
For those who rewrite stuff to using get_str etc please remember to
consider if the variable is optional (add true to get_str) or not.
- Added support for css class names in start_forum_table:
Use array(array("Header 1", "style_name_1"), "Header 2", array("Header 3", "style_name_2"))
It defaults to the old "heading" style.
- Checking in patch from Rob Oglivie:
- Figured out how to simply merge two objects together in
db_forum.inc's forum preferences function
- Moved forum-related text transforming functions in to
text_transform.inc - these can certainly be used elsewhere
- Defined a text transforming options class where default options
are set
- Created a new output_transform() function that takes text and options
and outputs text transformed as such.
- Implemented said function in show_post and show_post2, as well as in
the signature preview on edit_forum_preferences_form.php
- Various wrappers and modifiers to clean up forum-related table
display when people use long nonbreaking words for thread subjects or
their usernames. These fixes all work in Firefox. IE, Opera, and KTHML
users will get most of the benefits, but not all of them.
- Wrote a page explaining how to use bbcode tags and linked to it
instead of the allowed HTML tags section
- After editing forum preferences, people are now taken back to the
forum preferences page again - so they can see how it looks
- Quoting text on the forums now uses bbcode instead of HTML
- Added a signature delimiter
- Renamed get_settings_from_user to get_transform_settings_from_user
- Made compile_languages optional in the translator (wow how did anything work
without this in earlier versions?)
html/
inc/
db_forum.inc
forum.inc
forum_show.inc
translation.inc
util.inc
text_transform.inc (new)
user/
edit_forum_preferences_form.php
edit_forum_preferences_action.php
edit_user_info_action.php
forum_edit.php
forum_reply.php
forum_thread.php
white.css
bbcode.php (new)
Rom 13 May 2005
- When an application is in screensaver mode,
do not respond to the WM_CLOSE event since Intellitype/Intellipoint
will try to shutdown the screensavers.
- When in screensaver mode respond to a power broadcast event
by shutting ourselves down so the OS can go to sleep.
api/
windows_opengl.C
Rom 13 May 2005
- Cause the screensaver process to exit when a power broadcast event
is fired. It was already shutting down the screensaver
when the APMSUSPEND event was fired
but now we shutdown during the system query phase which happens
before the system actually decides to shutdown
client/win/
win_screensaver.cpp
David 14 May 2005
- fix bug where multiple scheduler RPCs or master file fetches
could be started simultaneously (this is a no-no).
- NET_XFER_SET::do_select(): don't add a socket to fd_set
if io_done is true.
This causes the select() to fail and all I/O locks up.
- break out English strings for socket errors
into a separate function (socket_error_str())
instead of having them embedded in resolve_hostname() (???)
client/
cs_scheduler.C
net_xfer.C
scheduler_op.C
win/
wingui_mainwindow.cpp
lib/
network.C,h
Charlie 15 may 2005
Mac: Update XCode project and build instructions for
OS 10.4 (Tiger) and XCode 2.0. Fix gcc-4.0 compiler warning.
clientgui/
mac/
mac_saver_module.cpp
mac_build/
HowToBuildBOINC_XCode.rtf
boinc.pbproj/
project.pbxproj
David 15 May 2005
- small web cleanup
html/
inc/
mail.inc
user/
mail_passwd.php
David 15 May 2005
- fix bug where sometimes master file fetch
or user-requested scheduler RPC wouldn't happen
- SCHEDULER_OP::init_get_work(): remove master_file_only argument
NOTE: functions should do one thing only.
Please do not overload them with extra arguments
and orthogonal functionality
client/
cs_scheduler.C
scheduler_op.C,h
Janus 16 May 2005
- Don't send reply-notifications in the forum to the user who posted the
reply, this just adds needless datatransfer for sending the mail and
later because the user will check if there actually was a reply...
html/
inc/
subsribe.inc
user/
forum_reply.php
Bruce 17 May 2005
- scheduler: use locking to prevent more than one scheduler instance from
running for a given host. This works by creating a file called
CGI_ in the cgi-bin/ directory, and using Posix advisory file
locking. I have been testing this code for three days and am seeing
*some* invocations of this. David, I'll send details to the dev mailing
list or talk with you about it later this week. Note: this code probably
can be removed in the future, when the core client problems are fixed.
Also note: I don't know if this is compatible with the fast cgi sched.
sched/
handle_request.C
server_types.h
Charlie 17 May 2005
Mac: SetVersion now automatically updates version number
string in all 5 files where needed, but does not touch
these files if the version number is current. Update build
instructions to reflect this new automation.
Fix new warnings from gcc 4.0 compiler. Installer makes
old BOINC quit before starting newly installed BOINC Manager.
clientgui/
mac/
mac_saver_module.cpp
SetVersion.C
mac_build/
HowToBuildBOINC_XCode.rtf
boinc.pbproj/
project.pbxproj
mac_installer
BOINC.pmproj (new, replaces BOINC.pmsp in Tiger)
PostInstall.cpp
Bruce 17 May 2005
- forum style: use 'comma-separated' number format for credit/RAC
html/
inc/
forum.inc
David 17 May 2005
- (from Bruce Allen) fix bug in scheduler in case where
host has been merged,
and results are reported with old (zombie) host ID.
Results in the DB have already been updated to new hostid;
compare with that ID, not old ID
- move mylockf() to sched_util.C
(eliminate duplicate definition in scheduler/file upload handler)
- move delete_file_from_host() to sched_locality.C
sched/
file_upload_handler.C
handle_request.C
sched_locality.C,h
sched_util.C,h
Rom 17 May 2005
- Bug Fix: The Mac screensaver sends us a MODE_HIDE_GRAPHICS even before
it acknowledges the MODE_FULLSCREEN change which in turn tells the CC
to shutdown the screensaver. So lets improve the robustness of the
shutdown logic to only shutdown the screensaver if the CC has received
an ack for the MODE_FULLSCREEN message.
client/
app_graphics.C
Charlie 18 May 2005
Mac: Fix some compiler warnings. Add --build=powerpc-apple-darwin to
configure args in build instructions to force generic platform name.
Fix core client redirection when launched by screensaver.
mac_build/
HowToBuildBOINC_XCode.rtf
boinc.pbproj/
project.pbxproj
clientgui/
mac/
mac_saver_module.cpp
Rom 18 May 2005
- Bug Fix: After starting the CC wait for 5 seconds to give the CC time
to establish the listening socket for the next rpc request.
- Convert the remaining #ifdef'ed debug messages into scoped messages
so they can be tracked in debug/release builds on all platforms.
- We store most if not all time values internally as doubles, so make
the calls to time(0) to dtime() to see if that fixes a deadline
problem on the mac with the screensaver.
client/
app_graphics.C
ss_logic.C
clientgui/
BOINCGUIApp.cpp
Charlie 18 May 2005
Mac: Eliminate an absolute library search path in project.
In build instructions, don't suggeest using jpeglib.h from
seti_boinc project.
mac_build/
HowToBuildBOINC_XCode.rtf
boinc.pbproj/
project.pbxproj
David 19 May 2005
- Core client: When proxy info is updated (via RPC) send a
message to the process_control channel,
telling the app to reread the app_info file (for Folding@home)
api/
boinc_api.C,h
client/
app.h
app_control.C
cs_scheduler.C
gui_rpc_server.C
Charlie 20 May 2005
Mac: Change how wxWidgets libraries are linked so the static
versions are used even if the dynamic libraries are present.
Add information to Build instructions for passing arguments to
the Core Client for debugging under XCode.
mac_build/
HowToBuildBOINC_XCode.rtf
boinc.pbproj/
project.pbxproj
David 20 May 2005
- changed download page to make it small;
details are on separate pages.
- removed "high_priority" and "return_result_immediately" attributes
from RESULT (no changes like this without discussion!)
client/
client_types.C,h
cs_scheduler.C
doc/
download.php
versions.inc (new)
David 20 May 2005
- Added mechanism to report results sooner in some cases.
- results have a new field "completed time":
the time when ready_to_report was set.
- a project's completed results are reported when either
1) the time is within a day of a report deadline, or
2) the time is more than work_buf_min_days after
r.completed_time for some result r.
client/
client_state.C
client_types.C,h
cs_scheduler.C
Rom 20 May 2005
- Reduce flicker in the screensaver by delaying the request to
enter fullscreen mode until after the app has ack'ed the hide_graphics
request.
- Fix what appears to be a long standing bug in the Windows screensaver
where after the first execution of the screensaver the core client
continues to report the screensaver mode as SS_STATUS_QUIT even when
the screensaver is starting up for the second time which causes the
screensaver to exit.
client/
app_graphics.C
ss_logic.C
client/win/
win_screensaver.cpp
David 20 May 2005
- get rid of warnings in ACTIVE_TASK parse
client/
app.C
Rom 20 May 2005
- Fix the one off bug that would allow the screensaver to continue operation
when only one click of the mouse occurred or one click of the keyboard.
client/
app_graphics.C
Charlie 21 may 2005
Mac: If core client exits screensaver mode but Mac screensaver engine
doesn't (as in the case of a mouse button click with no mouse movement)
then show message "BOINC is no longer in screensaver mode."
Update installer to work around problems launching BOINC Manager.
clientgui/
mac/
mac_saver_module.cpp
mac_installer/
postinstall
postupgrade
PostInstall.cpp
David 21 May 2005
- API: there seem to be problems with the user of timer signals
in the BOINC API (Unix version).
On some platforms the signals are delivered to both
the worker and graphics thread,
and they can deadlock on something down in _vprintf().
Rather than try to sort this out,
we'll switch to using a separate thread instead of signals.
(from J.R. Oldroyd)
api/
boinc_api.C
Rom 21 May 2005
- Bug Fix: The ATI graphics drivers do not like to be told to switch
to the original desktop and window station that the application started
with. So now the application will detect which window station and
desktop it is currently running under and only switch if it is different
from the desired desktop and window station. There was no API
failure codes to look for, the application believed everything was
running like it was supposed to be.
api/
windows_opengl.C
Charlie 22 may 2005
Fix problems launching BOINC Manager from installer. Build release
using BOINC.pmsp with PackageMaker 1.2 (from XCode 1.5 / Panther)
instead of BOINC.pmproj with PackageMaker 2.0 (XCode 2.0 / Tiger)
to avoid "null volume" error when installing on Mac OS 10.3.x. So
updated version number strings in BOINC.pmsp.
mac_installer/
BOINC.pmsp
postinstall
postupgrade
PostInstall.cpp
David 22 May 2005
- debugged yesterday's API change on Linux.
It worked OK except CPU time wasn't getting reported.
It turns out that getrusage(), on Linux at least,
returns CPU time only for the calling thread
(in this case the timer thread,
whereas we wanted the worker thread).
So: put back a timer signal, but use it ONLY to get worker CPU time,
and only do that if the worker thread is the one handling the signal.
Store the worker CPU time in a variable (worker_thread_cpu_time)
which is read by the timer thread.
Aargh!!
Still need to make sure this works on Mac OS X, Solaris etc.
api/
boinc_api.C
graphics_impl.C
David 22 May 2005
- screensaver logic: if > 1 apps are running (e.g. multiprocessor)
switch between them every 10 minutes
- compile fix for Win
api/
boinc_api.C
client/
app_graphics.C
ss_logic.C
David 22 May 2005
- Unix API: don't do any floating-point math in the timer signal handler
- compile fixes
api/
boinc_api.C
Charlie 22 may 2005
Mac: add build of boinc_cmd command-line application to XCode project.
Remove wxRESIZE_BORDER from dialog styles so they are not resizeable.
clientgui/
DlgAbout.h
DlgAccountManager.h
DlgAttachProject.h
DlgConnection.h
DlgOptions.h
DlgSelectComputer.h
mac_build/
boinc.pbproj/
project.pbxproj
David 22 May 2005
- compile fix
api/
boinc_api.C
Rom 23 May 2005
- Modify the configure.ac script to explicitly state which combination
of wxWidget libraries we need to link against, otherwise it will
fall back to a default which may cause more harm than good.
/
configure.ac
David 23 May 2005
- scheduler fixes (from John McLeod and others)
- estimate remaining CPU correctly if frac done = 0
- avoid div by zero error
- fix seconds-per-day scaling problem
client/
app.C
client_types.C
cs_apps.C
cs_scheduler.C
scheduler_op.C
Rom 23 May 2005
- Introduce a change in the screensaver logic so that it checks user idle
activity before informing the screensaver to shutdown, so that in the
case of an application exiting due to it completing the result the CC
can promote another application to screensaver status and continue on.
client/
app_graphics.C
David 23 May 2005
- added entry to sched config file (optional).
Specifies where scheduler PID lockfiles are kept
(default is cgi-bin dir)
sched/
handle_request.C
sched_config.C,h
David 23 May 2005
- factored out CLIENT_STATE::adjust_debts()
from CLIENT_STATE::schedule_cpus()
client/
cs_apps.C
Charlie 24 may 2005
Tweaked Rom's fix to screensaver logic to also check if previous mode
was MODE_FULLSCREEN. This makes it work reliably when screensaver is
activated by moving mouse into hot corner.
client/
app_graphics.C
David 24 May 2005
- Removed "max_projects_on_client" from GLOBAL_PREFS structure.
- added RESULT::computing_done() function.
This replaces explicit references to RESULT::state
- minor code cleanup in CPU scheduler
client/
client_types.C,h
cs_apps.C
cs_scheduler.C
lib/
prefs.C,h
result_state.h
Rom 24 May 2005
- Instead of going to sleep to give the CC enough time to open a
listening socket we should attempt to connect after we have received
our first OnFrameRender timer event which will happen after at
least one window idle event.
clientgui/
BOINCGUIApp.cpp
MainFrame.cpp, .h
Rom 24 May 2005
- Throttle back how often the UI is aloud to update itself to two times
a second, the Mac was consuming 12% of the CPU just processing events
in the BOINC Manager
clientgui/
MainFrame.cpp
Charlie 25 may 2005
Mac: If core client sends screensaver SS_STATUS_QUIT, kill the
screensaver engine if it has not quit after 1 second. Eliminate
"BOINC is no longer in screensaver mode" message.
clientgui/
mac/
mac_saver_module.cpp
David 25 May 2005
- Changed the interface for creating a GUI RPC connection.
RPC_CLIENT::init() synchronous
RPC_CLIENT::init_asynch(double timeout, bool retry)
If retry is true, keep trying (alternating between
alternate and main ports) until succeed or time out.
This is used by the BOINC manager when it starts up
the core client, since it may take many seconds before
the core client runs and creates the listening socket.
NOTE: the BOINC Manager sees if the core client is running by
connecting to it. It then closes this connection and connects again.
Would be better to connect just once.
clientgui/
BOINCGUIApp.cpp
MainDocument.cpp
lib/
boinc_cmd.C
gui_rpc_client.C,h
David 25 May 2005
- don't initiate scheduler RPC is activity suspended
client/
cs_scheduler.C
David 25 May 2005
- if an app hasn't checkpointed yet, never preempt it by killing it
(even in CPU benchmark case)
client/
app_control.C
cs_apps.C
cs_benchmark.C
David 26 May 2005
- feeder: added a "-mod n i" option.
This lets you run schedulers on more than one host.
db/
boinc_db.C,h
sched/
feeder.C
David 26 May 2005
- file_deleter: if a file is present but can't be deleted,
don't mark the WU or result as file_delete_state = DONE;
leave it in state READY.
This addresses the case where files can't be deleted because
of dir permissions.
If such an error occurs, sleep for 5 seconds before next scan
(avoid rapid infinite loop)
(From Kevin Reed)
- Change log messages in file_deleter to same format as other daemons,
e.g. [WU#12345]
sched/
file_deleter.C
Rom 26 May 2005
- Include version information for boinc_cmd.exe so the Windows installer
will know it can upgrade the file with future revisions.
client/win/
boinc_cli.rc
boinc_cmd.rc, .h (Added)
win_build/
boinc.sln
boinc_guirpc_test.vcproj
Rom 26 May 2005 (boinc_public)
- Tag for 4.44 release, all platforms
boinc_core_release_4_44
David 27 May 2005
- added help and version cmdline options to boinc_cmd.C
(from Eric Myers)
lib/
boinc_cmd.C
David 28 May 2005
- commented out RedHat stuff from config.guess
(fix problem where Linux platform name contains "redhat")
config.guess
David 28 May 2005
- reschedule CPUs when resume activities for whatever reason
(from Jim Harris)
client/
cs_prefs.C
David 28 May 2005
- BOINC manager: changed message in work tab
try to make it clear WHY a result is not running
Not quite done - need to show if project is suspended
- BOINC manager: changed message in projects tab
"Project suspended" -> "Suspended by user"
Also, don't show "won't get new work"
- BOINC manager code cleanup
- got rid of enums in CMainDocument for RESULTTYPE, CPU_SCHED_TYPE,
and RUN_TYPE.
?? Why make new constants when we already have perfectly good ones?
- got rid of (in CMainDocument):
bool IsProjectSuspended(int iIndex);
bool IsProjectRPCPending(int iIndex);
bool IsProjectAllowedToGetWork(int iIndex);
int GetWorkState(int iIndex);
int GetWorkSchedulerState(int iIndex);
bool IsWorkAborted(int iIndex);
bool IsWorkAcknowledged(int iIndex);
bool IsWorkActive(int iIndex);
bool IsWorkReadyToReport(int iIndex);
bool IsWorkSuspended(int iIndex);
clientgui/
BOINCTaskBar.cpp
MainDocument.cpp,h
ViewProjects.cpp
ViewWork.cpp
David 31 May 2005
- Add 2 new items to scheduler RPC request:
-
List of other results for this project
(besides those being reported, if any)
This can be used by the scheduler to resend
previously sent results that were lost somehow.
Includes only the name of the result.
-
List of all results for which computation is not done.
Includes estimated remaining CPU time, report deadline.
This can be used by the scheduler to decide whether
to send short-deadline results.
Note 1: the scheduler doesn't use the above info yet.
Need to get this code into clients first.
Note 2: I used tag names and
for the results within each element.
This will prevent the current scheduler from
mistaking them for elements being reported.
This is a kludge, but is fixed in new scheduler code
(see next item)
- add skip_unrecognized() function to lib/parse.C
Call this when get an unrecognized line.
If it's a single tag "",
this will skip all lines up to and including ""
- Change Win name from "BOINC Daemon" to "BOINC client"
(let's not introduce random new terms at this point)
- boinc_cmd: print error messages in some cases
(should finish this to handle other cases)
- fix bug in boinc_cmd: wasn't connecting to alternate port
client/
cs_scheduler.C
win/
boinc_cli.rc
lib/
boinc_cmd.C
gui_rpc_client.C,h
parse.C,h
util.C
sched/
server_types.C
David 31 May 2005
- core client: remove extraneous scheduling-related messages.
Just say when we're entering/leaving either
no-work-fetch mode or deadline-scheduling mode
- got rid of work_request arg to
CLIENT_STATE::make_scheduler_request() and
SCHEDULER_OP::init_op_project()
- When making a scheduler RPC, always show
the work request and the # of results being returned
client/
client_state.h
client_types.h
cs_apps.C
cs_scheduler.C
scheduler_op.C,h
David 31 May 2005
- If a project has multiple scheduler URLs,
contact them cyclically but starting at a random index.
- Add error-checking on start_rpc() for schedulers beyond the first one.
This might fix some of the problems seen recently with Pirate.
client/
client_state.C
client_types.C,h
scheduler_op.C,h
David 1 June 2005
- Restrict the account management mechanism to reduce its security risk.
1) am_create.php now returns an error if an account
(validated or not) exists with the given email address.
2) The account-confirmation email cautions the recipient
to ignore it if they didn't make the request
2) am_query.php returns an error if an account with same email exists.
- Add an "acct_mgr_name" argument to am_create.php so we can
tell the user where the request came from
The reason for this change is as follows.
Suppose a hacker X knows or guesses the email address of a user Y.
X sends an am_create RPC to the project.
Y receives an email and, without thinking, clicks on the URL.
X then does an am_query RPC and gets Y's authenticator.
These changes prevent this attack.
There's still a small security risk.
A hacker could spam a project with am_create RPCs
with various known email addresses.
A small fraction of recipients might click on validate link,
which would create accounts with authenticators known to the hacker.
However I don't see this as a significant problem.
html/
inc/
email.inc
user/
am_create.php
am_query.php
login_action.php
David 1 June 2005
- Reorganization of schedule RPC and master file fetch code
trying to get rid of bug where once project's scheduler URLS
end up in another project.
The following conditions are either all true or all false:
1) SCHEDULER_OP::project is nonzero
2) SCHEDULER_OP::state is not IDLE
3) SCHEDULER_OP::http_op is in HTTP_OP_SET.
These become true in:
SCHEDULER_OP::start_rpc()
SCHEDULER_OP::init_master_fetch()
These become false in:
SCHEDULER_OP::poll() (when an operation finishes)
SCHEDULER_OP::abort() (called when reset or abort project)
- Changed SCHEDULER_OP from struct to class and hid some of its data
client/
client_state.C
cs_scheduler.C
schedule_op.C,h
David 1 June 2005
- a result is not "in progress" if it's ready to report
client/
client_types.C
David 1 June 2005
- Scheduler: when send the client a delay request because
it's contacted us before min_sendwork_interval,
add an additional 1% to the delay request.
This handles the case where the client's clock is
slightly faster than the servers,
and it repeatedly does an RPC slightly before it should
(from John McLeod)
sched/
handle_request.C
David 1 June 2005
- add and
items to GUI RPC "get_state" reply.
These indicate the current work-fetch and CPU sched policies.
They're integers - 1 means in effect, 0 means not.
- don't write cpu_sched_work_done_this period to statefile,
or in get_state GUI RPC
client/
client_state.h
cs_statefile.C
David 2 June 2005
- add a new value FILE_DELETE_ERROR for file delete state
(for when the unlink failed, e.g. because of permissions).
- add a new cmdline flag -retry_errors to file deleter
(from Kevin Reed)
db/
boinc_db.h
html/inc/
db_ops.inc
sched/
file_deleter.C
David 2 June 2005
- Scheduler: don't write Content-type: text/plain twice
(from Bruce Allen)
- move set_core_dump_size_limit() code to separate function
sched/
handle_request.C
main.C,h
David 2 June 2005
- scheduler/work fetch changes
(from John McLeod)
client/
app.C
client_types.C
cs_apps.C
cs_scheduler.C
David 3 June 2005
Stuff related to per-host lockfiles in scheduler:
- enable locking only if is present in config file
- delete lockfiles from sched_lockfile_dir (NOT necessarily CGI dir)
- if mylockf(fd) fails (can't lock file) close fd before returning
Otherwise would overflow fd limit under FCGI
- Fix error message if lock_sched() returns -1
(-1 is not a PID)
- move lock-release logic into separate function (unlock_sched())
sched/
handle_request.C
sched_util.C
David 6 June 2005
- remove char* versions of starts_with() and ends_with().
(Attempt to fix app_start problem on HPUX)
client/
cs_trickle.C
file_names.C
lib/
util.C,h
David 6 June 2005
- (scheduler changes from John McLeod):
I believe that I may have found the idle CPU problem for multiple CPUs.
I have also changed one variable name that was apparently
causing some confusion and chqanged a couple of debug messages
to print a bit more information.
client/
cs_scheduler.C
net_xfer.C
David 6 June 2005
- Manager: show frac done correctly
(from Glenn Dill)
clientgui/
ViewWork.cpp
David 7 June 2005
code cleanup in CPU sched/work fetch area:
- introduced concepts of
"runnable result"
"runnable project"
"potentially runnable project"
These encapsulate a lot of the checks
(suspended via gui, blah blah) that we do everywhere.
For each of these, added a bool function.
- rename things in terms of these concepts, e.g.
local_total_resource_share -> runnable_resource_share
(i.e. sum of resource shares of runnable projects)
local_total_lt_available_resource_share
-> potentially_runnable_source_share
- eliminate the use of PROJECT::next_runnable_result
as an indicator of whether a project has a runnable result.
Just call PROJECT::runnable().
Eliminate the use of assign_results_to_project()
to see if projects have a runnable result.
- rename "debt" to "short_term_debt", including in client_state.xml
(this will cause one-time parse error, shouldn't hurt anything)
client/
client_types.C,h
cs_apps.C
cs_scheduler.C
Rom 7 June 2005 (boinc_public)
- Tag for 4.45 release, all platforms
boinc_core_release_4_45
David 7 June 2005
- core client: eliminated the practice of passing "now" (time of day)
as an argument, e.g. to poll functions.
Instead, reference gstate.now.
This is updated at the top of do_something().
If you're doing something that requires high resolution
(e.g. NET_XFER_SET_POLL()) then call dtime() yourself.
client/
*.C, *.h
Rom 7 June 2005 (from Walt Gribben)
- Adjust the logging functions so they do not randomly write outside
the scoped area defined for spacing which might cause random crashes
lib/
msg_log.C
David 7 June 2005
- core client: store the overall work fetch urgency in
CLIENT_STATE::overall_work_fetch_urgency,
and don't pass it around as an argument
- add PROJECT::downloading(): true if the project
has a result in state RESULT_FILES_DOWNLOADING
- got rid of "old" argument to CLIENT_STATE::next_project_need_work()
- CLIENT_STATE::compute_work_requests():
return value is an error code, not overall urgency.
client/
client_state.h
client_types.C,h
cs_scheduler.C
scheduler_op.C,h
David 7 June 2005
- code cleanup: use new functions (like RESULT::runnable() etc.)
instead of inspecting member variables (like suspended_via_gui)
- Added RESULT::runnable_soon(): true iff result is
downloading or runnable, not suspended, project not suspended
- fix bug in Rom's last checkin (Rom, please verify)
client/
client_types.C,h
cs_apps.C
cs_scheduler.C
scheduler_op.C
lib/
msg_log.C
network.C,h
David 7 June 2005
- FILE_INFO::verify_file(): if a file fails verification,
set its "status" field to the appropriate error code.
This wasn't being done, so in most cases the
core client would verify the file over and over.
This was exacerbated by a bug I introduced 7 months and 3 weeks ago
(and fixed earlier today).
In CLIENT_STATE::update_result() I had
if (now - last_time < 1.0) return false;
last_time = 0;
It should be "now", not zero. This caused pending input files to
get checked 10 times a second, rather than once.
client/
cs_files.C
Rom 7 June 2005 (boinc_public)
- Tag for 4.45a release, all platforms
boinc_core_release_4_45a
David 8 June 2005
- core client: add constructor and destructor to NET_XFER,
and have them close the file and/or socket if present.
This should fix a bug where a file was left open
in the case of a download failure,
causing process creation failure later on.
client/
app.C
http.C
net_xfer.C,h
pers_file_xfer.C
David 8 June 2005
- API, Unix/Linux/Mac:
Don't use a SIGALRM signal in the worker thread to get CPU time.
It turns out that the signal handler is usually
called in a different thread anyway,
and getrusage() return CPU time for the entire process,
so it doesn't matter what thread we call it from.
Instead, just call getrusage() from the timer thread.
(From J.R. Oldroyd and Bernd Machenschalk)
api/
boinc_api.C
David 8 June 2005
- Added a new general preference: start/end hours for network communication
client/
client_state.C,h
cs_prefs.C
prefs_file_xfer.C
html/inc/
prefs.inc
lib/
prefs.C,h
David 8 June 2005
- Check network start/end hours even if user_network_request is ALWAYS.
Currently that's the default,
and in fact there's no interface for changing it to AUTO.
- CLIENT_STATE::scheduler_rpc_poll():
check for master file fetch and user-requested scheduler RPCs
before checking network_suspended flag.
Otherwise the user might get into a state where their
prefs don't allow network access (e.g. because of time-of-day),
and they can't do an "update" to change the prefs
client/
cs_prefs.C
cs_scheduler.C
win/
wingui_mainwindow.cpp
David 8 June 2005
- bug fix in net stats calculation
(from Glenn Dill)
- refactor code so adjust_debts() is independent from schedule_cpus()
- call adjust_debts() from quit_activities(), so that long-term debt
updated and written to state file when exit core client
(from Glenn Dill)
client/
client_state.h
cs_apps.C
cs_benchmark.C
net_stats.C
David 9 June 2005
- Changed variable names from "work_done" to "wall_cpu_time";
it's important to emphasize that debt accounting
is done on the basis of how long a process is running,
NOT how much CPU time it actually or reportedly got.
- don't count non-CPU-intensive apps in calculation of
total_wall_cpu_time_this_period
- fixed crash if you run core client with -attach_project X
client/
client_state.C,h
client_types.C,h
cs_apps.C
cs_cmdline.C
David 10 June 2005
- Fixed major goof in last checkin:
caused all debt calculations to be no-op
- Manager: in "status" column of Projects tab,
show all relevant info, comma-separated
client/
cs_apps.C
clientgui/
ViewProjects.cpp
David 10 June 2005
- BOINC Manager: change things so that if user tries to
attach to a project and it fails,
an alert dialog shows up within a few seconds,
saying what went wrong and what to do about it.
This involves several pieces:
- add a new core client message priority: MSG_ALERT.
The accompanying message should be shown in an alert dialog.
- CLIENT_STATE::add_project: show alert msg if URL or key is bad
- project_add_failed(): add a "reason" argument,
and show alert messages accordingly
- change SCHEDULER_OP::check_master_fetch_start(), SCHEDULER_OP::poll()
to call project_add_failed() with appropriate reason
- CMainDocument::CachedMessageUpdate():
scan new messages; if any are MSG_ALERT priority, show alert.
Else append to main message vector.
- CMainFrame::OnListPanelRender(): call pDoc->CachedMessageUpdate().
This is the easiest way I could find of checking new messages
every 5 seconds, even when not in the Messages tab.
NOTE: there's one piece I didn't do.
When the Manager connects to a core client with some ALERT messages
already in its message log, it probably shouldn't show alerts for them.
Rom, please figure out how to do this.
client/
client_msgs.h
cs_account.C
gui_rpc_server.C
main.C,h
scheduler_op.C
win/
wingui_mainwindow.cpp
clientgui/
MainDocument.cpp,h
MainFrame.cpp
ViewMessages.cpp
lib/
gui_rpc_client.h
David 11 June 2005
- changed project_add_failed() to a member function of PROJECT
(PROJECT::attach_failed).
Move code out of main.C,h
- Removed special project_add_failed() from Win GUI code.
client/
client_types.h
cs_account.C
main.C,h
scheduler_op.C
win/
wingui_mainwindow.cpp
David 11 June 2005
- CLIENT_STATE::find_project_with_overdue_result():
need to convert work_buf_min_days to seconds
(from Jim Harris)
client/
cs_scheduler.C
David 12 June 2005
- In language names in .po files,
use HTML special characters (e.g. à)
instead of non-ASCII characters
- user web: fix bug in language select page (from Jens)
- db_dump: don't exit if user lookup fails
- change wording of user-name lookup: "starts with", not "contains"
html/
language/translations/
ca.po
user/
language_select.php
user_search_action.php
sched/
db_dump.C
Rom 13 June 2005
- Code clean for the Manager
- Added two new HTTP_STATUS constants, but haven't done anything with
them yet.
- The title of the account manager dialog is the name of the
organization managing the accounts.
client/
http.C
scheduler_op.C
clientgui/
BOINCBaseView.cpp, .h
BOINCTaskBar.cpp
MainDocument.cpp, .h
MainFrame.cpp
ViewMessages.cpp
ViewProjects.cpp, .h
ViewResources.cpp
ViewStatistics.cpp
ViewTransfers.cpp
ViewWork.cpp
David 13 Jan 2005
- Add code (in TIME_STATS) to compute a quantity "cpu_efficiency".
This is the ratio between CPU time accumulated by BOINC apps
and the wall time those apps are scheduled at the OS level.
It may be less than one if
1) apps page or do I/O
2) other CPU-intensive apps run
This is computed with a 1-day exponential smoothing.
For now, we're just computing this.
At some point we'll use it to estimate how long will take.
(from Glenn Dill)
client/
client_state.h
cs_apps.C
time_stats.C,h
David 13 June 2005
- bug fix in Manager: can't pass a std::string to printf(%s)
clientgui/
ViewWork.cpp
David 13 June 2005
- get Manager to compile on Windows:
- can't do DynamicCast stuff for non-wx objects
- don't bother doing both ASSERT(p) and if(p).
Better yet, don't do either
clientgui/
BOINCTaskBar.cpp
ViewMessages.cpp
ViewProjects.cpp
ViewResources.cpp
ViewStatistics.cpp
ViewTransfers.cpp
ViewWork.cpp
David 13 June 2005
- core client: estimate CPU time to completion of an active result
as a weighted average of estimates based on
1) the workunit's flops count
2) the current reported CPU time and fraction done,
weighted by the fraction done.
This gives better estimates for apps that don't
estimate their fraction done well (e.g. SETI@home).
It should eliminate a behavior where the client gets 1 result,
starts running it, and immediately requests more work.
- core client: fix bug where we'd to a master file fetch
after every scheduler RPC
- core client: show messages when downloading master page,
and when it succeeds or fails
NOTE: I was seeing a bug where each file transfer would fail
immediately with a CONN_REFUSED error (10061 on Win),
but would succeed on retry.
This went away when I changed the settings on my
Symantec Personal Firewall to not check outgoing connections.
Seems like a bug in Symantec to me.
client/
app.C
cs_account.C
net_xfer.C
scheduler_op.C
David 13 June 2005
- core client: don't reset projects on major version change
client/
client_state.C
David 14 June 2005
- core client: use "potentially runnable resource share"
instead of "total resource share" in several places:
- estimating how long a project's work will take
- how many CPUs a project should occupy
- the "resource share fraction" reported to schedulers
The idea: if a process is not potentially runnable
(e.g. because it's suspended by user)
it's not going to get CPU time,
so it shouldn't be included in resource share calculations.
(suggested by Jim Harris)
- rename CLIENT_STATE::ettprc() to time_until_work_done();
add a "subset resource share" parameter
- get rid of the global variable "trs" (total resource share)
- make proj_min_results() a member of CLIENT_STATE,
remove the "ncpus" param, and add a "subset resource share" param
- CLIENT_STATE::avg_proc_rate() now computes processing rate
across all projects
- Multiply by TIME_STATS::cpu_efficiency in avg_proc_rate()
- add functions runnable_resource_share() and
potentially_runnable_resource_share() to CLIENT_STATE
- set_cpu_scheduler_modes(): remove "* ncpus" from
if (frac_booked > MAX_CPU_LOAD_FACTOR * up_frac * ncpus)
(John: is this right?)
Note: in some cases (e.g. if the work-fetch policy has
decided to get work only for 1 or 2 project),
the set of projects used in resource share calculations
should be smaller than the potentially runnable ones.
It's not clear how to do this.
client/
client_state.C,h
cs_apps.C
cs_data.C
cs_scheduler.C
David 14 June 2005
- code to get phys/virt memsize, NCPUs, OS name on HPUX
(from Lars Bausch)
client/
hostinfo_unix.C
Jeff 14 June 2005
- fixed a bug in the feeder code that handles the mod(result id)
functionality.
sched/
feeder.C
David 14 June 2005
- web: the XML variant of show_user.php now allows the
user to be identified either by ID or authenticator.
In the latter case, the output includes a list of the user's hosts.
html/
inc/
xml.inc
user/
show_user.php
David 14 June 2005
- avoid divide by zero in CPU efficiency calc
(from John McLeod)
client/
time_stats.C
David 15 June 2005
- Fixed pernicious API bug:
boinc_get_init_data() was copying the APP_INIT_DATA structure,
which contains a char*.
This produced 2 pointers to the same string,
and both pointers could eventually get free()d.
Solution: overload = and define a copy constructor for APP_INIT_DATA
- fixed minor bug in forum code:
rounding of ratings was wrong in the negative case
html/inc/
forum.inc
lib/
app_ipc.C,h
David 15 June 2005
Scheduler changes:
- renamed set_cpu_scheduler_modes() to set_scheduler_modes()
- in set_scheduler_modes(), moved result checks that
don't involve EDF simulation out of the loop that does EDF simulation.
- in set_scheduler_modes(), change logic so that booked_to
is in units of wall time, not CPU time.
Makes things clearer.
- removed the frac_booked logic from set_scheduler_modes().
I don't think this is correct.
e.g. result A has deadline 1, CPU 1; result B has deadline 2, CPU 1.
Then frac_booked would be 1.5, but we can meet both deadlines
- renamed MAX_CPU_LOAD_FACTOR to CPU_PESSIMISM_FACTOR
client/
cs_scheduler.C
David 15 June 2005
- Add host id, host_cpid to XML output of show_user.php
html/inc/
xml.inc
Rom 15 June 2005
- Due to the previous app_ipc.C change only the project preferences
were being copied, so expand on the previous check-in and copy the rest
of the APP_INIT_DATA data.
lib/
app_ipc.C,h
Charlie 16 June 2005
- Replace Mac BOINCManager icons with new ones contributed by Juho Viitasalo
client/
mac/
BOINCMgr.icns
David 16 June 2005
- use memcpy() in APP_INIT_DATA::copy()
lib/
app_ipc.C
Rom 16 June 2005
- Modify Account Manager interface two incorporate an additional dialog.
There is now a dialog for when you have already signed up with an
account manager, and one for when you need to provide account
manager informaton. Modifing the dialogs should happen from MainFrame.cpp
since the Dlg* files are autogenerated by DialogBlocks.
- Apparently, some languages do not like time to be dual purposed, so
change time to elapsed time for transfers.
clientgui/
BOINCGUI.pjd
DlgAccountManager.cpp, .h (Removed)
DlgAccountManagerSignup.cpp, .h (Added)
DlgAccountManagerSStatus.cpp, .h (Added)
Events.h
MainFrame.cpp, .h
ViewTransfers.cpp
David 16 June 2005
- validate account manager URL before trying to do RPC
- generate MSG_ALERT messages for account manager RPCs
(success or failure).
client/
acct_mgr.C
David 17 June 2005
- scheduler: handle_msgs_from_host():
if insert into msgs_from_host table fails,
don't acknowledge messages
(from Ian Hay)
sched/
handle_request.C
David 17 June 2005
- BOINC manager: get rid of
CMainDocument::IsAccountManagerFound() etc.
clientgui/
MainDocument.cpp,h
MainFrame.cpp
David 17 June 2005
- Run CPU on the same # of CPUs that BOINC will use,
reflecting global preferences.
(from Glenn Dill)
client/
cs_benchmark.C
cs_scheduler.C
Rom 17 June 2005
- Per community request, after verifing that the _CrtMemBlockHeader structure
is the same in VS 2005 I've adjusted stackwalkers requirements so that
BOINC can be built with VS 2005.
lib/
stackwalker.h
Charlie 18 June 2005
- Fix XCode project to use gcc 3.3 compiler for bnackward compatibility
with systems 10.3.0 through 10.3.8 as well as 10.3.9 and later.
- Use pre-built special config.h for Macintosh (don't require running
autoconf.)
- Modify version.h so PACKAGE_STRING is defined for Mac as well as Windows.
make this chaneg iin version.h.in so it will be retained when version.h
is rebuilt by configure process.
clientgui/
mac/
config.h (added)
version.h
version.h.in
David 18 June 2005
- CLIENT_STATE::set_scheduler_modes():
Remove EDF simulation.
Instead, simulate weighted round-robin,
and if a deadline is missed, use EDF
- Remove PROJECT::exp_avg_cpu, PROJECT::exp_avg_mod_time.
This was an attempt, introduced a while back but never used,
to improve estimates of result CPU time.
It's fatally flawed because it assumes all results
from a project are the same #FLOPs.
It will soon be replaced by a better mechanism.
client/
client_types.C,h
cs_apps.C
cs_scheduler.C
David 18 June 2005
- Add a per-project "duration correction factor" used
to scale the estimated CPU time of a result.
This should improve the accuracy of predictions of how much
CPU time results will take,
which should improve the effectiveness of the CPU scheduling
and work fetch policies,
and will also cause schedulers to send more appropriate
amounts of work (once we modify the scheduler)
(from John McLeod)
client/
client_types.C,h
cs_apps.C
cs_scheduler.C
David 18 June 2005
- don't let cpu_efficiency become negative.
Somehow it was -1 on my machine and that hosed everything
client/
cs_scheduler.C
time_stats.C
David 18 June 2005
- Refine the round-robin simulation added earlier today
to model multiple CPUs.
- Fix bug in update of duration_correction_factor
(both from John McLeod)
client/
client_types.C
cs_scheduler.C
David 19 June 2005
- bug fix in scheduler
(from Glenn Dill)
client/
cs_scheduler.C
David 19 June 2005
- work-fetch policy:
if fetching work would cause deadlines to be missed
(based on round-robin simulation) then don't fetch work
- factor simulations of EDF and round-robin
into separate functions
client/
client_state.h
cs_scheduler.C
David 19 June 2005
- change normalization of short-term debt so average (not min) is zero
client/
cs_apps.C
cs_scheduler.C
Rom 19 June 2005
- Checkin the rest of the Account Manager updates to the UI.
clientgui/
BOINCGUI.pjd
DlgAccountManagerStatus.cpp, .h
MainDocument.cpp, .h
MainFrame.cpp
lib/
acct_mgr_client.C, .h
David 20 June 2005
- Wrote version 3 of the round-robin scheduling simulator
(used to decide whether to enter EDF more,
and whether to suspend work fetch).
This version (CLIENT_STATE::rr_misses_deadline())
models the fact that when all the work for a project is finished,
the fractional resource share of other runnable projects increases.
So, e.g., a few short results and one long one,
which almost saturates the CPU, is feasible.
client/
client_state.h
client_types.h
cs_apps.C
cs_scheduler.C
David 21 June 2005
- Account management: move responsibility for the
acct_mgr_url.xml and acct_mgr_login.xml files
from the manager to the core client.
Do this because only the core client knows when an
account manager RPC has succeeded;
unless this happens, these files should not be changed.
Add new type ACCT_MGR_INFO to core client
(member of CLIENT_STATE).
Read files on startup.
When acct manager RPC succeeds, write files.
- Add new GUI RPC for getting acct manager info
- Manager: for "Manage Accounts", get account manager info via RPC,
then decide what dialogs to put up.
- Message types (replace MSG_ALERT):
MSG_ALERT_ERROR shows an error alert
MSG_ALERT_INFO shows an info alert
- Show on info alert when acct mgr RPC succeeds
- Manager: get rid of CMainDocument::UpdateAccountManagerAccounts()
(???)
client/
acct_mgr.C,h
client_msgs.h
client_state.C,h
cs_account.C
file_names.h
gui_rpc_server.C
main.C
clientgui/
MainDocument.cpp,h
MainFrame.cpp
lib/
acct_mgr_client.C,h (removed)
gui_rpc_client.C,h
win_build/
BOINCGUI.vcproj
David 21 June 2005
- GUI principle for manager:
For any user action that can potentially fail
(project attach, acct mgr update)
ALWAYS show an alert when the action is finished.
E.g. show "Attach succeeded" if an attach succeeds.
Don't require users to look in Messages for outcome.
- Add a "show_alerts" argument to add_project().
Says whether to show alert when attach succeeds or fails.
True for attaches via GUI,
false for others (e.g. account manager attaches)
- SCHEDULER_OP::backoff(): if account is tentative,
call attach_failed().
client/
acct_mgr.C
client_state.h
client_types.h
cs_account.C
cs_cmdline.C
gui_rpc_server.C
scheduler_op.C
clientgui/
MainDocument.cpp
David 21 June 2005
- Unix compile fixes
client/
main.C
clientgui/
Makefile.am
lib/
Makefile.am
David 21 June 2005
- Manager: don't reenter message-display code
(else can show same msg or alert twice)
clientgui/
MainWindow.cpp
David 21 June 2005
- scheduler: when handling results, if any of them fails the
sanity checks (e.g. it was already returned)
then don't update the transition time of the corresponding WU
db/
boinc_db.C
sched/
handle_request.C
David 21 June 2005
- core client: round-robin simulator wasn't excluding
non-CPU-intensive projects
(from John McLeod)
- scheduler: comment out transaction stuff.
It's not clear what this does, or if we want it.
client/
cs_scheduler.C
David 21 June 2005
- scheduler: don't send acks for results for which DB update failed
(from Ian Hay)
- change result_acks vector from RESULT to std::string
- scheduler: fix workunit update query empty case
(from Bruce Allen)
db/
boinc_db.C
sched/
handle_request.C
server_types.C,h
David 21 June 2005
- add_project(): set sched_rpc_pending so we always do
a scheduler RPC even if not fetching work
- win compile fixes
client/
cs_account.C
client/win/
wingui_mainwindow.cpp
Rom 22 June 2005
- Remove code that causes the CC to block on network requests, the
dial-up functionality is being moved into the manager
- Add global preferences to the get_state GUI RPC and remove the
proxy_info from get_state since proxy_info has two RPC's of it's
own.
- Add a frequency reminder slider to the Tools/Option dialog so we
don't repeatedly spam the user with connection requests.
- Remove the DlgConnection dialog since we are going to use a
message box instead
- Add prefs.C to various project files for Windows.
- Remove some unused headers from stdwx.h
client/
cs_statefile.C
net_xfer.C
clientgui/
BOINCGUI.pjd
BOINCGUIApp.cpp
DlgOptions.cpp, .h
MainFrame.cpp
stdwx.h
DlgConnection.cpp, .h (Removed)
lib/
app_ipc.C
gui_rpc_client.C, .h
network.C, .h
prefs.C, .h
win_build/
BOINCGUI.vcproj
boinc_guirpc_test.vcproj
boinc_ss.vcproj
Charlie 22 June 2005
Mac: Update build instructions for pre-built config.h file,
using gcc 3.3 compiler, etc.
Added lib/prefs.C to builds of BOINC Manager, screen saver.
mac_build/
HowToBuildBOINC_XCode.rtf
boinc.pbproj/
project.pbxproj
David 22 June 2005
- API: Don't call app_init_graphics() until we've created GL context
(Windows)
(From Eric Myers)
api/
graphics_api.h
windows_opengl.C
sched/
sched_send.C
David 22 June 2005
- Add two new GUI RPCs that let the Manager be in charge of
opening and closing modem connections.
network_query() returns true if the CC wants a network connection,
or is currently using one.
NOTE: wait to get false twice (with a few seconds delay)
before closing a connection
network_available() tells the CC that a connection is available,
and that it should do all the network activity it can.
These are relevant only on Windows.
Implementation:
- CLIENT_STATE has a new member, bool want_network_flag.
If the CC tries to create a network connection and
there's no physical connection, it sets this.
- network_query() return true is want_network_flag is set
or there an HTTP_OP.
- network_available() resets all backoff timers
(of PERS_FILE_XFERs and PROJECTs) to zero,
so everything will be retried immediately.
client/
client_state.C,h
gui_rpc_server.C
http.C,h
net_xfer.C
lib/
gui_rpc_client.C,h
network.C
David 23 June 2005
- server: handle the new fields
"cpu_efficiency": for each wall-clock second that
a BOINC app runs, how much CPU time does it get?
"duration_correction_factor": ratio between actual CPU time
and FLOPs-based estimate.
1) parse them in scheduler request
2) store them in DB host record
3) use them in estimating result duration
- show fields in web page for host
NOTE: this change requires a database update.
See html/ops/db_update.php
db/
boinc_db.C,h
html/
ops/
db_update.php
inc/
host.inc
sched/
handle_request.C
sched_send.C
server_types.C
Charlie 23 June 2005
Mac: add a separate icon for Mac menu bar.
clientgui/
mac/
MacSysMenu.cpp
res/
boinc_mac.xpm (new)
Janus 23 June 2005
- Added translation functions for cached pages
The data from SQL queries is saved in the cache directory on the server
and is reused to display the information again and again - even in
different languages.
- Used the above feature to make the top_user page translatable
(could someone please do the work to also make top_teams and top_hosts
translatable like this?)
- Added the new tokens to the english language file
html/
inc/
user.inc
cache.inc
languages/translations
en.po
user/
top_users.php
David 23 June 2005
- Add new API calls so that optimized apps can claim credit more accurately:
boinc_fpops_per_cpu_sec()
Report results of app-specific benchmarks
boinc_fpops_cumulative()
Report total FP operations so far in this result
These are stored by the API library and passed to the core client
in status messages.
The core client stores them in the RESULT and sends them to server
- scheduling server: assign claimed credit based on
fpops_per_cpu_sec or fpops_cumulative if present
- remove compile warnings
api/
boinc_api.C,h
client/
acct_mgr.C
client_state.h
client_types.C,h
cs_apps.C
gui_rpc_server.C
db/
boinc_db.h
doc/
api.php
sched/
handle_request.C
sched_shmem.C
server_types.C
David 24 June 2005
- attempt to fix bug on multiprocessors running Red Hat 9
(and maybe others)
where shared-memory segment names were all returning -1
(and multiple tasks where using same seg!!).
The problem: we were using the path of the init data file
to generate the key (using ftok)
but doing this before creating the file.
client/
app_start.C
Rom 24 June 2005
- Initial checkin of Dial-up connection support for service and shared
install states. Prompting for connect/disconnect requests is now
handled in the manager instead of the CC so the CC won't lock up
when configured to confirm before connect.
When multiple ISP's are detected but none are defined as the default
another dialog will appear giving you a choice as to which ISP to
use.
If the manager is hidden then the taskbar will display a balloon
stating that BOINC needs to connect and by opening the BOINC
manager you'll be able to connect up and update all projects.
- Added an 'Update All' button to the projects tab.
- More manager code clean-up
- Make alerts show up as a balloon if the manager is hidden. Model
dialogs can be annoying when your typing an email or document and
it pops up right in front of the document. What is even worse is
if you are typing and dismiss the dialog before you have even had a
chance to look at it. The balloons show up in the lower right hand
corner and automatically go away after 5 seconds or so.
- If alerts already exist in the message queue when you connect up
to a remote computer, ignore them.
client/
net_xfer.C
clientgui/
BOINCBaseView.cpp
BOINCGUIApp.h
BOINCTaskBar.h
Events.h
MainDocument.cpp, .h
MainFrame.cpp, .h
ViewProjects.cpp, .h
ViewTransfers.cpp
ViewWork.cpp
David 24 June 2005
- Bug fix in round-robin simulator:
If N is the # of CPUs, and a project has M < N runnable results,
its per_cpu_proc_rate should be scaled by N/M.
(Thanks to John McLeod for identifying this error)
client/
cs_scheduler.C
David 24 June 2005
- Doh! My checkin earlier today for the Red Hat 9 problem
was wrong, and screwed things up on all platforms.
Fixed now, and the Red Hat problem fixed a different way
client/
app_start.C
win/
wingui_mainwindow.cpp
David 24 June 2005
- API library: potential bug:
if the core client sends a "quit" message that is handled
(by the timer handler) while the worker thread is
in the middle of checkpointing,
the result could be an incomplete checkpoint,
which in general screws up the result.
Same problem exists if the app exits due to no CC heartbeat
while a checkpoint is in progress.
Solution: if boinc_time_to_checkpoint() returns true,
it sets a flag (checkpointing) that suppresses
the handling of process control messages
and the checking of heartbeat timeout.
boinc_checkpoint_completed() clears the flag.
One consequence of this design:
if boinc_time_to_checkpoint() returns true,
you HAVE to checkpoint immediately.
So don't call boinc_time_to_checkpoint() unless
you're prepared to checkpoint.
api/
boinc_api.C
David 25 June 2005
- scheduler: skip over , elements
without log message
- API: don't use perror() for pthread errors
api/
boinc_api.C
sched/
server_types.C
David 25 June 2005
- Fix to PROJECT::set_rrsim_proc_rate()
(problem identified by John McLeod)
client/
cs_scheduler.C
David 25 June 2005
- add an exit_status parameter to ACTIVE_TASK::abort_task.
This may be either ERR_ABORTED_VIA_GUI or ERR_RSC_LIMIT_EXCEEDED
Without this, results aborted for either reason
end up with exit_status = ERR_RESULT_START
(bug reported by Bruce Allen)
client/
app.h
app_control.C
client_state.C
gui_rpc_server_C
David 25 June 2005
- add "pessimism factor" of 0.9 to the round-robin simulation
used to determine CPU sched and work fetch policies
client/
cs_scheduler.C
David 26 June 2005
- scheduler: when handling a reported result,
cap CPU time at now - sent_time.
(from Rattledagger)
Note: this assumes that applications never use >1 CPU
for non-graphical computation.
Currently this is the case,
but if it changes we need to rethink this check.
db/
boinc_db.C,h
sched/
handle_request.C
David 26 June 2005
- bug fix for the above
sched/
handle_request.C
David 26 June 2005
- trigger transitioner when cancel WU, to set file delete
client/
file_names.C
html/ops
cancel_wu_action.php
Bruce 27 June 2005
- when using locality scheduler, have transitioner or backend
lib advertise data file when new result is created.
- code organization: create new lib function boinc_touch_file()
from code that was in locality scheduler module.
lib/
filesys.C
filesys.h
tools/
backend_lib.C
sched/
transitioner.C
sched_locality.C
David 27 June 2005
- fix bug in Manager message display
(can end up showing alerts over and over)
- acct mgr: remove HTTP_OP from set when op finishes
client/
acct_mgr.C
clientgui/
MainDocument.cpp
David 27 June 2005
- added new function escape_mysql_like_pattern(const char* in, char* out);
if you're going to use a "like X" clause,
call this function to escape the non-wildcard part of X.
If it contains wildcard chars (%, _) this will put
two (2) backslashes before each one,
so that they don't get treated as wildcards
- use the above function in sched_locality.C
so that filename chars and our own __ separators
don't get treated as wildcards
- core client: when looking for account files, skip directories
client/
cs_account.C
db/
db_base.C,h
sched/
sched_locality.C
Charlie 28 June 2005
Mac: Adapt code from Bernd Machenschalk to allow science apps to display
application icons in Dock (when displaying graphics) and in Finder.
Created small command-line utility MakeAppIcon_h (built by boinc
XCode project) which converts a xxx.icns file to app_icon.h header
file for use with new setMacIcon() api.
Update build instructions with directions for using this new api.
api/
mac_icon.C (new)
make_app_icon_h.C (new)
doc/
mac_build.html
mac_build/
HowToBuildBOINC_XCode.rtf
Bruce 28 June 2005
- Added a php script grant_credit.php. Running this will grant credit
to users/hosts/teams for workunits that have been cancelled or have
otherwise failed with some problem (error_mask!=0). The script
can be run multiple times without doing any harm. Documentation
contained within as a comment.
html/
ops/
grant_credit.php
Rom 28 June 2005
- Make the Dial-up functionality Windows only.
clientgui/
BOINCGUI.pjd
BOINCGUIApp.cpp, .h
DlgOptions.cpp, .h
MainFrame.cpp, .h
David 28 June 2005
- manager: fixed messages bug
cliengui/
MainDocument.cpp
David 28 June 2005
- core client: if no projects on startup,
print messages about how to attach
- default general prefs: increase max CPUs, max disk limits
- remove spurious "fetching work" messages
client/
cs_scheduler.C
main.C
lib/
prefs.C
Bruce 28 June 2005
- locality scheduler: make searches over file names distinguish
lower case and upper case
- locality scheduler: when searching for new work using advertised
files, retry ten times before starting a deterministic search.
We should probably modify this to try ALL advertised files in
a random order before moving onto a deterministic search.
sched/
sched_locality.C
Rom 28 June 2005
- Additional Dial-up work
- Add space for description and hyperlink access to the
DlgAccountManagerSignup dialog.
clientgui/
BOINCGUI.pjd
DlgOptions.cpp, .h
DlgAccountManagerSignup.cpp, .h
hyperlink.cpp, .h (Added)
MainFrame.cpp
David 28 June 2005
- Make it so that entering an empty string for the account manager URL
clears info about existing account manager (URL, login files)
NOTE: in the course of debugging this I encountered
the following;
std::string foo;
...
foo = "";
and after single-stepping throught this (in VC++)
foo was nonempty (a lengthy GUI-related string of some sort)
I eventually threw up my hands and changed the vars in question
(struct ACCT_MGR_INFO) to char[256], and it works.
But why didn't std::string work???
- show both name and URL in acct mgr status dialog
client/
acct_mgr.C,h
gui_rpc_server.C
clientgui/
DlgAccountManagerSignup.cpp
DlgAccountManagerStatus.cpp,h
MainFrame.cpp
David 28 June 2005
- self-extracting archive includes boinc_cmd,
and run_boinc passes cmdline args to core client
(from Bernd Machenschalk)
sea/
Makefile.am
David 28 June 2005
- scheduler server: parse duration_correction_factor correctly
(it's not in time_stats)
sched/
server_types.C,h
Rom 28 June 2005
- Okay this should be the last round of functional changes for
dial-up functionality, there are probably some more bug fixes
but they should be minor.
There is now a connections tab in the options dialog where
the preferred network type can be configured as well as several
types of dial-up connection parameters.
clientgui/
BOINCGUI.pjd
DlgDialupCredentials.cpp, .h (Added)
DlgOptions.cpp, .h
MainFrame.cpp, .h
Makefile.am
Rom 28 June 2005
- Add UI to the manager that allows the user to specify network activity
states similiar to that of the activity run modes.
network activity always available
network activity based on preferences
network activity suspended.
clientgui/
MainFrame.cpp
David 28 June 2005
- add ERR_NO_NETWORK_CONNECTION error code.
Return this if can't connect to server because no network connection.
- show boincerror(retval) instead of retval in a couple of messages.
Should do this everywhere.
client/
net_xfer.C
scheduler_op.C
lib/
error_numbers.h
util.C
Rom 29 June 2005
- Bug Fix: Check for update all and hangup conditions every ten seconds instead of
every second.
- Bug Fix: Only perform the update all and update all notification once.
clientgui/
MainFrame.cpp
Rom 29 June 2005
- Bug Fix: Reset the notification timers when the modem looses connection in some
random event or we successfully connect to the target network.
- Bug Fix: Post a notification if the network connection disappears out from under
us.
clientgui/
MainFrame.cpp, .h
Charlie 30 June 2005
Mac: Added hyperlink.cpp/h to XCode project BOINC Manager target.
Added "#ifdef __WXMSW__" to Dialog manager related calls in DlgOptions.cpp
clientgui/
DlgOptions.cpp
mac_build/
boinc.pbproj/project.pbxproj (directory & file both removed)
Rom 30 June 2005
- Bug Fix: Change the method for determining connection status from being event
driven to polling for the information, for some reason I stopped receiving
CONNECT and DISCONNECT events from wxWidgets.
- Bug Fix: Fix up a few more dial-up connection issues.
- Bug Fix: Change the default value of prefs.confirm_before_connect from false
to true. In the event that the manager cannot connect up to the core client
we don't want it to get stuck dialing and hanging up every few minutes.
- Revert back to the original Windows icons on Windows.
- Update the dialog template with David's recent changes to the Account Manager
functionality.
clientgui/
BOINCGUI.pjd
DlgAccountManagerSignup.cpp, .h
DlgAccountManagerStatus.cpp, .h
MainFrame.cpp, .h
lib/
prefs.C
Rom 1 July 2005
- Remove the major version check from the scheduler.
sched/
handle_request.C
Rom 4 July 2005
- Add additional check for the min_core_version so that it also takes into
account the major version as well.
- Sync the schema.sql file with implementation.
db/
schema.sql
sched/
handle_request.C
Charlie 4 July 2005
Mac: moved "#include " before other includes as requested
by Bernd Machenschalk to fix problem building from command-line using make.
Updated installation instructions for Mac advanced GUI on web site.
clientgui/
BOINCGUIApp.cpp
doc/
mac_advanced.php
David 5 July 2005
- Always show the reason for a scheduler RPC: either
- requested by user
- results due for reporting
- fetching work
Implementation: add "reason" argument to init_op_project().
Store in SCHEDULER_OP.
This eliminates the need for must_get_work.
Remove init_return_results().
- handle RPC init errors (by backing off) in init_op_project(),
NOT in the functions that call it (e.g. init_get_work()).
We were backing off twice for the same error.
- network_query GUI RPC: return false if network suspended by user
- Manager: remove wxASSERT(fBuffer)
from CViewReousrces::FormatDiskSpace().
This causes crash if a project has zero disk usage.
?? Why is the amount of disk called "fBuffer"?
?? why is a PROJECT* called "resource"?
client/
client_state.C
cs_scheduler.C
scheduler_op.C,h
clientgui/
ViewResources.cpp
David 5 July 2005
- prevent infinite loop in web (from Rob Ogilvie)
html/inc
text_transform.inc
David 5 July 2005
- API: use signal instead of timer thread,
so that suspend/resume logic will work.
Also: block SIGALRM in graphics thread.
We weren't doing this before,
which could have caused CPU time reporting errors.
NOTE: this may break things on FreeBSD and OpenBSD.
To remedy, uncomment the #define USE_TIMER_THREAD
api/
boinc_api.C
graphics_impl.C
David 5 July 2005
- scheduler: in estimating result duration,
don't divide by resource share fraction.
This assumes round-robin across all projects,
which is no longer necessarily the case.
(From John McLeod)
sched/
sched_send.C
Charlie 5 July 2005
Mac: Integrated Hide of BOINCManager with close of main Manager window.
Closing window hides Manager application, opening window (from menubar
icon menu or from Dock menu) Shows application. Hiding or showing
application closes or opens window. This eliminates having just the
manager's menu bar pop up when a foreground application quits.
Disable all application-specific menu items in Dock menu and menubar
icon menu when a modal dialog is active. This matches the disabling
of items in the Manager's regular menus.
Fixed bug where all items in menubar icon menu were disabled, which
required clicking on the icon repeatedly.
clientgui/
BOINCGUIApp.cpp
BOINCTaskBar.cpp
MainFrame.cpp, .h
mac/
MacSysMenu.cpp, .h
SystemMenu.m
Rom 5 July 2005
- Make the projects compatible with Visual Studio 2005 Express
- Bug Fix: Make sure that the manager successfully connected to an
ISP before calling the network_available RPC to the CC.
client/
client_state.C
client_types.C
main.C
net_xfer.C
client/win/
boinc_cli.rc
boinc_cmd.rc
boinc_dll.rc
boinc_ss.rc
win_screensaver.cpp
clientgui/
DlgAbout.cpp
DlgAccountManagerSignup.cpp
DlgAccountManagerStatus.cpp
DlgAttachProject.cpp
DlgDialupCredentials.cpp
DlgOptions.cpp
DlgSelectComputer.cpp
MainFrame.cpp
stdwx.h
lib/
boinc_win.h
msg_log.C
parse.C
stackwalker_win.cpp
Rom 6 July 2005
- Another fix that is needed to build BOINC with VS 2005 using the
debug profile.
lib/
diagnostics.h
Rom 6 July 2005 (boinc_public)
- Tag for 4.70 release, all platforms
boinc_core_release_4_70
Charlie 7 July 2005
Mac installer: Installer used to set owner of all installed files
and directories to 501 (BOINCManager, Core Client, Screen Saver
and BOINC Data.) Changed this to set ownership to current user if
current user is member of group admin, otherwise use first member
of group admin other than root. Update installer version number
to 4.70.
mac-installer/
PostInstall.cpp
BOINC.pmproj
David 7 July 2005
- Manager: fix for core client startup on Unix
(From Bernd Machenschalk)
api/
boinc_api.C
clientgui/
BOINCGUIApp.cpp
Rom 7 July 2005
- Fix numerious compile warnings when turning on /W4 for the Microsoft
compilers. This was done with VS 2003. We are down to 100 or so
warnings from 400 or so.
client/win/
win_idle_tracker.cpp
win_screensaver.cpp
clientgui/
BOINCTaskBar.cpp
DlgAccountManagerSignup.cpp
DlgAccountManagerStatus.cpp
DlgDialupCredentials.cpp
DlgOptions.cpp
MainFrame.cpp, .h
ViewMessages.cpp
ViewProjects.cpp
ViewResources.cpp
ViewStatistics.cpp
ViewTransfers.cpp
ViewWork.cpp
clientgui/msw/
taskbarex.cpp
lib/
boinc_win.h
diagnostics.C
filesys.C
gui_rpc_client.C
msg_log.h
stackwalker_win.cpp
Rom 7 July 2005
- Bug Fix: Reduce the amount of time the call to
wxDialUpManager->IsAlwaysOnline takes by preloading the DLL in memory.
- Bug Fix: Only check for an always on connection every 60 seconds.
- Provide some more information about what various OS's report about the
client machine as part of the message log. Some people are not aware of
what hyperthreading does and how the various operating systems respond
to detecting it.
client/
client_state.C
clientgui/
MainFrame.cpp, .h
stdwx.h
lib/
hostinfo.h
Rom 8 July 2005
- Cleanup the Account Manager Status dialog.
clientgui/
BOINCGUI.pjd
DlgAccountManagerStatus.cpp, .h
MainFrame.cpp
Rom 8 July 2005
- Fix the issues with enabling precompiled headers on Windows and enable
them. Compile times on a 3Ghz machine goes from 4 mins and 5 seconds
for all the components that are released to 1 min and 27 seconds. On
slower machines the performance increase should be more dramatic.
NOTE: You should choose 'rebuild solution' after sync'ing the source
tree.
NOTE: If you are using Visual Studio to build your science applications
you'll need to force include boinc_win.h when building libboincapi and
libboinc.
client/win/
stdafx.h
win_service.cpp
clientgui/
stdwx.h
lib/
boinc_win.h
diagnostics.C
filesys.C
gui_rpc_client.C
network.C
parse.C
prefs.C
stackwalker_win.cpp
util.C
win_build/
BOINCGUI.vcproj
RSAEuro.vcproj
boinc_cli.vcproj
boinc_dll.vcproj
boinc_gui.vcproj
boinc_guirpc_test.vcproj
boinc_ss.vcproj
upper_case.vcproj
Bruce 10 July 2005
- Add explicity leading path to URLs in a 'show user' function that is
called from one of the ops pages. Janus, I used URL_BASE rather
than MASTER_URL (what's the distinction?). Please confirm this.
html/
inc/
user.inc
David 13 July 2005
- use doubles for memory size calculation in HPUX,
avoid 32-bit overflow (from Walt Gribben and Lars Bausch)
client/
hostinfo_unix.C
David 13 July 2005
- BOINC icons for X11 (from Bernd Machenschalk)
sea/
Makefile.am
boincmanager.8x8.png
boincmanager.16x16.png
boincmanager.32x32.png
David 14 July 2005
- Scheduler: update the transition_time of the WU of a sent result
(setting it to the report deadline)
only if the report deadline is less than current transition_time
This fixes a bug that causes some WUs to go for several days
without enough potentially successful results
(from Bruce Allen)
sched/
sched_send.C
David 14 July 2005
- Improvement on the above.
Set transition time (in SQL) to min of X and its current value.
Avoid overwriting update that occurred
between scheduler's read and update.
sched/
sched_send.C
Rom 14 July 2005
- Make the requirements for precompiled headers on Windows optional.
api/
boinc_api.C
graphics_impl.C
gutil.C
reduce_lib.C
reduce_main.C
windows_opengl.C
client/win/
StdAfx.h
lib/
app_ipc.C
boinc_cmd.C
diagnostics.C
exception.C
filesys.C
gui_rpc_client.C
hostinfo.C
md5_file.C
mem_usage.C
mfile.C
miofile.C
network.C
parse.C
prefs.C
proxy_info.C
shmem.C
util.C
Bruce 14 July 2005
- Transitioner would not set a new WU transition time less
than 24 hours away, to prevent thrashing. But this delayed
reissuing of new results. For example if two results were
issued a hours 17 and 18, and both timed out (no reply). At
time 17+deadline the first would time out and a new result
would be issued. But then instead of setting the transition
time to 18+deadline it would be set to 18+deadline+1 day.
To prevent thrashing I have fixed this so that if a transition
time is in the past, I advance it by TWICE the amount it is late,
but never less than 1 minute or more than 1 day.
- Ops pages: show unsent/in-progress results in purple. For
unsent results show create time rather than deadline.
sched/
transitioner.C
html/
inc/
db_ops.inc
if old results were both issued
Rom 14 July 2005
- Not all Windows machines support balloons, so if the manager is running on
a machine that does not support balloons display a message box instead.
- Display additional network control options on the taskbar menu.
clientgui/
BOINCTaskBar.cpp
MainFrame.cpp
Rom 14 July 2005 (boinc_public)
- Tag for 4.71 release, all platforms
boinc_core_release_4_71
David 17 July 2005
- changed the semantics of "-one_pass" in the daemons
Old: do one enumeration (typically 1000 items), then exit
New: process items until an enumeration returns empty, then exit.
This is to support the performance-measurement stuff I'm doing,
and is probably more useful anyway.
- add -sleep_interval x option to feeder (x can be fractional)
(needed for performance measurements)
- add --batch option to scheduler
Makes the scheduler handle an sequence of concatenated requests
(needed for performance measurements)
- compile fixes in client
client/
app.C
scheduler_op.C
sched/
assimilator.C
db_purge.C
feeder.C
file_deleter.C
main.C
make_work.C
transitioner.C
validator.C
David 17 July 2005
- scheduler bug fixes for non-CPU-intensive
(from John McLeod)
client/
cs_scheduler.C
Rom 17 July 2005
- Windows project file cleanup
Add a library for libboinc and libboinc_api and remove duplicate
compilation from remain projects.
win_build/
*.vcproj
*.sln
Rom 18 July 2005
- Enable clipboard functionality on Linux by default.
/
configure.ac
Charlie 19 July 2005
Mac: include Carbon.h in stdwx.h instead of MacGUI.pch as
requested by Bern so command line build (using autoconf /
make) works without using precompiled header.
Add a "Run Script" Phase to builds of BOINCManager and Core
Client in XCode project. This creates a subdirectory named
SymbolTables under the build directory, and copies the
BOINCManager and Core Client executables there before they are
stripped of symbols. This is useful for analyzing crash reports
from the field. We can use the atos command line utility and
these symbol files to convert addresses from the stack frames to
symbols and line numbers in source files.
clientgui/
stdwx.h
mac/
MacGUI.pch
mac_build/
boinc.pbproj/
project.pbxproj
David 19 July 2005
- bug fix in zip code (from Carl C.)
zip/
boinc_zip.cpp
David 19 July 2005
- API: support for RGB files (from Tolu)
api/
Makefile.am
gutil.C,h
texture.C,h (new)
David 20 July 2005
- db_dump: write nusers, nhosts, nteams, total credit
in tables.xml file
sched/
db_dump.C
David 20 July 2005
- commented out some test code from upper_case.C
This seemed to break test_uc.py
- compile fix in zip
apps/
upper_case.C
lib/
parse.C
zip/
boinc_zip.cpp
David 20 July 2005
- hosts_user.php: userid arg is present AND have cookie for user,
treat as if logged in
html/user/
hosts_user.php
Bruce 21 July 2005
- Sort users list of hosts by last rpc time received and add a
corresponding table column. David's going
to clean this up to sort by any column.
html/
inc/
host.inc
user/
hosts_user.php
David 21 July 2005
- Scheduler: if using locality scheduling,
don't attach to shared memory
(hence don't need to run feeder)
sched/
main.C
David 21 July 2005
- Doh!! shared memory is needed anyway,
e.g. for app and platform tables
sched/
main.C
Rom 21 July 2005
- After a false start here is an update that should allow screen readers
to read something useful. The wxWidget documentation and sample are
kinda stale and lead you believe that you have to define proxies for
the various controls, but in fact you can enable the context help
system in combination with the normal window name/title scheme and
skip the proxy creation. What started out being several hundred lines
of code shrunk down to 20 or so lines of code.
clientgui/
BOINCBaseView.cpp, .h
BOINCGUIApp.cpp
BOINCTaskCtrl.cpp, .h
stdwx.h
ViewMessages.cpp
ViewProjects.cpp
ViewResources.cpp
ViewStatistics.cpp
ViewTransfers.cpp
ViewWork.cpp
Charlie 21 July 2005
- Remove wxRESIZE_BORDER and wxCLOSE_BOX from several dialog styles so
modal dialogs are not resizeable and do not have a close box.
NOTE: the Options Dialog is too narrow on the Mac, so I can not yet
finalize this change for this dialog until Rom fixes it.
- Mac: Fix problems with new "Run Script Phase" (see my 19 July changes.)
Fix bug in menubar icon menu wich appeared only in deployment builds 4.70
and 4.71; modify code so it is less dependent on exact implementation of
wxTaskBarIcon's wxDockEventHandler().
clientgui/
DlgAccountManagerStatus.h
DlgAccountManagerSignup.h
DlgOptions.h
mac/
MacSysMenu.cpp, .h
mac_build/
boinc.pbproj/
project.pbxproj
Rom 21 July 2005
- Bug Fix: correct the control id's for the taskbar context menu which was
using the control ids used by the main application instead of it's own.
clientgui/
BOINCTaskBar.cpp
David 21 July 2005
- use SHM_R|SHM_W instead of 0666 in shmget().
Apparently this is needed for HPUX.
We did this before (Mar 31 2005) and immediately
backed it out, so it's likely to break some other platform.
lib/
shmem.C
Rom 21 July 2005
- Update the templates for the dialogs that DialogBlocks uses to maintain
the various dialogs with by removing the resizing flag and close box
flag. Making changes directly on the source files without updating the
templates just causes the loss of the change next time DialogBlocks
is loaded.
- Instead of specifically defining which flags are used, use
wxDEFAULT_DIALOG_STYLE which is supposed to contain the defaults on a
per platform basis.
clientgui/
BOINCGUI.cst (Added)
BOINCGUI.pjd
DlgAbout.cpp, .h
DlgAccountManagerSignup.cpp, .h
DlgAccountManagerStatus.cpp, .h
DlgAttachProject.cpp, .h
DlgDialupCredentials.cpp, .h
DlgOptions.cpp, .h
DlgSelectComputer.cpp, .h
Rom 21 July 2005
- Start prototyping the new attach to project wizard.
NOTE: It'll only be visible on debug builds for the time being.
clientgui/
BOINCGUI.pjd
DlgAbout.cpp, .h
Events.h
MainFrame.cpp, .h
Makefile.am
WizAttachProject.cpp, .h
clientgui/res/
attachprojectwizard.xpm
clientgui/res/templates/
wizard.png
win_build/
boincmgr.vcproj
Charlie 22 July 2005
- Fix reversed checking of Network Activity menu items in taskbar.
- Mac: Update XCode project for use with Wxmac-2.6.1 (added IOKit
Framework to BOINC Manager target.)
- Update Build instructions for wxMac-2.6.1, more detailed info
for building libraries and sceince projects.
clientgui/
BOINCTaskBar.cpp
doc/
mac_build.html
mac_build/
HowToBuildBOINC_XCode.rtf
boinc.pbproj/
project.pbxproj
Rom 22 July 2005
- Enable scrollbars on the task pane
- Only redraw the website buttons when a selection change event has
occurred with the list pane.
clientgui/
BOINCBaseView.cpp, .h
BOINCTaskCtrl.cpp, .h
ViewProjects.cpp
Rom 22 July 2005
- Fix the statistics buttons so that they show up again after the
wxScrollWindow conversion.
- Fix for wireless USB adapters so that connection request events
happen even when InternetGetConnectedState returns a value
indicating that the machine is not connected.
client/
net_xfer.C
clientgui/
ViewStatistics.cpp
Rom 22 July 2005 (boinc_public)
- Tag for 4.72 release, all platforms
boinc_core_release_4_72
David 23 July 2005
- fix compile warnings on Win
lib/
hostinfo.C
md5_file.C,h
miofile.C
network.C
David 23 July 2005
- API: change heartbeat mechanism so that instead of using time(0),
it uses its own counter (incremented on interrupt).
This avoid specious heartbeat timeout
when user resets system clock.
It should also fix problem where BOINC restarts
after hibernation, app runs before core client,
and it gets heartbeat timeout.
- Core client: add "-no_gui_rpc" cmdline option.
If present, don't create listening socket for GUI RPC.
(Useful if bind() doesn't work).
- shared memory: in shmget() mode, first try 0666;
if that fails, try SHM_R|SHM_W
This is just paranoia, in case 21/July checkin
breaks some platform.
api/
boinc_api.C
client/
client_state.C,h
cs_cmdline.C
gui_rpc_server.C,h
lib/
shmem.C
Janus 23 July 2005
- API: Compile error in the previous checkin due to undefined
variable interrupt_time. I assume it should be interrupt_count.
Please change if this isn't right...
/api/
boinc_api.C
Rom 24 July 2005
- Fix the control positioning on platforms other than Windows.
clientgui/
BOINCBaseView.cpp
BOINCTaskCtrl.cpp
ViewMessages.cpp
ViewProjects.cpp
ViewResources.cpp
ViewStatistics.cpp
ViewTransfers.cpp
David 24 July 2005
- If benchmarks fail (e.g. because an app doesn't exit)
set a flag in state file and rerun on next startup
(from John McLeod)
client/
app_start.C
client_state.h
cs_benchmark.C
cs_statefile.C
David 25 July 2005
- API: in start_worker_thread(), use pthread_sigmask()
instead of sigprocmask() to block SIGALRM in the graphics thread.
On Mac OS X, sigprocmask() blocks SIGALRM in all threads,
which is not the intent.
(From Bruce Allen)
api/
graphics_impl.C
David 25 July 2005
- core client: rewrite account file if GUI URLs change
client/
cs_scheduler.C
Charlie 25 July 2005
- Mac installer: specifically quit core client if running in addition
to quitting BOINC Manager, since cc may be running without manager.
mac_installer/
PostInstall.cpp
Rom 25 July 2005
- Define the wizard page that'll actually handle the communication
with the project server, or help diagnose a problem if it occurs.
NOTE: It is currently setup to simulate a proxy configuration error.
clientgui/
BOINCGUI.pjd
WizAttachProject.cpp
WizAttachProject.h
clientgui/res/
wizfailure.xpm (Added)
wizquestion.xpm (Added)
wizsuccess.xpm (Added)
clientgui/res/templates/
wizfailure.gif (Added)
wizquestion.bmp (Added)
wizsuccess.gif (Added)
David 26 July 2005
- Core client: try DL/UL of replicated files
in URL order listed by project, not random order.
Einstein@home orders URLs by proximity to client.
Left in randomization code but commented it out.
- Shorten host info messages, and move to separate function
(don't lengthen functions that are too large already)
- fix small memory leak when using anon platform
client/
client_state.C,h
client_types.C
cs_scheduler.C
cs_statefile.C
Jeff 26 July 2005
- Allow multiple assimilators and file_deleters to run via
modulus on WU id for the assimilator and WU and result
id for the file_deleter.
sched/
assimilator.C
file_deleter.C
Rom 26 July 2005
- Provide a mechinism for the localization team to be able to
localize the project defined buttons.
clientgui/
ViewProjects.cpp
Localization.cpp, .h (Added)
locale/en_US/
BOINC Manager.po, .mo
David 27 July 2005
- Add code to get swap space size on NetBSD
(from Nikos Ntarmos)
client/
hostinfo_unix.C
David 27 July 2005
- fix fairly minor scheduler bug,
in the case where a reported result was not found in the DB,
which caused scheduler reply messages to contain some garbage
In DB_SCHED_RESULT_ITEM_SET::add_result(),
zero the id of the item added.
That way, if it wasn't found in the database,
it won't be updated or acknowledged
db/
boinc_db.C
sched/
handle_request.C
Rom 28 July 2005
- Add a few of the wizard error pages
- Enable the ability to direct error conditions from the welcome page.
NOTE: For trsting only, it'll be removed before we release to alpha.
- Determine which page to show after the project properties page has
done it's thing based on error conditions.
clientgui/
BOINCGUI.pjd
WizAttachProject.cpp
WizAttachProject.h
David 28 July 2005
- scheduler: if the list is present in request,
resend any in-progress results not on the list.
Enabled by 1 in config.xml
(with Bruce Allen)
sched/
handle_request.C
sched_locality.C
sched_send.C,h
server_types.C,h
Rom 29 July 2005
- Use a virtual stack to monitor page transitions. Next and Back buttons
should be fully operational.
clientgui/
BOINCGUI.pjd
MainFrame.cpp
WizAttachProject.cpp, .h
stdwx.h
Bruce 29 July 2005
- scheduler: fixed to checkins on 28 July
(1) Put core client version number into wreq BEFORE searching for
an app version. Problem is that reply.wreq.core_client_version was only being set in
send_work(), which was too late for the resend_lost_work() part
of the code. You might want to move all the initialization of reply.wreq
out of send_work(). The core client version is needed to see if the
app is compatible with it when calling get_app_version().
(2) In retransmitting lost work, do NOT set the deadline to new
values. Else the result will never time out! But DO reset
the sent_time, to indicate that result was resent.
- transitioner:
In the transitioner, make the next WU transition time be the min
of deadlines of the in progress results, NOT the min of the
sent_time+delay bound. Unless a project wants to do dynamic
adjustment of delay bounds for in progress results this should be OK.
CPDN people: I don't think this does any harm for trickles but
you might want to give it a quick look to be 100% sure.
sched/
sched_send.C
transitioner.C
Bruce 29 July 2005
- scheduler: don't resend a result to a host if any of the following is true:
[1] WU error flag set
[2] WU already has canonical result
[3] (report_deadline - current_time) < 25% of WU delay bound
If any of these conditions is true, set the report deadline to the
current time and set the WU transition time to the current time.
The transitioner will then 'do the right thing'.
sched/
sched_send.C
Charlie 29 July 2005
Mac: #define __WXDEBUG__ only in our code (not in wxWidgets headers)
in Development version only to allow testing of wizard. See comments
in MacGUI.pch for details.
mac/
MacGUI.pch
Rom 31 July 2005
- Add two new wizard pages, the Account Key page which will be used to help out
projects who have not yet upgraded to the new authentication scheme and the
Account Creation Disabled error page. If the server properties php page
returns that account creation is disabled, then that page will be displayed.
clientgui/
BOINCGUI.pjd
WizAttachProject.cpp, .h
David 31 July 2005
- Split the GUI RPC code into 3 parts:
1) the underlying stuff (sockets, buffers)
2) the RPC themselves (XML write/parse, handlers)
3) textual output (used only by boinc_cmd)
client/
Makefile.am
gui_rpc_server.C
gui_rpc_server_ops.C
scheduler_op.h
clientgui/
Makefile.am
lib/
Makefile.am
gui_rpc_client.C,h
gui_rpc_client_ops.C
gui_rpc_client_print.C
win_build/
boinc_cli.vcproj
boinc_ss.vcproj
boinccmd.vcproj
boincmgr.vcproj
David 1 Aug 2005
- support OpenSSL's crypto libary, preparatory to getting rid of RSAEuro.
For now, there's a #define in lib/crypt.h
that lets you select one or the other.
OpenSSL seems to be working, i.e. you can read keys
and verify file signatures produces with RSAEuro.
lib/
Makefile.am
boinc_cmd.C
crypt.C,h
crypt_prog.C
gui_rpc_client.h
gui_rpc_client_ops.C
gui_rpc_client_print.C
hostinfo.C,h
Rom 1 Aug 2005
- Some wizard work.
- Fix build breaks.
- Add support for OpenSSL in the Win32 environment.
clientgui/
BOINCGUI.pjd
MainDocument.cpp, .h
WizAttachProject.cpp, .h
lib/
crypt.h
openssl/
win_build/
boinc.sln
boinc_cli.vcproj
boincmgr.vcproj
libboinc.vcproj
librsaeuro.vcproj (Removed)
win_build/installerv2/
boinc.ism
David 1 Aug 2005
- avoid using sprintf() in signal handler
lib/
boinc_api.C
David 1 Aug 2005
- add -lcrypto on Unix
configure.ac
David 1 Aug 2005
- hasty bug fixes to the above. still not quite working
lib/
boinc_api.C
Eric 2 Aug 2005
- added a check for whether hard and soft links function as expected.
(People were having problems where soft links were faked.)
- added autoconf macro to check for openssl and set up the
USE_RSAEURO or USE_OPENSSL macros in config.h.
- modified configure.ac to run this check.
configure.ac
m4/
check_ssl.m4
Eric 2 Aug 2005
- Modified crypt.h to that it will only define USE_RSAEURO or
USE_OPENSSL if they haven't already been defined.
lib/
crypt.h
Bruce 2 Aug 2005
- scheduler: update of the resend-lost-work algorithm. Now try and
extend deadline somewhat, or cancel rather than resend work if
it's not feasible.
sched/
sched_send.C
Rom 2 Aug 2005
- Get rid of the NOCLIPBOARD and NOTASKBAR defines. Taskbar icons seem
to be available on all platforms now and the clipboard functionality
is guarded by the wx version of the define wxUSE_CLIPBOARD. If we use
it, we don't have to maintain any configuration stuff about it in our
build environment.
/
configure.ac
clientgui/
BOINCGUIApp.cpp, .h
stdwx.h
ViewMessages.cpp, .h
David 2 Aug 2005
- Fix new API stuff that avoids using printf in signal handler.
(my scaling of double to put them in the range [.1,1)
failed to take into account zero... arrgh!)
api/
boinc_api.C
apps/
upper_case.C
win_build/
boinc_gui.vcproj
upper_case.vcproj
David 2 Aug 2005
- Don't force-include boinc_win.h in apps
win_build/
upper_case.vcproj
Rom 2 Aug 2005
- Default stackwalker_win.cpp to include boinc_win.h if another of the
precompiled headers hasn't already been included.
lib/
stackwalker_win.cpp
Charlie 2 Aug 2005
Mac: update XCode project for new source files and to link Core
Client with libcrypto.dylib. (Note: libcrypto.dylib comes with
OS 10.3 and OS 10.4, but libcrypto.a does not.) Remove RSAEuro
sources from Core Client build.
mac_build/
boinc.pbproj/
project.pbxproj
David 2 Aug 2005
- process_result_template(): when inserting XML signature
into a element, don't include leading
spaces before in the signed text
(from Marco Gazzoni)
tools/
process_result_template.C
Charlie 3 Aug 2005
Mac: update XCode project to add api/texture.C to build of
libboinc_graphics_api.a. Add to Mac builds the functions
TEXTURE_DESC::CreateTextureRGB () and TEXTURE_DESC::CreateTexturePPM().
api/
gUtil.C
mac_build/
boinc.pbproj/
project.pbxproj
David 3 Aug 2005
- replace wait3() and wait4() with waitpid().
wait3 and wait4 are obsolete and might not be
available on future systems.
- changed these obsoleted macros in configure.ac:
- AC_CANONICAL_SYSTEM -> AC_CANONICAL_TARGET
- AC_HELP_STRING -> AS_HELP_STRING
- AM_CONFIG_HEADER -> AC_CONFIG_HEADERS
(from Egon Larsson)
configure.ac
client/
app_control.C
sched/
sched_send.C
David 3 Aug 2005
- split up scheduler code into separate files for:
resending
sending from array
homogeneous redundancy (hr)
sched/
Makefile.am
handle_request.C
sched_array.C,h (new)
sched_hr.C,h (new)
sched_resend.C,h (new)
sched_send.C,h
Rom 3 Aug 2005
- Fix a condition where the manager isn't prompting for a username
and password when a username and password were not already
stored on the system
clientgui/
MainFrame.cpp
Bruce 4 August 2005
- File deleter: only log message at level CRIT if we fail to
find an output file for a SUCCESSFUL result. Failure to
find an output file for an UNSUCCESSFUL result is OK, and
is now logged at level DEBUG not CRIT.
sched/
file_deleter.C
an output file to delete for a result whose outcome was not
David 4 Aug 2005
- Change Unix build to use libcrypto instead of RSAEuro
- compile fix
configure.ac
Makefile.am
Makefile.incl
lib/
hostinfo.h
Rom 4 Aug 2005
- Strip boinc_cmd as well.
/
configure.ac
lib/
Makefile.am
David 5 Aug 2005
- Add a new class GUI_HTTP for HTTP operations done
in response to GUI actions.
Currently the only one is account manager RPC,
but we'll be adding others for account setup.
GUI_HTTP manages polling, HTTP header creation etc.
- Modify ACCT_MGR to use GUI_HTTP
client/
acct_mgr.C,h
client_state.C,h
gui_http.C,h (new)
win_build/
boinc_cli.vcproj
boinc_gui.vcproj
Rom 5 Aug 2005
- Move the check for the socket type above the check for SSL support.
You get compilations errors while attempting to determine socket types
on Debian 3.0 with gcc 3.04 due to header changes.
/
configure.ac
David 5 Aug 2005
- Initial checkin of client-side code for new setup scheme.
Implements 3 new GUI RPCs:
get_project_config()
lookup_account()
create_account()
Note: code is sketchy and almost certainly doesn't work.
It also lacks server-side support.
I'm checking it in to allow Rom to work on Manager.
client/
acct_mgr.C,h
acct_setup.C,h (new)
client_state.h
file_names.h
gui_rpc_server_ops.C
lib/
error_numbers.h
gui_rpc_client.h
gui_rpc_client_ops.C
parse.C,h
win_build/
boinc_cli.vcproj
boinc_gui.vcproj
David 5 Aug 2005
- temporary put the RSAEuro directory back into CVS,
but with no files in it.