2
- client: ATI available RAM wasn't being detected correctly
8
- web: don't show news items if they're hidden
14
- client: RSS feed stuff
22
- lib: fixup notice RPCs to make them manager compatible.
23
- lib: remove memset from notice constructor, bad things can happen
24
when you null out a std::string structure.
28
gui_rpc_client_ops.cpp
32
- MGR: Implement Notice RPC infrastructure.
39
- MGR: Implement UI plumbing for notices
42
ViewNotifications.cpp, .h
45
- MGR: Display each notice in the notices tab.
49
ViewNotifications.cpp, .h
52
- GUI RPC: return notices in order of increasing seqno, not decreasing
57
- MGR: Present the newest notices first.
62
gui_rpc_client_ops.cpp
65
a couple of locality scheduling fixes:
66
- remove obsolete and buggy code from transitioner (create_result() in backend_lib)
67
- account for 'mixed' scheduling in explain_to_user() in sched_send.cpp
68
- finish transition to configurable patterns for distinguishing files reported by the client
69
in the Einstein@home-specific part of send_work_locality in sched_locality
70
(removed previous hardcoded strcmps)
85
- client: fix format strings for ninstances (can be fraction now)
92
- client: scheduling problem:
93
- a project overestimates job FLOP counts
94
- the client starts jobs in EDF mode
95
- as job progresses and fraction done increases,
96
its completion time estimate decreases until
97
it's no longer a deadline miss.
98
- job gets preempted by other job from that project;
99
you end up with lots of partly completed jobs.
100
Solution (I hope): if an app version has running jobs,
101
compute a "temp DCF" for the app version,
102
which is the min of dynamic/static estimates for its jobs.
103
Apply this scaling factor to completion time estimates
104
for unstarted jobs in RR simulation
105
- client: the estimation of remaining time of running jobs was wrong
106
(how did this bug survive so long?)
115
- client: Eliminate x86_64 Mac client; i386 client determines if
116
system supports x86_64 applications and sets HOSTTYPE and
117
platform accordingly. This allows us to link with the 32-bit
118
CUDA libraries. The one other effect is that the benchmarks
119
are run in 32-bit mode even on a 64-bit capable Mac.
120
- client: Async get_state RPC was not updating state.have_ati field.
121
- MGR: Rebuild Advanced Menu and Taskbar Menu after connecting to
122
client, so GPU Activity and Snooze GPU items are displayed if
131
sg_BoincSimpleGUI.cpp
139
- client: bug in ACTIVE_TASK::est_dur()
145
- client: notice fixes
152
- admin web: allow setting per-app HR class
158
- client: Fix compiler warning.
159
- client: Fix crash bug.
160
NOTE: do not call memset(this, 0, sizeof(*this)) when the data
161
contains a std::string.
167
- boinccmd: add --get_notices option
173
- Mac: Fix bug in backtrace code which showed up only under OS 10.6.
180
- Mac: Fix bug in backtrace code which showed up only under OS 10.6.
181
- Mac installer: Add CUDA information to Mac ReadMe files.
192
- manager: tweak notice appearance
197
ViewNotifications.cpp
200
- client: work fetch fix: avoid sending null request in certain cases.
201
- client: fix crash in notices code
207
- MGR: Prevent timer events from causing recursive ui issues.
210
ViewNotifications.cpp
213
- client: Fix another crash bug due to calling memset(this, 0, sizeof(*this))
214
when the data contains a std::string.
220
- MGR: Separate refresh of Event Log from refresh of tabs.
221
- MGR: Update Notices tab only when data has changed.
222
- MGR: Clean up some async RPC logic.
229
sg_BoincSimpleGUI.cpp
230
ViewNotifications.cpp, .h
233
- MGR: When Event Log is open, do get_messages RPC once per second but
234
do view-specific periodic RPCs at their normal View refresh rate.
238
BOINCBaseFrame.cpp, .h
242
- client (Mac): append /usr/local/cuda/lib to LD_LIBRARY_PATH
243
and DYLD_LIBRARY_PATH
244
- client simulator: compile fixes
257
- user web: make user search translatable
263
- client: fix notification display logic
266
ViewNotifications.cpp
269
- fix python deprecation warning (from Jeremy Cowles)
275
- API: if app can't acquire lock file, tell the client not
276
to restart app for 10 minutes.
277
Hopefully what will happen is:
278
- another instance of app is running in slot dir
279
(shouldn't happen, but sometimes does)
280
- that app will eventually finish, and will write
281
a checkpoint file saying so.
282
It will call boinc_finish(0), but the client won't notice
284
- the next time the client starts the app,
285
it will acquire lock, see that it's done,
286
and call boinc_finish(0).
287
This time the client will notice,
288
and the job will be reported as correct.
289
The downside to all this is that the client won't know
290
that the CPU is in use, and will schedule NCPUS jobs.
296
- client sandbox: set LD_LIBRARY_PATH and DYLD_LIBRARY_PATH in switcher.
297
For unknown reasons, the these 2 environment variables are not
298
passed in to switcher, though all other environment variables do get
309
- Limit the number of files to be deleted in one 'antique
310
deletion' pass to 50000 (can be changed with -delete_antiques_limit).
311
Previously large number of antiques led to not deleting any at all.
312
- Allow to change the interval between passes with -delete_antiques_interval.
313
- Allow to specify the name of an application instead of the appid.
319
- client: add <stderr_head> config option;
320
sends the first rather than last 64KB of stderr to server.
321
This doesn't belong here; this choice should come from the server.
322
I may take this out later.
323
- user web: when add a private message, always add a notification
335
edit_form_preferences_form.php
341
- manager: "Notifications" => "Notices". Consistent terminology.
347
ViewNotifications* -> ViewNotices*
350
- client: small tweak to work fetch:
351
if project has crazy DCF, don't automatically request 1 sec;
352
only request work if there's a shortfall.
353
- intermediate checkin for notices stuff
370
- Notices: put message bodies inside CDATA
371
- XML_PARSER: handle CDATA
380
- MGR: The fix of 14 Oct 2009 for "initial first connection problem on
381
startup" caused the Tools menu to be incorrect when switching from
382
Simple to Advanced View if using an account manager: solve this by
383
calling pDoc->IsConnected() in CAdvancedFrame::CreateMenu() instead
384
of using bool argument bRPCsSafe. Remove unused bRPCsSafe arg from
385
CAdvancedFrame::CreateNotebook(), CAdvancedFrame::CreateStatusbar().
386
- Mac: Update XCode project for ViewNotifications* -> ViewNotices*.
389
AdvancedFrame.cpp, .h
395
- server: client version numbers are represented as
396
10000*major + 100*minor + release,
397
rather than 100*major + minor.
398
Sometimes you need release-level resolution.
400
- app_version.min_core_version
401
- config: min_core_client_version_announced
402
- config: min_core_client_version
403
Projects using these must multiply them by 100.
414
- scheduler: close DB connection on SIGTERM (from Bernd M.)
420
- manager: in Notices tab, direct links to default web browser
426
- MGR: Use an event handler, the function overload is deprecated.
432
- web DB code: fix PHP warning when enumeration returns nothing.
433
From Nicolas. fixes #974
434
- client: tiny code shuffle
443
- user web: make a bunch of strings translatable (from Nicolas)
455
BOINC-Project-Generic.pot
458
- Mac Installer: fix bug launching client when configured as a service.
464
- scheduler/feeder: if any client version number field
465
(min_core_version etc.) is < 10000,
466
multiply it by 100 and print a warning.
475
- user web: do SQL escaping before storing prefs in the database as some
476
projects store user-editable strings in the preferences.
482
- scheduler: use COPROC_REQ instead of COPROC when parsing
483
anonymous-platform app versions.
484
Otherwise fractional GPU requirements get truncated to zero.
485
Thanks to Crunch3r for identifying the problem.
491
- API: fix crashing bug. Don't memset(0) APP_INIT_DATA;
492
it contains HOST_INFO, which now contains COPROCS,
494
Define a clear() for APP_INIT_DATA.
500
- client: initial checkin for "don't compute if CPU usage above X"
513
- client and user web: finish the above.
514
Should add the Adv Prefs dialog as well.
524
- lib: Don't allow the diagnostics threads to be suspended.
525
If a crash happens within the remaining threads
526
the process will deadlock.
534
- API: fix crashing bug. There was a leftover memset(aid, 0)
535
in boinc_parse_init_data_file()
536
- client sim: make it work again
545
- web: translation fix from Nicolas:
546
"There is a bug in tra() that causes problems if one of the arguments
547
contains a replacement marker itself. For example, if the first
548
argument contains an encoded URL, which contains '%2', the second
549
argument may appear in the middle of the URL."
550
- client simulator: further fiddling around. Not done.
560
- client simulator: done for now
567
- client: brute-force attempt at eliminating domino-effect preemption:
568
if job A is unstarted and EDF,
569
and there's a job B that is later in the list,
570
is started, has the same app version,
571
and has the same arrival time,
573
- client: remove the "temp_dcf" mechanism,
574
which had the same goal but didn't work.
575
- client: in computing overall debt for a project,
576
subtract a term that reflects pending work.
577
This should reduce repeated fetches from the same project.
578
- client simulator: tweaks
591
- MGR: Implement Mac accessibility for Event Log.
595
DlgEventLogListCtrl.cpp, .h
597
MacAccessiblity.cpp, .h
600
- lib: Updated Makefile.mingw to include coproc.cpp/h
606
- Mac Sandbox: To keep authenticators private, make all .xml files readable
607
only by user and group boinc_master; except ss_config.xml is world-
608
readable so screensaver coordinator can access it. All other files
609
except gui_rpc_auth.cfg are world-readable to allow access by
619
lib: add cal.h to install headers
625
- user web: clean up LANG_NAME_* mess
634
- DB purge: allow fractional min_age_days (from Travis Desell)
641
- user web: don't show "database error" if result refers
642
to deleted app version
652
- transitioner: fix bug where WUs with error_mask <> 0 keep
653
transitioning every 10 days, hence never become eligible for purging.
654
The problem: the transitioner has a "safety net" where,
655
if the WU doesn't have a canonical result,
656
it arranges for another transition in 10 days.
657
Skip this if error_mask<>0.
663
- client: when launching app, delete init_data.xml using switcher
664
prior to trying to write it,
665
in case it's owned by another user (e.g., boinc_project)
671
- client/manager: eliminate duplicate notices.
672
When appending a new notice, we check whether one with
673
the same title and description is present already.
674
If so we remove one or the other, depending on the situation.
676
This introduces the possibility of "holes" in the seqno space.
677
In order that the manager learns of these deletions,
678
we use the following mechanism:
679
whenever a notice is removed (because it's a dup or too old)
680
a flag is set in each GUI_RPC_CONN.
681
On the next get_notice() RPC, the client returns the entire
682
list of notices, preceded by a dummy notice with seqno=-1;
683
this tells the RPC stub function to replace the current list
684
rather than appending to it.
690
gui_rpc_server_ops.cpp
691
samples/multi_thread/
695
- web: assume all translation files are UTF-8
706
- Mac Sandbox: The init_data.xml file in each slot directory also contains
707
an authenticator; to keep these private, change ownership of the "slots"
708
directory to boinc_master:boinc_project and eliminate read and execute
709
permissions of this directory for "other". For consistency, make the
710
same changes to the "projects" directory. The individual slot and
711
project directories are still world-executable and they and their
712
contents are still world-readable, so the Client can still read files
713
created by project apps with ownership boinc_project:boinc_project.
714
- NOTE: I believe this should not cause any problems for either BOINC or
715
project applications, but it needs to be tested thoroughly.
730
- MGR: Fix minor bugs in Mac accessibility reporting kAXWindowAttribute and
731
kAXTopLevelUIElementAttribute.
738
- client: fix small bug that could interfere with work fetch
739
on hosts with both NVIDIA and ATI GPU
745
- client: fix work fetch bug that prevented getting work
746
from an overworked project,
747
even if idle instance or major shortfall.
748
- GUI RPC: finish the notice-duplication thing
753
gui_rpc_client_ops.cpp
756
- client: remove debug msgs
762
- client: if a project has zero resource share,
763
treat it as a "backup project":
764
fetch work from it only if there is an idle instance
765
and no other projects have work.
774
- Mac Sandbox: SetupAuthorizationExecuteWithPrivileges() forks to run chmod and chown,
775
leaving zombie processes which can exceed the system-imposed limit of processes
776
MAXUPRC for a user. Call waitpid() to clear these zombies.
777
- Mac Sandbox: fix comment in Mac_SA_Secure.sh script.
786
- client: fix my last checkin
793
- user web: allow zero resource share
794
- client: allow zero resource share
805
- user web: if Akismet rejects thread reply, show warning
811
- manager: move Preferences and Options to Task menu.
812
Give them more descriptive names.
819
- graphics API: if font missing, find one that isn't (from Kevin)
825
- ss_app: Allow branding for GridRepublic by compiling with -D_GRIDREPUBLIC on
826
non_apple systems and by testing Branding file on Macs.
827
- ss_app: Add a high-resolution background GridRepublic logo.
828
- Mac Installer: update script for new gridrepublic_ss_logo.jpg file, etc.
829
- Mac Installer: add .txt extension to copyright files in GUI installer extras.
834
gridrepublic_ss_logo.jpg
841
- scheduler: don't send CUDA jobs to Macs with client < 6.10.28;
848
- client: newer ATI drivers crash if struct_size isn't filled out
849
before the structure is used.
855
- Mac SS: look for Branding file in BOINC Data folder before the one in Manager
856
to avoid confusion if newer copies of BOINC Manager exist elsewhere on system.
857
(This is primarily for convenience in debugging on build system)
863
- client: if GPU get available RAM fails, don't use the GPU
864
- web: put $languages_in_use into $GLOBALS.
865
Apparently it can't be referenced as a global in Drupal otherwise
873
- web: code shuffle for Drupal
896
- scheduler: add example code for SETI@home's situation
897
where app has both GPU and CPU versions,
898
but for certain jobs (VLAR WUs in this case)
899
the GPU version performs poorly and shouldn't be used.
901
The fix is a kludge - it will result in these jobs
902
not being sent to the host at all,
903
rather than being sent with the CPU app.
904
The current architecture makes it difficult to do otherwise.
905
One possible fix would be to create a separate app
906
for VLAR jobs, with only CPU app versions.
912
- Mac Installer: when adding non-admin users to group boinc_master, also add
913
them to group boinc_project; this fixes permissions error -1200 for non-
914
admin users; show "Please wait" alert if WaitPermissions takes > 15 seconds.
924
- web: fix bug that caused news RSS to show wrong items
930
- WINSCR: cleanup configuration dialog text.
936
- MGR: Enable task bar icon on Linux.
944
- MGR: Move cross-platform event handlers for creating context menus and updating
945
tooltips out of the Windows only scope.
951
- MGR: Fix build break by adjusting the SetIcon function prototype so that it conforms
952
to the wxWidget standard.
960
- MGR: Change the 'Open BOINC Manager' menu item ID for the task bar icon. wxID_OPEN
961
causes a folder icon to be prepended to the menu item on Linux.
962
- MGR: Enable the Test Notification menu item on Linux
968
- MGR: Introduce balloons to Linux version of BOINC Manager.
969
(Note: Not debugged yet)
980
- parsing of platforms from WCG's get_project_config.php was wrong
986
- web: make a bunch of strings translatable (from Christian Beer)
997
- more tra()s from Christian. fixes #976
1003
- client: detect CPU information via the cpuid instruction instead of
1004
the registry. This change is only for Windows but I haven't tested
1011
- MGR: Fix build breaks and potential crashes from recent task bar changes.
1012
- Mac SS: change configuration dialog text to match new Windows wording.
1016
BOINCTaskBar.cpp, .h
1022
- client: undo [17160]. <ncpus>0</ncpus> in cc_config.xml
1023
no longer means simulate zero CPUs.
1024
There are several places that divide by ncpus.
1025
Zero CPUs doesn't make any sense anyway.
1032
- client: some more CPU detection cleanup.
1038
- Mac installer: If installing an acct_mgr_url.xml file, don't install it
1039
directly into the BOINC Data directory. Instead, put it into the
1040
installer's resources and have the postinstall or postupgrade script
1041
copy it to the BOINC Data directory. This fixes a problem which would
1042
happen if the user later ran the standard BOINC installer without an
1043
acct_mgr_url.xml file: the Apple installer would then delete the file,
1044
causing BOINC to detach from the account manager.
1047
make_GridRepublic.sh
1048
make_ProgThruProc.sh
1053
- Mac Installer: Fix receipt name for GridRepublic installer so we can remove it.
1059
- build: Attempt to hook up the gtk flags and libs to BOINC Manager
1067
- MGR: Move GTK structures out of the class scope.
1073
- build: replace gtk flags and libs with libnotify
1081
- MGR: Add some debugging to the notification code
1087
- MGR: Re-enable the test notification mechanism so
1088
that it is compatible with Linux.
1091
BOINCTaskBar.cpp, .h
1094
- MGR: Re-enable the context menu support mechanism so
1095
that it is compatible with Linux.
1098
BOINCTaskBar.cpp, .h
1101
- MGR: Fill in missing pieces to get the notification
1102
handler to signal us when a notification has closed.
1108
- MGR: Over half of the information on the Internet about
1109
libnotify is now out of date. The 'closed-reason'
1110
property has been removed and that is why I was having
1111
so many problems. Hook up the events I can determine
1112
from the remaining information.
1118
- MGR: Re-enable the balloon context click event handler
1122
BOINCTaskBar.cpp, .h
1125
- MGR: The Linux notification area doesn't report when mouse
1126
activity happens over the notification icon, so merge the
1127
OnMouseMove event handler with the OnRefresh event handler
1128
so we have the correct tooltips.
1131
BOINCTaskBar.cpp, .h
1134
- MGR: Another place that interacts with the taskbar but was
1135
included only if compiled for Windows or the Mac.
1142
- MGR: Only notify the OS of a change in the notification area
1143
if something has changed, otherwise don't update.
1146
BOINCTaskBar.cpp, .h
1149
- client: if a project is anonymous platform and it has no
1150
app versions that use a resource,
1151
don't request work from it for that resource.
1160
- Mac: Update build script for OS 10.6 and XCode 3.2 (thanks to Jack
1161
Shultz for pointing out this was needed.)
1167
- MGR: Mac Taskbar does not support tooltips, so exclude tooltip code on Macs.
1173
- web: make strings translatable. fixes #980
1176
edit_user_info_form/action.php
1179
- client: include CPU usage of client in BOINC total.
1180
Also include manager if its name includes "boinc"
1181
(can't figure out another way)
1187
- web: more translations, from Christian. fixes #981
1199
Mac wrapper: add build script and make file to buuild wrapper on Mac.
1207
- web: more translations, from Christian. fixes #982
1212
- Samples: Update MakeMacExample.sh and Mac make files in example_app for
1213
OS 10.6 and XCode 3.2.
1222
- manager: first whack at "suspend if CPU load exceeds x" in dialog
1226
cancel_wu_action.php
1229
- screensaver: fix bug where sometimes no tasks are shown;
1230
change font sizes for max of 2 sizes at a time
1236
- MGR: Fix icons for dialogs that display them.
1241
sg_DlgPreferences.cpp
1244
- db_dump: don't error out if try to rename output dir
1245
and it doesn't exist.
1246
Seems to me that this would cause db_dump to always fail
1259
- assimilator: fix --one_pass bug (from Bernd)
1265
- client: don't accumulate LTD for projects w/ suspended jobs
1271
- wrapper: print more detailed msgs if process creation fails
1277
- locale: automatically update each language based on whatever the
1284
- various components: fix inconsistencies in how user names
1285
and team names are represented.
1286
In particular, edit_user_info_action.php was using
1287
htmlentities() on names; this led to double-encoding.
1290
1) no HTML tags allowed in either one.
1291
This is enforced silently, using strip_tags()
1292
2) names are stored in the DB exactly as entered.
1293
They may contain chars like & and >.
1294
They may contain non-ASCII characters
1295
(use UTF-8 if you want them displayed correctly).
1296
None of these are not escaped.
1297
3) When the names are put in XML
1298
(e.g. in scheduler reply or db_dump output)
1299
they are XML-escaped.
1300
This escapes <, &, and non-ASCII chars
1301
4) The client leaves them in this form,
1302
and writes them that way in GUI RPCs
1303
and init_data.xml files.
1304
5) The parsing of GUI RPC replies and init_data.xml files
1311
edit_user_info_action.php
1314
gui_rpc_client_ops.cpp
1317
- API: in txfRenderString, replace non-ASCII chars with ?.
1318
Otherwise it calls abort()!
1324
- client: fix bug in "suspend if CPU load too high" feature.
1325
Forgot to convert between fraction and percentage
1333
- web: translation stuff
1341
- admin web: a project must provide an .htaccess file
1342
or an auth_ops() function (not necessarily both).
1343
New projects are given an .htaccess file with no .htpasswd,
1344
so they must either create a .htpasswd file
1345
or define auth_ops() in order to use admin web pages.
1356
- client: Add a function to the client software to be able to detect
1357
the number of bytes sent and received across all non-loopback
1364
- web: translation typo
1369
- MGR: Fix a long-standing bug that made sizers fail on Mac for Advanced
1370
Preferences dialog: I added bSizer1->Fit(this) to end of constructor.
1371
To work around this bug, the dialog had been made resizeable and the
1372
height and width were saved in the Manager settings. But this meant
1373
that when we add an item to the dialog, it is too small until the
1374
user expands it. And Modal dialogs like this should not be resizeable.
1375
I also made the dialog no longer resizeable by the user.
1378
DlgAdvPreferences.cpp
1379
DlgAdvPreferencesBase.cpp, .h
1382
- WIN: Add some missing CPU features to the feature list
1383
- WIN: Make sure the Brand string for a CPU is printable. Older Intel
1384
processors have some control characters.
1390
- MGR: Save and restore height and width of Properties dialog; fix comments.
1393
DlgAdvPreferences.cpp
1394
DlgItemProperties.cpp, .h
1397
- MGR: Implement lost features from old messages display in Event Log:
1398
filtering by project (show only this project), dimming Event Log
1399
display when disconnected; alternating gray and white background
1400
stripes for readability.
1407
- client: Add SEH handlers around the Nvidia and ATI detection
1408
routines. Take care of situations where something within
1409
the vendors functions cause a crash.
1415
- admin web: reorganize main page;
1416
add "transition all" command
1424
manage_app_versions.php
1429
- scheduler: add plan class "cuda_fermi":
1430
requires CUDA 2.3 and compute capability 2.0+
1436
- client: if suspend a file xfer, set upload_offset to -1;
1437
that way it will query server for file length when it resumes,
1438
rather than uploading from the beginning
1439
- client: back out SEH handling for GPU detection
1446
- client: if have coproc jobs but coproc is missing,
1447
skip those jobs in RR sim.
1448
Otherwise we add stuff to uninitialized data structures,
1449
and a crash can result.
1450
- client: initialize the above data structures anyway
1457
- client: fix bug that interfered with work fetch
1458
for particular resources in anonymous platform case.
1464
- server: if MySQL version is 5.0.19 <= v < 5.1,
1465
set the reconnect option before real_connect() instead of after.
1476
- client: Improve error checking with CPU detection features.
1477
- lib: cleanup some warnings.
1485
- client: if suspending apps because of CPU benchmarks,
1486
leave them in memory
1494
- MGR: Fix more Event Log bugs: Exit from taskbar closes Event Log just
1495
like exit from regular menu; enable and disable Copy Selected and Filter
1496
buttons depending on selected messages; fix misplaced curly bracket in
1497
CMainDocument::RunPeriodicRPCs() which caused excessive CPU usage and
1508
- MGR: Keep getting messages even if the Event Log is not open; otherwise
1509
some may be lost due to the limited size of the client's buffer,
1510
causing gaps when the Event Log is later opened.
1516
- client: Add missing European SKUs to the host detection code.
1523
- API: Win: resume other threads before exiting from timer thread.
1524
Attempt to fix E@h bug.
1525
- client: fix messages: asking for X instances doesn't mean
1526
that X instances are idle
1534
- add remote job submission system (from Toni Giorgino)
1539
- client: generalize the GUI RPC mechanism to access via HTTP.
1540
The handler checks for POST headers,
1541
and if present adds a reply header.
1542
Also: remove the restriction that request messages
1543
must be read in their entirety on the first recv().
1545
I'm testing this using javascript's XMLHttpRequest.
1546
It's not completely working;
1547
the browser sends an OPTIONS request, then sends a POST.
1548
The BOINC client parses and replies to these,
1549
but for some reason the browser doesn't seem to be
1550
parsing the POST reply.
1553
gui_rpc_server.cpp,h
1554
gui_rpc_server_ops.cpp
1557
- MGR: Save & restore size information of properties dialogs separately
1558
for project and task property dialogs, also save and restore dialog
1562
DlgItemProperties.cpp, .h
1565
- MGR: Use theme colors when setting up the color scheme for list items.
1566
The previous use of gray just happened to be the same color as the
1567
deselected but highlighted list item which caused the 'gray'
1568
backgrounded items to display a white background after Windows
1569
inverted the color for highlighting. By using theme colors we avoid
1570
having to worry about such things.
1577
- scheduler: code cleanup: goto considered harmful
1578
- scheduler: when calculate scheduler runtime,
1579
don't include the part reading request msg from client.
1580
That can be misleadingly long
1588
- client: more Windows SKU detection changes
1589
(from: [P3D] Crashtest)
1595
- scheduler: cuda_fermi class needs CUDA version 3.0+
1596
- boinccmd: "result" -> "task"
1601
gui_rpc_client_print.cpp
1606
- update_versions: if file is already in download dir,
1607
and is the same, don't copy (it might not be writeable)
1608
- client: change "result" to "task" in user-visible messages
1616
- web: fix bug that caused "send email" and "show hosts"
1617
in project prefs to always select "no"
1623
- MGR: Instead of alternating gray and white backgrounds in lists,
1624
create CBOINCListCtrl and CDlgEventLogListCtrl with wxLC_HRULES
1625
flag. This avoids theme color conflicts with our backgrounds.
1626
It also eliminates the need to set item attributes in the views,
1627
since the default attribute setting already uses theme colors.
1628
(We still use item attributes in the Event Log to list
1629
error messages in red text.)
1632
BOINCBaseView.cpp,.h
1633
BOINCListCtrl.cpp, .h
1637
- MGR: in Event Log: enable and disable Copy Selected and Filter buttons
1638
immediately when selecting or deselecting items; fix Mac-only bug
1639
drawing selected items when Event Log window is inactive.
1643
DlgEventLogListCtrl.cpp, .h
1646
- MGR: Remove some hacks to deal with early wxGTK bugs which have since
1654
- MGR: Restore wxGTK hacks, bug is still alive and well.
1661
- client: don't start new network activity if CPU benchmarks in progress
1667
- MGR: Allow compile-time choice of either rules or alternating gray and white
1668
background stripes in lists by defining EVENT_LOG_STRIPES (in DlgEventLog.h)
1669
and BASEVIEW_STRIPES (in BOINCBaseView.h) to 0 for rules or 1 for stripes.
1672
BOINCBaseView.cpp,.h
1673
BOINCListCtrl.cpp, .h
1675
DlgEventLogListCtrl.h
1678
include sys/types.h for gid_t
1684
for now maintain (install, uninstall) header files in both BOINC/ and boinc/
1685
(BOINC/ kept for compatibility, shall be dropped at some point later)
1691
fix to compile boinc_api.cpp on Windows
1692
looks like copy/paste error, retval is not defined there
1693
David, please review & change if necessary
1699
- client: revisit the domino-effect preemption problem.
1700
Removed my changes of 19 Jan 2010, which didn't work.
1701
Added new mechanism: keep track of whether a job J has ever run in EDF.
1702
If so, and if another job of the same project and resource type as J
1703
is marked as deadline miss, then mark J as deadline miss,
1704
so that it won't get preempted.
1705
- web: change "result" to "task" in server status page
1706
- admin web: show server stable SVN revision, not trunk
1710
sample_server_status.php
1717
- server: major improvements to locality scheduling from Einstein@home.
1718
Triggering the work generator is now done via the DB
1719
instead of flat files.
1721
Since only E@h uses locality scheduling,
1722
I kept the DB changes in a separate file (db/schema_locality.sql).
1723
There's a new field in the workunit table,
1724
and that's a required update (in db_update.php)
1725
- manager: compile fix
1742
- web RPC: generalize team lookup so that you can look up multiple
1743
teams in one RPC. From Willy de Zutter.
1749
- server credit stuff (partial checkin)
1761
- server credit stuff.
1762
New policy: anon platform and old platform jobs
1763
get average credit, possibly scaled by elapsed time.
1764
We no longer attempt to guess what app version produced them.
1775
- client: if a GPU job is blocked on available mem,
1776
don't fetch more jobs for that resource type
1788
- client: don't suspend non-CPU-intensive jobs because of CPU load
1793
gui_rpc_server_ops.cpp
1799
- MGR: Improve performance when reducing number of rows in lists (as
1800
when selecting "Show active tasks") by calling ClearSelections()
1801
and SetItemCount() instead of repeatedly calling DeleteItem().
1807
- credit test program: create a data file separately so you
1808
don't have to do a big DB query each time
1816
- MGR: Fix a bug which caused unnecessary demand RPCs on some platforms:
1817
set RPC time stamps to 1 rather than 0 in RefreshRPCs() so a not to
1818
trigger initialization code.
1824
- MGR: Prevent flicker and lack of display by using the regular tooltip
1825
for the Project List control on Windows.
1828
ProjectListCtrl.cpp, .h
1831
- credit test program:
1832
It's working pretty well; for S@h, new credit is 56% of old credit,
1833
whether or not we include small-credit jobs.
1834
- improve AVERAGE class (from John McLeod)
1841
- MGR: Fix to my previous checkin: RefreshRPCs() shouldn't change time stamp
1842
if it was zero, as this is a special vslue to indicate the RPC has never
1849
- MGR: use alternating gray and white background stripes in all lists; change
1850
gray color to (247, 247, 247) from (240, 240, 240). Use system colors for
1854
BOINCBaseView.cpp,.h
1855
BOINCListCtrl.cpp, .h
1857
DlgEventLogListCtrl.h
1860
- Manager/client: show project name with notices
1871
- MGR: Allow separate compile-time choice of rules and / or alternating gray
1872
and white background stripes in lists by defining EVENT_LOG_RULES and
1873
EVENT_LOG_STRIPES (in DlgEventLog.h) and BASEVIEW_RULES and BASEVIEW_STRIPES
1874
(in BOINCBaseView.h); set each to 1 to enable or 0 to disable; currently all
1875
are set to 1 for both stripes and rules in both types of lists.
1882
- Remove BOINC_RCSID tags from source files, we are doing branching and tagging
1888
- GUI RPC: in the structures used in the C++ interface to GUI RPC,
1889
change various std::string to char[n], to improve performance.
1891
NOTE: std::string should ONLY be used in cases where there is
1892
no a priori limit on string length.
1893
If there's a limit (e.g. because the string originates in
1894
a fixed-size database field) always use char[n].
1897
sg_StatImageLoader.cpp
1899
sg_StatImageLoader.h
1901
sg_ProjectsComponent.cpp
1906
DlgItemProperties.cpp
1910
gui_rpc_client_print.cpp
1911
gui_rpc_client_ops.cpp
1917
- client: we weren't marking GPU jobs as EDF-scheduled
1923
- server: DB update queries check that the number of affected rows is 1.
1924
However, MySQL's default is that "affected rows" is
1925
rows actually modified, which is not what we want.
1926
Use the CLIENT_FOUND_ROWS option in mysql_real_connect()
1927
to change the semantics to "rows matched".
1934
- GUI RPC: more replacement of std::string
1938
DlgItemProperties.cpp
1946
gui_rpc_client_print.cpp
1947
gui_rpc_client_ops.cpp
1951
- client: in computing non-BOINC CPU time,
1952
exclude any process whose executable includes "boinc", case-insensitive.
1953
Fix problem with BoincTasks.exe
1954
NOTE: this affects only Win and Linux;
1955
Mac already had case-insensitive comparison.
1962
- Mac Sandbox: Fix bug in my changes of 26 Jan 2010 to set projects directory
1963
and slots directory to group boinc_project, not boinc_master.
1969
allow out-of-source-tree build & install of MinGW Makefile build
1975
- fix bugs in strcasestr(), which apparently had never been tested
1976
- fix typo in schema
1984
- Define HAVE_ALLOCA in boinc_win.h so that any component using
1985
strcasestr in str_util.cpp uses stack allocations instead of
1986
more expensive heap allocations.
1987
- Move remaining HAVE_* defines from project files to boinc_win.h
1995
- MGR: If user selects Event Log from menu when Event Log window already open,
1996
just bring it to the front instead of opening another window.
1997
- lib: Fix crash bugs.
2002
gui_rpc_client_ops.cpp
2005
- client (and anything else using MFILE): Win efficiency fix.
2006
Shockingly, realloc() wasn't doing exponential growth.
2007
So create realloc_aux() that does.
2011
gui_rpc_client_ops.cpp
2014
- MGR: Switch background color for the list view stripes back to
2015
the original color (240, 240, 240) from (247, 247, 247).
2022
- MGR: Add event map to the properties dialog.
2025
DlgItemProperties.cpp, .h
2028
- feeder: with -allapps option, allow some apps to have zero weights;
2029
no jobs will be sent for them.
2036
- MGR: Fix crash bug when using Mac accessibility with Event Log.
2039
DlgEventLogListCtrl.cpp, .h
2042
- client: fix bug where if anon platform file had bad platform name,
2043
it would cause jobs to get discarded on client restart.
2044
- manager: remove flicker-producing messages on status bar
2055
- Mac SS: Fix build break due to RPC changes of std::string to char[n].
2061
- feeder: compile fix
2067
- MGR: Change Advanced Menu item "Run GPU never" to "Suspend GPU".
2075
- added -dont_delete (don't delete from DB, for testing)
2076
- added -daily_dir (write archives in a new directory each day)
2082
- web RPC: include mem and disk info in host XML record
2088
- MGR: Simplify the taskbar code before implementing the notice detection
2089
code for the taskbar.
2095
- boinccmd: add --set_gpu_mode command
2096
- fix some compile warnings
2106
- user web: if a forum or thread is not visible to a user,
2107
remove their subscriptions to it.
2117
- user web: in above case, remove notifications as well
2123
- Manager: fix bug in task properties app name display
2126
gui_rpc_client_ops.cpp
2129
- MGR: Display a balloon on Windows and Linux, while causing
2130
the dock to bounce on the Mac whenever new notices arrive.
2131
- MGR: More cleanup work for the task bar.
2134
BOINCTaskBar.cpp, .h
2139
- client/manager: show "No CPU prefs" etc. in project properties
2144
DlgItemProperties.cpp
2147
gui_rpc_client_ops.cpp
2150
- server: various changes;
2151
see http://boinc.berkeley.edu/trac/wiki/CreditNew
2153
Projects will need to update DB and recompile all back-end programs.
2156
- new way of computing credit
2157
- "reliable host" mechanism is per app version
2158
- "host punishment" mechanism is per app version
2159
- adjustment of wu.rsc_fpops_est provides the
2160
equivalent of per app version DCF
2161
- max jobs in progress is now per app
2162
- max jobs per RPC is now per app
2165
- reliable mechanism:
2166
- populate and use host_app_version.error_rate
2167
- populate host_app_version.turnaround
2169
- populate host_app_version.max_jobs_per_day
2170
- populate host_app_version.n_jobs_today
2171
- use app.max_jobs_per_day_init
2173
- use app.max_jobs_in_progress, max_gpu_jobs_in_progress
2174
- use app.max_jobs_per_rpc
2175
- adjust wu.rsc_fpops_est
2176
- remove old credit stuff
2177
fpops_cumulative, credit_multiplier
2178
credit computation in scheduler
2180
- AVERAGE class: use the Knuth algorithm (Wikipedia)
2195
app_versions.php (new)
2196
forum_moderate_thread.php
2211
validate_util2.cpp,h
2217
- client/manager: prefix anonymous platform apps with "Local: "
2223
DlgItemProperties.cpp
2227
gui_rpc_client_ops.cpp
2230
- MGR: Call get_notices RPC once per minute when Notices tab is not open
2231
so we can notify the user when new notices become available.
2234
MainDocument.cpp, .h
2237
- MGR: Mac fixes for recent task bar cleanup work. Remove taskbar icon
2238
tooltip code on Mac since Mac Taskbar Icon does not support
2239
tooltips (this code is not removed by compiler optimization.)
2242
BOINCTaskBar.cpp, .h
2247
- MGR: If there are new notices on Mac:
2248
- Request user attention if Manager is hidden, and
2249
- Display an alert if Manager is open to a tab other than Notices
2250
(If Manager is now hidden, alert will appear when Manager is shown.)
2251
Allow updates to continue behind the notification alert.
2254
BOINCTaskBar.cpp, .h
2257
- client/manager/GUI RPC: project_info.xml file can contain <team_name>.
2258
If present, and a new user account is created,
2259
it will be made a member of that team if it exists.
2263
WizardAttachProject.cpp,h
2264
ProjectProcessingPage.cpp
2265
sg_BoincSimpleGUI.cpp
2270
gui_rpc_client_ops.cpp
2275
- MGR: Bad things happen when you don't initialize default values
2276
for variables under wxWidgets.
2282
- finish up the auto-team feature
2285
account_finish_action.php
2289
- client: NVIDIA peak FLOPS estimate was wrong for Fermi
2296
- client: delete project_init.xml if attached to any project.
2297
- manager: avoid divide by zero if the only project
2298
has zero resource share
2301
gui_rpc_server_ops.cpp
2306
- client: Fermi compute capability is 2, not 3
2312
- MGR: Fix double inclusion problem with change in header layouts
2319
- client: give dynamic estimate (based on fraction done)
2320
a greater weight in time-to-completion estimate
2326
- client: when looking for new file xfers to start,
2327
favor those that are partially done
2328
- client: fix crashing bug if a project is detached
2329
while an RSS feed fetch for it is in progress
2330
- code cleanup: switch from /// back to // for comments
2331
(so much for doxygen)
2341
- MGR: Show number of unread notices in title of Notices tab (we consider
2342
all notices as having been read when Notices tab is showing and BOINC
2343
Manager is front process). Notify (balloon on Window or Linux, bounce
2344
Dock icon on Mac for 15 seconds) repeatedly when there are unread
2345
messages, with notification frequency set by Options dialog reminder
2347
Note: Should there be 2 separate reminder frequency sliders for network
2348
connection and Unread notices?
2351
AdvancedFrame.cpp, .h
2352
BOINCBaseFrame.cpp, .h
2353
BOINCTaskBar.cpp, .h
2355
MainDocument.cpp, .h
2359
- web: show anon platform correctly in task list
2365
- MGR: Only execute a set mode when the menu item has been checked.
2366
On Linux the act of checking and unchecking menu items
2367
programatically causes events to be fired and processed just
2368
like user input. This causes the menu items to flip flop
2369
back and forth between different modes.
2375
- manager: fixed one last (hopefully) instance of == applied to
2376
a char[] formerly std::string
2380
sg_ProjectComponents.cpp
2384
- scheduler: choose cuda_fermi over other cuda plan classes
2390
- validator: improved log messages
2391
- fix some compiler warnings
2398
- manager: change text for notice-frequency slider
2404
- backend programs: change the way PFC and elapsed-time statistics
2405
are written to the DB.
2406
The incremental approach was bogus.
2408
host_app_version: write directly; R/W interval is tiny
2409
app_version: maintain an explicit list of update samples
2410
for both PFC and credit.
2411
When the validator flushes its app_version cache,
2413
Note: when using double fields in careful updates,
2414
you can't test for equality. Use abs(new-old) < 1e-N
2426
- backend: improved messages for app version credit updates
2432
- backend: fix scaling problem that was producing xe15 size credits.
2433
This had messed up the beta DB, which I had to clean up.
2434
Added a cap (1e5) to prevent this in the future.
2440
- backend: make "print queries" a runtime instead of compile-time
2441
decision (bool g_print_queries)
2447
- Mac: Update build instructions to replace dead link for
2448
downloading JPEG 6b sources.
2451
HowToBuildBOINC_XCode.rtf
2454
- Mac: Build with c-ares 1.6.0 instead of c-ares 1.7.0, because the newer
2455
c-ares has problems resolving host names on OS 10.6 with default
2456
settings when used with AT&T U-Verse 2Wire gateway routers and Airport.
2461
HowToBuildBOINC_XCode.rtf
2467
- Client: fix bug that caused wrong jobs to be run EDF
2468
(needed to initialize a var inside loop, not outside)
2474
- client: clean out project dir on reset. fixes #978
2480
- MGR: If user is not active, delay notification until he is active
2487
- validator: -d 4 means -d 3 plus print all DB queries
2488
(todo: do this for all daemons)
2489
- validator: change cmdline args from -foo to --foo
2490
(todo: do this for all daemons)
2491
- validator: pass max_granted_credit to assign_credit_set()
2502
- validator: remove update_credit_per_cpu_sec(). Irrelevant.
2503
TODO: remove related code
2504
- validator: update wu.canonical_credit correctly.
2505
However, this field should be deprecated.
2506
- validator: check for error return from assign_credit_set().
2515
- server: fix messed-up app version stats export
2521
- server: change all backend programs so that -d 4 means
2522
-d 3 plus print DB queries
2528
- client: read_file_malloc() must open file in binary mode,
2529
else it won't get the right part of the file
2535
- server: make the -d 4 feature work with FCGI
2544
- user web : improve result display
2550
- client: don't do RSS fetch if network suspended
2558
- validator: detect jobs that used GPU app but fell back to CPU
2559
(SETI@home does this if GPU initialization fails).
2560
Treat these like CPU apps for credit purposes.
2566
- client: don't include graphics apps in non-BOINC CPU time
2576
- Mac SS: Optimize screensaver for OS 10.6.
2577
- client: don't include graphics apps in non-BOINC CPU time (Mac).
2580
Mac_Saver_ModuleView.m
2586
- client: don't include graphics apps in non-BOINC CPU time (Unix).
2593
- client: allow zero resource shares from account managers
2599
- admin web: show more credit-related info
2606
- client: "allow_remote_gui_rpc" is available via cc_config.xml
2607
as well as command-line.
2608
- client: show allow_remote_gui_rpc option,
2609
and contents of remote_host.cfg, in message log on startup
2610
- client: code cleanup: move some options from
2611
CLIENT_STATE to OPTIONS
2622
- admin web: "User privileges" didn't work if the project
2623
had set forum_preferences.special_user to "0000000",
2624
as had been done in SETI@home for some reason.
2625
Also, show user ID as well as name; name is not unique.
2628
manage_special_users.php
2629
profile_screen_form.php
2632
- client: revert [21035]; remove project_init.xml only if
2633
attached to the project it specifies
2634
(requested by Kevin Reed)
2637
gui_rpc_server_ops.cpp
2640
- WINSETUP: Add support for the <team_name> tag in the Windows
2641
installer for the auto created project_init.xml file.
2643
win_build/installerv2/redist/Windows/src/boinccas/
2645
CACreateProjectInitFile.cpp
2646
win_build/installerv2/redist/Windows/Win32/
2649
win_build/installerv2/redist/Windows/x64/
2654
- scheduler: app_plan() no longer has to guess how efficiently
2655
an app version will run on a particular host.
2656
- scheduler: fix memory leak: BEST_APP_VERSIONs weren't being freed
2665
- scheduler: sweeping changes to the way job runtimes are estimated:
2666
see http://boinc.berkeley.edu/trac/wiki/RuntimeEstimation
2676
- client: attempt to fix bug where a GPU would be assigned
2677
to multiple jobs at the same time.
2678
I fixed one error (reference arg to assign_coprocs())
2679
but I can't see why this would explain the problem.
2680
I added a lot of extra <coproc_debug> log messages.
2681
- user web: give scientists moderator privileges
2689
SS: Ignore SUSPEND_REASON_CPU_USAGE in SS coordinator, so it won't kill
2690
graphics apps for short-term CPU usage spikes (such as anti-virus.)
2696
- client: Fix bug in determining non-BOINC CPU time (Mac).
2702
- scheduler and validator: distinguish between
2703
1) peak FLOPS (based on benchmarks or GPU attributes).
2704
This does not change over time.
2705
It's not adjusted on the basis of statistics.
2706
It's not affected by wu.rsc_fpops_est.
2707
It can be compared across projects.
2709
2) projected FLOPS: the scheduler's best guess as to what will satisfy
2710
X * elapsed_time = wu.rsc_fpops_est;
2711
this is used to make server-side runtime estimates,
2712
and it's sent to the client and used for its runtime estimates.
2713
It may be based on the (host, app version) elapsed time average.
2714
My checkin [21153] mistakently confounded these two.
2717
1) app_plan() now must return both peak and projected FLOPS.
2718
2) result.flops_estimate stores peak FLOPS
2719
3) the <flops> field in app_info.xml files should be
2720
projected FLOPS. But its accuracy is not important;
2721
it's not used once the server has statistics
2722
for the (host, app version)
2732
- scheduler: fix egregious bug which limited sending to 1 job per RPC
2733
- scheduler: fix bug that broke anon platform
2735
Note: Bruce Allen once advised me to take a few days and just
2736
observe BOINC in action.
2737
I should really do this more often; it always turns up bugs
2738
and/or design flaws.
2745
- client: Add code for determining non-BOINC CPU time for GridRepublic
2746
and Progress Thru Processors clients (Mac & Windows).
2753
- scheduler: as db-driven client file management isn't ready yet,
2754
adapt Einstein@home-specific file management hack to current run
2760
- server: change the following from per-host to per-(host, app version):
2761
- daily quota mechanism
2762
- reliable mechanism (accelerated retries)
2763
- "trusted" mechanism (adaptive replication)
2764
- scheduler: enforce host scale probation only for apps with
2765
host_scale_check set.
2766
- validator: do scale probation on invalid results
2767
(need this in addition to error and timeout cases)
2768
- feeder: update app version scales every 10 min, not 10 sec
2769
- back-end apps: support --foo as well as -foo for options
2772
- If you have, say, cuda, cuda23 and cuda_fermi plan classes,
2773
a host will have separate quotas for each one.
2774
That means it could error out on 100 jobs for cuda_fermi,
2775
and when its quota goes to zero,
2776
error out on 100 jobs for cuda23, etc.
2777
This is intentional; there may be cases where one version
2778
works but not the others.
2779
- host.error_rate and host.max_results_day are deprecated
2782
- the values in the app table for limits on jobs in progress etc.
2783
should override rather than config.xml.
2785
Implementation notes:
2788
read all host_app_versions for host at start;
2789
Compute "reliable" and "trusted" for each one.
2790
write modified records at end
2792
add "reliable_only" arg; if set, use only reliable versions
2793
skip over-quota versions
2794
Multi-pass scheduling: if have at least one reliable version,
2795
do a pass for jobs that need reliable,
2796
and use only reliable versions.
2797
Then clear best_app_versions cache.
2798
Score-based scheduling: for need-reliable jobs,
2799
it will pick the fastest version,
2800
then give a score bonus if that version happens to be reliable.
2801
When get back a successful result from client:
2802
increase daily quota
2803
When get back an error result from client:
2804
impose scale probation
2805
decrease daily quota if not aborted
2807
when handling a WU, create a vector of HOST_APP_VERSION
2808
parallel to vector of RESULT.
2809
Pass it to assign_credit_set().
2810
Make copies of originals so we can update only modified ones
2811
update HOST_APP_VERSION error rates
2813
decrease quota on timeout
2821
- client: get rid of spurious "Using proxy settings from GUI" message
2825
gui_rpc_server_ops.cpp
2830
- client: Improve code for determining non-BOINC CPU time for branded
2831
clients (Mac & Windows).
2838
- client: fix build break.
2844
- back end programs: improve log msgs
2856
- MGR: Handle the Event Log's size better, pass in the correct dialog
2857
size to the dialog creation routines instead of setting the size
2858
after dialog initialization. Avoids artifacts and things having
2859
to be tweaked later.
2865
- admin web: use only valid results in FLOPS count graph
2870
- back end: typo and tweaks
2878
- client: fix bug in mechanism that inhibits work fetch
2879
for a GPU if it lacks available memory
2887
- Mac Installer: Set uninstaller's writeable-by-user permission bit so
2888
3rd-party Unarchiver can inflate the Zip file (from Eric Myers).
2891
make_GridRepublic.sh
2892
make_ProgThruProc.sh
2896
- Mac Installer: AddRemoveUser utility accepts both full / login user
2897
names and short / Posix user names.
2903
- client: improve GPU scheduling
2904
old: assign GPUs, then check available RAM
2905
Problem: may cause starvation on multi-GPU systems.
2906
new: use available RAM info in the assignment process.
2907
Prevents starvation, also reduces the number of driver calls.
2920
- client: when a GPU job finishes, clear the "schedule backoff"
2921
of other jobs of that type.
2922
They're waiting for GPU RAM, which may now be available.
2923
- client: bug fix in GPU RAM availability
2924
- client: fix testing setup for GPU RAM availability
2935
- client: clean up logic related to GPU available memory.
2936
If a driver call to get available mem fail, mark the GPU as unusable.
2950
- validator: fix bug where host.total_credit not incremented
2958
- validator: message tweak
2964
- Mac Installer: PostInstall gets short / Posix user name from getpwnam(),
2965
writes additional diagnostic information to installer log.
2971
- client: show "waiting for GPU memory" in task status
2980
gui_rpc_client_ops.cpp
2983
- back end: new way of deciding:
2984
- whether host is "reliable" for an app version
2985
- whether host is eligible for single replication for an app version
2986
- whether to use host scaling
2987
In each case, the answer is yes if the number of
2988
consecutive valid results is above a threshold.
2989
This replaces existing "error rate" and "scale probation" mechanisms.
2991
TODO: the # of consecutive valid results should also determine
2992
a limit on jobs in progress for an app version.
2993
Namely, if N is the threshold for host scaling, the limit should be
2994
ndevices*(max(1, consecutive_valid - N))
2995
The client currently doesn't supply enough
2996
app version info to do this.
2997
It could be approximated; that would give some protection
2998
against cherry-picking.
2999
- credit: more conservative formulas for combining claimed credit
3001
If there are normal replicas, we use a "low average"
3002
that weights each sample by the sum of the other samples.
3003
Otherwise we use the min (not the average) of the approximate samples.
3005
NOTE: a DB update is required
3022
- client: keep track of daily history of network transfers
3031
- client: bug fixes for the above
3038
- client: add preference for limiting network xfers in last N days
3050
- client: bug fixes for the above
3059
- client: Add get_network_usage_totals() function to the Macintosh
3060
client to report the number of bytes sent and received across
3061
all non-loopback interfaces. Note: this code may also work on
3062
onther UNIX-like systems in addition to Macintosh.
3068
- client: fix bug with NVIDIA GPUs.
3069
Some of them allow only 1 CUDA context at a time.
3070
You need to create a CUDA context to get available VRAM.
3071
So the client would run a CUDA job, then immediately kill it.
3073
- If a GPU app is running,
3074
let it keep running regardless of available VRAM
3075
(if it's still running, it has enough VRAM).
3076
- But don't start new apps if there's not enough available VRAM,
3077
or it the amount is unknown
3078
(if the client can't create a CUDA context,
3079
the app won't be able to either)
3080
- client: if <coproc_debug> is set, print available GPU RAM periodically
3090
- user web: first whack at cleaning up the mess which is prefs.inc
3097
- CC: Reduce how often the client reports the amount of available
3098
VRAM to once every 60 seconds.
3107
- user web: more cleanup of prefs.inc
3108
- client: code cleanup
3119
- user web: separate general stuff from prefs.inc
3123
prefs_util.inc (new)
3128
- user web: add network quota pref (the goal that spurred all this cleanup)
3129
- rename prefs.daily_xfer_period to daily_xfer_period_days
3140
- manager: add network quota to advanced prefs dialog
3143
DlgAdvPreferences.cpp
3144
DlgAdvPreferencesBase.cpp
3145
DlgAdvPreferencesBase.h
3148
- client: Win: kill runaway apps using TerminateProcess()
3149
rather than TerminateProcessById().
3150
The latter doesn't work in protected mode.
3151
- client: pid_handle => process_handle. misnomer
3159
- client: report daily xfer stats in scheduler request
3160
(not used by scheduler, but maybe later)
3168
- user web: message tweaks
3175
- client: clean up network suspension logic.
3176
There are now separate flags for
3177
"file_xfers_suspended": don't do file transfers
3178
"network_suspended": don't do any network comm
3179
(scheduler RPCs, RSS fetch, master fetch, etc.)
3181
if preferences/settings say no network
3182
(quota exceeded, no-network mode, user active, time, excl. app)
3184
file_xfers_suspended = true
3185
if (no recent network-related RPC) network_suspended = true
3186
- user web: code cleanup for project prefs
3196
- user web: bug fixes for prefs
3203
- validator: bug fixes: bad formula for low_average();
3204
failure to reread app_versions because of 1e6/1e-6 typo
3212
- client: write daily net history on shutdown
3213
- client: remove extraneous calls to calShutdown()
3214
in ATIs available-RAM code.
3221
html/project.sample/
3222
project_specific_prefs.inc
3225
- MGR: more Event Log bug fixes: fix Copy Selected button when filtering
3226
by project; save window dimensions properly when exiting Manager with
3227
Event Log window open; add spaces around field delimiters when copying
3228
to clipboard for better readability; fix sizer problem on Mac (buttons
3229
disappeared if window height was too small) by initializing size of
3230
CDlgEventLogListCtrl to wxDefaultSize instead of 640X480.
3234
DlgEventLogListCtrl.cpp
3237
- client: network bandwidth total was counting 1 day too many
3238
- client simulator: start GPU support
3244
- client: Add get_max_cpu_temperature to the Macintosh client to
3245
report the highest current CPU temperature as degrees Celsius.
3246
This code is for Intel macs only. Returns zero if it fails
3247
(or on a PowerPC Mac). I do have code to do this on PowerPC
3248
Macs, but it is long and complex.
3254
- client: minor code cleanup
3263
- user web: no limit on PMs for moderators, admins etc.
3272
- user web: in BBCode->HTML conversion there was a limit of
3274
I don't think a limit is needed.
3275
In any case, I changed it to 1000
3281
- client: standardize debug messages.
3282
Messages enabled by <foo_debug> are prefixed by "[foo]"
3287
- client: missed one
3293
- client: Restore RUN_MODE_ALWAYS functionality in network suspension
3294
logic which was lost in code cleanup of 26 Apr 2010.
3299
- manager: if user clicks Retry in Transfer tab while network is suspended,
3301
- manager: in transfers tab, show it if transfers are suspended
3302
because network is suspended
3303
- manager: in tasks tab, if a task is downloading or uploading
3304
and network is suspended, show it
3313
- client: day boundary for "transfer at most X in N days"
3314
is midnight local time, not UTC
3315
- update translation templates
3324
- client: fix build break
3330
- client: include the configured download url in the
3331
get_newer_version RPC.
3334
gui_rpc_server_ops.cpp
3337
- lib: update client-side RPC files for configured
3339
- manager: update get_newer_version async RPC for
3340
configured download url.
3346
gui_rpc_client_ops.cpp
3349
- MGR: Fix build break.
3355
- manager: fix tooltip msgs
3359
sg_ProjectsComponent.cpp
3362
- manager: improve "suspended" messages for tasks and transfers
3363
- manager: code reorg. ViewTransfers and DlgItemProperties
3364
both had a long member function to generate a string describing a task.
3365
One of these was out of date.
3366
Replaced these with a single non-member function.
3367
- manager: fixed sizer problem in attach wizard that caused missing word
3368
- client: minor code reorg
3374
DltItemProperties.cpp,h
3383
- client: when emerge from bandwidth quota network suspension,
3384
add 0..1hr random delay to existing transfers,
3385
to avoid DDOS effect
3391
pers_file_xfer.cpp,h
3394
- manager: if a project has pending trickle up,
3395
show it in the project status
3400
gui_rpc_client_ops.cpp
3404
- user web: fix PHP warning
3405
- admin web: add tool for debugging credit
3416
- DIAG: Make init functions consistent with one another.
3422
- client: fix time-zone offset in net BW quota
3428
- user web: fix PHP warning when netsoft stats are down
3434
- manager: in transfers tab, show reason why transfer is suspended
3435
- manager: WTF?? master URL, not name, identifies projects.
3436
- manager: got rid of a bunch of unused functions
3439
DlgItemProperties.cpp
3444
- client & lib: bring header inclusion up-to-date for the CC to begin
3445
hunting down a memory leak.
3453
- client: re-enable memory leak detection on Windows.
3459
- user web: use full output transform for frontpage news posts (to handle
3460
newlines and other related stuff).
3461
- user web: add a warning in case admin hasn't changed show_news() call to
3468
- client: temporarily enable logic that deallocates memory on exit,
3469
so that we can look for memory leaks.
3470
- client: enable bandwidth quota limit only if both
3471
#MB and #days are nonzero.
3472
- scheduler: when resending work, don't send more than
3473
client is requesting
3474
- scheduler: restore Cobblestone factor to 100
3487
- client: delete messages on exit
3494
- client: fix memory leak
3500
- client: leave template for causing the debugger to break on a
3501
specific memory allocation.
3507
- client: Fix build break on Mac. Please be careful changing the order
3511
gui_rpc_server_ops.cpp
3514
- client: on resume from net bandwidth quota suspend,
3515
apply same random backoff to all transfers.
3516
- client: when changing ncpus via config file,
3517
don't modify host_info.p_ncpus
3518
- client: show effective #CPUs separately from physical #
3526
- client: clear config before rereading config file.
3527
This means that, e.g. if you remove <ncpus>
3528
it will revert to the actual number.
3529
However, it also means that any config params
3530
set via command line will be overridden.
3536
- user web: use CDATA section for title in the RSS feed
3542
- client: fix crashing bug.
3543
Deleting records in ~COPROCS() was bad,
3544
since we copy HOST_INFO to APP_INIT_DATA,
3545
leading to a double deletion.
3559
- client/manager: keep track of "GPU suspended reason".
3560
Report it to the manager
3561
(it was already in CC_STATUS, but not populated)
3562
- manager: fix system tray icon popup text
3568
gui_rpc_server_ops.cpp
3572
gui_rpc_client_ops.cpp
3575
- scheduler: changeset 21148 broke the scheduler.
3576
We store pointers to BEST_APP_VERSION in both APP_VERSION and RESULT.
3577
We can't then fiddle with the vector that these point into.
3578
Switch back to using a vector of pointers.
3579
This restores the memory leak, which I'll deal with later.
3586
- scheduler: fix for daily quota enforcement
3591
- client: make GPU available RAM measurement #ifdef-selectable,
3592
and default it to off
3593
- client: if we print available GPU RAM (which we now don't)
3594
have a separate timer per GPU type
3595
- scheduler: add new plan classes cuda_opencl (sic) and ati_opencl
3606
- scheduler: fix bug in daily job quota check
3612
- client and scheduler RPC:
3613
Add more info to "project in-progress job list".
3614
Old: entries included only job name and app plan class;
3615
this was used to resend lost jobs,
3616
and to count the # of CPU and GPU jobs.
3617
But it's not usable e.g. for per-app in-progress limits.
3618
New: send the client's app versions (including usage info)
3619
and for each in-progress job, which app version it uses.
3620
(This reduces request-message size compared with sending
3621
usage info and app name per job).
3622
- client and scheduler RPC:
3623
Add more info to "all in-progress job list", and make it optional.
3624
This list is used by schedulers that do deadline checks
3625
using EDF workload simulation.
3626
Old: the list is always sent, and it contains no info
3627
about job resource usage
3628
New: the list is sent only if the scheduler asked for it
3629
in a previous reply,
3630
and each entry now contains resource usage (CPU, GPUs)
3631
Note: the scheduler's EDF simulator is outdated;
3632
it doesn't know about GPU jobs.
3633
But we may as well get the info in place.
3643
- client: just send 1 copy of app versions
3649
- manager: in sys tray pop up, if computing is disabled,
3650
don't say whether GPU is enabled (confusing).
3656
- API: compile fixes for MinGW
3665
- client: include app versions only of this project in sched req
3671
- client: fix bug that randomly caused idle GPUs
3677
- MGR: Rework Mac accessibility for better compatibility with OS 10.6.
3680
BOINCListCtrl.cpp, .h
3682
MacAccessiblity.cpp, .h
3685
- user web: fix boolean type preferences for non-english languages where
3692
- scheduler: fix query in send_old_work()
3699
- client: don't promote multithread jobs ahead of EDF jobs
3705
- client/scheduler: in COPROCS, instead of having a vector of
3706
pointers to dynamically allocated COPROC-derived objects,
3707
just have the objects themselves.
3708
Dynamic allocation should be avoided at all costs.
3732
- client simulator: fix build
3733
- code cleanup: removed include of client/cpp.h from lib/msg_log.cpp.
3734
Stuff in lib/ should NOT include stuff from client/.
3743
- client: fix error in GPU confirm message (it always said 0)
3749
- GUI RPC: include HOST_INFO in CC_STATE
3752
gui_rpc_client_ops.cpp
3756
- Manager: change order of columns in tasks tab
3762
- scheduler: fix bug in single-replication decision (from Rytis)
3772
- web: don't cache hosts page, and make it more translatable
3778
- boinccmd: don't authorize if no password found or given
3784
- GUI RPC: improved error reporting
3787
gui_rpc_client_ops.cpp
3792
- manager: more column reorder in Tasks tab
3798
- client: message tweak
3804
- scheduler: message tweaks
3811
- client, Unix: error checking in reading /proc entries.
3812
Avoid garbage values e.g. of working_set_size
3813
- scheduler: message tweaks
3825
- scheduler: SETI@home's CUDA and CUDA 2.3 apps apparently don't
3826
run on Fermi (compute capability 2) hardware.
3827
Temporary solution: change app_plan() accordingly
3828
- scheduler: message tweaks
3834
- scheduler: fix memory leak (free BEST_APP_VERSION objects)
3841
- user web: extend account manager script to export more information
3842
(from Willy de Zutter)
3848
- MGR: If get_results RPC takes x seconds, do it no more often than
3849
once every (x * GET_RESULTS_FREQUENCY_FACTOR) seconds.
3850
GET_RESULTS_FREQUENCY_FACTOR is currently defined as 10.
3851
NOTE: we must measure the RPC time in the RPC thread, so this
3852
code assumes that dtime() is thread-safe, or at least that any
3853
error introduced due to thread preemption is small.
3857
MainDocument.cpp, .h
3860
- scheduler: preliminary checkin of new limit code
3863
sched_limit.cpp,h (new)
3866
- client: fix bug in accounting of elapsed time and CPU time
3873
- WINBUILD: Properly handle detection of Visual Studio when
3874
somebody has all of them installed (2005/2008/2010).
3882
- client: fix build failure on FreeBSD (SCHED_BATCH doesn't exist there)
3889
- client: fix elasped time tracking bug
3896
- samples: plug in a skeleton CUDA sample with nothing in it. Setup Windows
3897
project environment so the thing will at least compile. The nvcc compiler
3909
- GUI RPC client side: set up a 30 second receive timeout for
3910
socket to client. That way GUI won't hang if client does.
3911
From Fred of BoincTasks
3918
- server: code cleanup
3925
- user web: do not wait for cross-project stats for more than 3 seconds as
3926
it slows down "Your account" page load in case stats server is slow to
3933
- client/server/API: rename cudaDeviceProp to CUDA_DEVICE_PROP to
3934
avoid conflict with nvidia's structure.
3935
Note: these structures don't have to be the same,
3936
since we populate our struct one item at a time.
3942
- scheduler: fix bug that caused resent jobs with anonymous platform
3943
to have zero FPOPS est and bound
3951
- scheduler: add fine-grained "max jobs in progress" control.
3952
You can now specify limits for specific apps,
3953
and/or for the project as a whole.
3954
Within each of these, you can specify limits on
3955
CPU jobs, GPU jobs, or total jobs.
3956
In the case of CPU and GPU limits, you can specify
3957
whether the limit should be scaled by the number of devices.
3959
Note: the enforcement of this is done in get_app_version(),
3960
since per-resource-type limits may dictate what app versions
3961
we can use for a particular job.
3973
- back end: change "daily result quota" mechanism.
3974
Old: config.xml specifies an initial daily quota (say, 100).
3975
Each host_app_version starts out with this quota.
3976
On the return of a SUCCESS result,
3977
the quota is doubled, up to the initial value.
3978
On the return of an error result, or a timeout,
3979
the quota is decremented down to 1.
3981
Doesn't accommodate hosts that can do more than 100 jobs/day.
3983
- on validation of a job, daily quota is incremented.
3984
- on invalidation of a job, daily quota is decremented.
3985
- on return of an error result, or a timeout,
3986
daily quota is min'd with initial quota, then decremented.
3988
- This allows a host to have an unboundedly large quota
3989
as long as it continues to return more valid
3990
than invalid results.
3991
- Even with this change, hosts that return SUCCESS but
3992
invalid results will continue to get the initial daily quota.
3993
It would be desirable to reduce their quota to 1.
4004
- manager: linux compile fix, from jochen
4010
- user web: fix forum RSS feed
4016
- MGR: Apply patches submitted by Nicol�s Alvarez
4017
* Convert tabs to spaces for consistency.
4018
* Add BOINC copyright/license comment header.
4019
* Rename the numbered sizer variables to something descriptive and useful.
4020
* Remove useless sizers with only one element inside.
4021
* Declare and assign sizers in the same statement.
4022
* Split GUI creation into one method per tab.
4025
DlgAdvPreferencesBase.cpp, .h
4028
- client: add --fetch_minimal_work option (cmdline and config file)
4030
if there are any active jobs at startup, don't fetch more work
4031
otherwise make exactly 1 scheduler RPC requesting work,
4032
and request only enough jobs to fill all devices.
4033
- client: --exit_when_idle: make it available in config file
4034
and change semantics to:
4036
1) there are no tasks, and
4037
2) either there was an active task on startup,
4038
or we made a scheduler RPC requesting work
4039
Note: if there are not active tasks on startup,
4040
and the client makes a work request which doesn't return work,
4043
When these flags are used together,
4044
the client will do 1 job per device and exit.
4045
This may be useful when running as grid backfill.
4055
- client: code cleanup (move some config vars from CLIENT_STATE to CONFIG)
4068
- MGR: When starting up and attaching to a project for the first time,
4069
show the correct tab if in the advanced view.
4075
- client: fix compiler warning (unused variable.)
4081
- scheduler: change backoff policy if a host has reached daily job quota.
4082
Old: back off until random time in 1st hour of next day
4083
New: no server-dictated backoff; rely on client backoff
4084
This is needed to let hosts recover in a reasonable amount of time
4085
after a burst of errors.
4086
- scheduler config: it turns out we can't put arbitrary XML in config.xml;
4087
The Python code is set up to parse only 1 level of tags (??),
4088
and I'm not up to the task of changing this.
4089
So the fine-grained job limit feature [21674] needs to use
4090
a different file, namely config_aux.xml
4098
- scheduler: fix anon platform bug that caused zero FPOPS est
4104
- user web: add "Application info" link in host page,
4105
linking to new page showing host_app_versions for this host
4106
- scheduler: message tweaks
4112
host_app_versions.php
4118
- scheduler: bug fixes for jobs-in-progress limits
4130
- admin web: add start/end times to team import log output
4140
- client: Display Mac OS Version as well as Darwin version in Event Log.
4146
- Mac: Don't generate xX86_64 client symbol table (was empty); fix
4147
generation of PowerPC symbol tables (thin to ppc7400 not ppc).
4154
- client: user-visible text (message body, notice title and description)
4155
are now translatable,
4156
using the convention that any substring enclosed in _(" ... ")
4157
should be passed throughh wxGetTranslation() or the equivalent.
4158
- client: when writing messages to stdout, strip out _(...)
4159
- manager: translate strings from client
4160
- scheduler: message tweaks
4176
- client: make all MSG_USER_ALERT messages (i.e., those shown as notices)
4177
translatable (and change some MSG_USER_ALERT messages to MSG_INFO).
4193
- manager: add a script that generates a .pot for the manager
4194
that includes the client source code as well
4200
- Mac installer: Create script to build installer for Campus Party (installs
4201
custom project_init.xml file.)
4204
release_campus_party.sh
4207
- win_build: Commit project files to build sample applications for cuda
4208
and OpenCL (ATI & Nvidia)
4216
- server: change credit constant from 100 to 200.
4217
Data from S@h beta (running for a month or so)
4218
suggests that this will almost exactly match the
4219
average credit granted by S@h's old system
4220
(which, in theory, is the reference for other projects)
4228
- database: remove unused fields from app table
4237
- server: delete old credit stuff
4238
- user web: show host link in user result list. Fixes #999
4251
sample_bitwise_validator.cpp
4252
sample_trivial_validator.cpp
4259
- API: fix bug that caused parallel apps to get compute error
4260
when they were suspended without "leave in memory" pref
4261
- user web: if in-progress result has credit, show it; fixes #998
4268
- scheduler: tweaks to user messages
4276
- client: call curl_global_cleanup() on exit
4283
- scheduler: restore scaling of daily quota by # processors
4284
and/or config.gpu_multiplier
4295
Mac: fix compiler warning.
4301
- client: let fake CUDA specify driver version
4302
- client: restore call to diagnostics_finish() on exit.
4303
(should print mem info, but doesn't)
4304
- manager: notices display tweak
4316
- scheduler: fix structural problems with sending user messages.
4317
Old: various redundant and/or misleading messages were sent.
4319
- if host w/ no GPU contacts a GPU-only project,
4320
send high-pri message saying they need a GPU
4321
- if host w/ GPU has driver too old for all versions,
4322
send high-pri message saying to update driver
4323
- if host w/ GPU has driver too old for some versions,
4324
send low-pri message saying to update driver
4325
- if host has GPU but too little RAM for any app,
4326
send low-pri message saying so
4327
- scheduler: revamp GPU plan class functions
4337
sched_customize.cpp,h
4341
- user web: don't show claimed credit
4347
- database: app.min_avg_pfc should default to 1, not 0
4355
- API: make boinc_msg_prefix() thread-safe
4361
- user web: code cleanup in prefs.inc
4367
- lib: Fix the value returned from get_mac_addresses() on Macintosh
4368
computers. It has returned the value of kernResult, which is 0
4369
on success, instead of true for success, since the routine was
4370
first written in November 2008. This causes the client to
4371
generate a new random CPID every time the client is launched.
4377
MGR: save last notice which has been read in persistent storage, by
4378
saving its arrival time. Store a separate entry for each CPID
4379
so it will work for Managers managing multiple remote clients.
4382
MainDocument.cpp, .h
4385
- sample apps: compile fixes
4389
samples/example_app/
4396
- scheduler: estimate peak FLOPS of anon platform app versions
4397
based on CPU and GPU usage (or, if missing, 1 CPU).
4398
Previously we were using the user-supplied <flops> element,
4399
and if it was missing all hell broke loose.
4400
- client: free malloced items on exit
4408
- validator: because of the above problem,
4409
some results have flops_estimate == 0, which causes divide by zero.
4410
Check for this and use 1e10.
4416
MGR: Take into account that there may be gaps in the sequence numbers
4417
because some notices may have been deleted.
4420
MainDocument.cpp, .h
4423
- user web: flag to send less information on team member XML requests
4424
(from Willy de Zutter).
4433
- validator: fix possible divide-by-zero
4434
- validator: when claimed credit is too high,
4435
assign standard credit rather than exiting.
4441
- API: add BOINC copyright notice to graphics2_win.cpp.
4442
This file originally used code from the following tutorial,
4443
which shows how to open a window using GLUT:
4444
http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=01
4445
The code has now been completely rewritten;
4446
in particular, it doesn't use GLUT anymore.
4447
- scheduler: change default limit on #CPUs from 16 to 64
2
- fix some bad file permissions
3
- delist defunct stats site
6
DlgItemProperties.cpp,h
4464
- client: fix crashing bug when account manager returns
4465
new project w/ "no more work" flag set
4471
- validator: fix a divide by zero (happens w/ old clients
4472
that don't report elapsed time)
4478
- client: don't attach to a project if the account manager
4479
has set the "detach when done" flag.
4485
- MGR: save host name (from host.domain_name) instead of CPID when
4486
saving arrival time of last read notice; wait until we have
4487
host.domain_name before checking for unread messages.
4493
- client: when selecting the "best" ATI GPU, factors are:
4494
1) double precision support
4503
- MGR: Hook up new NoticeListCtrl.
4504
TODO: pre-stage the download of images instead of relying
4505
on wxWidgets to do it out of band. It gets stuck in a
4506
recursive loop and eventually blows up if it has to go
4507
out to the Internet to find image files it has already
4508
downloaded once after selecting the item. I presume it
4509
decides it needs to re-download the image becuase the
4510
background color for the whole line changes.
4513
NoticeListCtrl.cpp, .h
4518
- MGR: Fix order of items displayed by NoticeListCtrl (newest first.)
4519
- MGR: Update Mac accessibility for new NoticeListCtrl.
4520
- Mac: Update XCode project for new source file NoticeListCtrl.cpp.
4526
MacAccessiblity.cpp, .h
4538
- MGR: Fix order of items displayed in Notices tab correctly this time.
4545
- validator: there were a couple of places where we needed to
4546
scale wu.rsc_fpops_est by app.min_avg_pfc.
4547
- validator: assume that app.min_avg_pfc is nonzero;
4548
it will be, since the DB default is now 1.
4554
- scheduler: msg tweaks
4561
- scheduler: the way rsc_fpops_est and rsc_fpops_bound were
4562
being scaled for anon platform was messed up.
4563
Turn off this scaling until I can figure out the problem.
4569
- MGR: Handle sorting the notices control a different way.
4573
NoticeListCtrl.cpp, .h
4576
- MGR: Bug fixes to previous commit.
4580
NoticeListCtrl.cpp, .h
4583
- transitioner: the format string for a DB query had %.15d instead of %.15e.
4584
That produced a messed-up query that assigned garbage values to:
4585
host_app_version.turnaround_var
4586
host_app_version.turnaround_q
4587
host_app_version.max_jobs_per_day
4588
host_app_version.consecutive_valid
4590
- set turnaround_var and turnaround_q to zero
4591
- if max_jobs_per_day is outside of
4592
(0..config.daily_result_quota)
4593
set it to config.daily_result_quota
4594
- if consecutive_valid is outside (0..1000), set it to zero
4595
I added a script, html/ops/repair_21812.php, that does this;
4596
if you ran server code between [21181] and [21812], run this script.
4597
- scheduler/transitioner: add <debug_quota> log flag
4598
- changed the build system to always use -Wall
4599
(if we'd done this before, this bug wouldn't have happened)
4600
- fixed a bunch of other compile warnings
4611
boinc_set_compile_flags.m4
4634
- manager: message tweak
4640
- validator: need parens in boolean expression
4646
- scheduler: don't resend work if client isn't requesting work
4652
- scheduler: host_app_version.n_jobs_today was being cleared
4653
only if the previous request was on a different day
4654
AND the current request asks for work.
4655
Sometimes it wasn't getting cleared when it should have.
4662
- MGR: Sort notices by dtime()
4666
NoticeListCtrl.cpp, .h
4669
- user web: notices fix
4675
- MGR: Delete expired entries from the notices control
4676
- MGR: Remove sort code. Entries in the pDoc notices
4677
structure is already sorted.
4680
NoticeListCtrl.cpp, .h
4684
- MGR: Fix off by one error in Notices display.
4696
- scheduler: message tweak
4702
- MGR: Introduce the notion of a cached internet filesystem in the
4703
manager, right now it stores everything in memory but will be extended
4705
- MGR: Clean up notice memory on shutdown
4709
BOINCInternetFSHandler.cpp, .h
4710
NoticeListCtrl.cpp, .h
4717
- Mac: Update XCode project for new source files BOINCInternetFSHandler.cpp,.h.
4724
- scheduler and back end: message tweaks and fixes
4735
- scheduler and client: use "notice" rather than "high" priority
4736
for messages intended as notices.
4737
This will avoid showing lots of obscure stuff as notices
4738
for projects with old server code.
4751
- client: Fix 2 bugs in handling of notices:
4752
- When client sends all notices instead of starting with the requested
4753
sequence number (e.g., due to having removed a notice), it must
4754
prefix the notices with a dummy notice with sequence number -1 to
4755
tell the manager to clear the notices vector.
4756
- When parsing RSS feeds, call notices.append() with keep_old false.
4757
It was passing true, so notices of new posts to threads were not
4758
having their arrival times updated when additional posts to the
4759
same thread were reported.
4765
- client: revert my recent change to keep_old argument above. It caused all
4766
RSS feeds to be updated repeatedly. We need to somehow differentiate
4767
between old news items and notices that are new but identical to previous
4768
ones. Should we use the pubDate for that?
4774
- scheduler and client: fix the "allow multiple clients" feature.
4775
This feature lets you run the BOINC client as a job on grid systems
4776
that handle only 1-CPU jobs;
4777
it disables various mechanisms that prevent multiple clients per host
4778
(which is normally a bad thing).
4780
- Run the client with a --allow_multiple_clients flag.
4781
This tells it not to use a mutex that prevents
4782
multiple clients per host.
4783
- Run the project with the <multiple_clients_per_host> config flag.
4784
This suppresses two mechanisms:
4785
- (avoid duplicate host records)
4786
on a scheduler request with no host ID,
4787
looks for a host with same domain name, OS type,
4788
and mem size, and assumes the request is from that host
4790
If we get a request that doesn't have a host ID
4791
but does have a host CPID,
4792
mark its in-progress results as over
4793
NOTE: I CAN'T REMEMBER WHY WE SUPPRESS THIS;
4794
MARK S, DO YOU REMEMBER?
4797
if the grid clients attach to a project that
4798
doesn't use <multiple_clients_per_host>, bad things happen.
4799
E.g., if there are several requests at about the same time,
4800
most of them will fail with
4801
"another RPC already in progress" errors.
4802
If a project does include this flag,
4803
it loses protection from duplicate host records.
4806
- If the client is run with --allow_multiple_clients flag,
4807
it passes a <allow_multiple_clients> element
4808
in scheduler requests.
4809
- The scheduler skips the duplicate-host check on
4810
requests that include this flag.
4811
- There is no more <multiple_clients_per_host> scheduler option.
4813
Note: if a project using the old mechanism upgrades to this change,
4814
it will need to use new clients for its grid deployment.
4824
- client: improve (or at least change) logic related to duplicate notices
4831
- GUI RPC: add NOTICES::complete, so caller knows whether
4832
what's being returned is new notices or all notices.
4835
gui_rpc_client_ops.cpp
4839
- MGR: logic changes & fixes to Notices display for new NOTICES::complete
4841
- ViewNotices clears NoticeListCtrl if NOTICES::complete is set.
4842
- after GUI RPC sets NOTICES::complete, only ViewNotices clears it.
4843
- unread / read notices logic checks arrival times, not sequence nos.
4844
- NoticeListCtrl clears NeedsRefresh flag agfter refresh.
4845
NOTE: Considerably more cleanup and code simplification is needed.
4848
MainDocument.cpp, .h
4849
NoticeListCtrl.cpp, .h
4852
gui_rpc_client_ops.cpp
4855
- user web: show app name in anonymous platform case on task list
4861
- MGR: Rework the notices view to simplify the rendering logic even at the
4862
cost of repeated string conversions (it doesn't appear to mess with
4863
the messages tab performance too much). Inspired by Charlie.
4866
NoticeListCtrl.cpp, .h
4877
- WIN: Treat Windows SEH exceptions as C++ exceptions so they can be trapped
4878
using the standard try/catch handlers.
4879
- WIN: Wrap the coproc detection stuff in C++ exception handlers. If for some
4880
reason the Nvidia or ATI APIs cause an exception don't use the GPUs and
4882
- WIN: rename boinc_ss to boinc_os_ss and ss_app to boinc_ss.
4890
- MGR: Fix a bug in the notices code. Refresh the UI if the complete notices
4891
list has been downloaded regardless of whether or not the item counts are
4895
NoticeListCtrl.cpp, .h
4898
- LIB: Reset the completed flag to false at the beginning of the
4899
get_notices RPC in case the notices buffer is being reused.
4902
gui_rpc_client_ops.cpp
4905
- client: free GUI_RPC_CONN objects at shutdown
4911
- MGR: get_messages and get_notices RPCs don't alternate buffers, so
4912
remove the unused buffers from CMainDocument class.
4915
MainDocument.cpp, .h
4918
- MGR: after GUI RPC sets NOTICES::complete, only NoticeListCtrl clears it.
4919
- MGR: fix compile warning.
4924
gui_rpc_client_ops.cpp
4927
- client: add ".xml" to notice file names
4934
http_curl_win.h (removed)
4937
- MGR: Fix Linux build break.
4940
NoticeListCtrl.cpp, .h
4943
- client: don't consider a result "nearly runnable"
4944
if one of its downloads is stalled.
4945
This fixes a situation that can cause processor or GPU
4946
idleness when download servers are down for a while
4952
- user web: PHP 5.3 compatibility fix, from Nicolas. Fixes #787
4958
- MGR: Fix bugs in accessibility code for Notices tab.
4961
NoticeListCtrl.cpp, .h
4966
- fix gcc 4 compiler warnings
4970
single_job_assimilator.cpp
4977
- win build: don't build CUDA/OpenCL apps by default
4985
- MGR: Fix accessibility code bug in Attach Wizard's ProjectListCtrl,
4986
consolidate and clean up Mac accessibility code.
4989
NoticeListCtrl.cpp, .h
4990
ProjectListCtrl.cpp, .h
4995
- client: change the calculation of exponential backoff used for
4996
1) individual file transfers
4997
2) project-level file transfer backoff
4998
3) scheduler operations
5000
Use random backoff in the range min..x
5002
Use random backoff in the rand x/2..x
5003
- client: for file transfers, use backoff range of 10 min .. 12 hrs
5004
rather than 1 min .. 4 hrs
5012
- MGR: Fix accessibility code bug in Attach Wizard's ProjectListCtrl,
5013
consolidate and clean up Mac accessibility code.
5016
- MGR: More code cleanup, optimization and bug fixes.
5020
DlgEventLogListCtrl.h
5021
NoticeListCtrl.cpp, .h
5022
ProjectListCtrl.cpp, .h
5024
MacAccessiblity.cpp, .h
5027
- validator: remove app and app_versions arguments from check_set().
5028
These weren't used, and I'm not sure why they were added.
5029
- include sched_limit.h in "make install" list
5032
validate_util2.cpp,h
5037
- scheduler: make some "notice"-priority messages translatable
5038
- scheduler: add a clause to wu_is_infeasible_custom() for SETI@home:
5039
don't process VLAR jobs using CUDA apps.
5040
Note: this is implemented in a slightly non-optimal way.
5041
If the request asks for both GPU and CPU jobs,
5042
the scheduler will first decide to use the GPU version.
5043
It will scan jobs, skipping over VLAR jobs.
5044
When the GPU request is satisfied, it will switch to the CPU version
5045
and continue scanning, accepting VLAR jobs.
5046
But the jobs that were skipped initially won't be rescanned.
5047
Also, it would be slightly nice to preferentially send
5048
VLAR jobs to hosts asking for CPU work.
5049
(This could be done in the scoring function).
5058
- scheduler: make messages translatable
5066
BOINC-Client.pot (new)
5071
- MGR: Load up the new BOINC-Client catalog if it exists.
5077
- MGR: Prevent a race condition which could erroneously invoke the
5078
Attach Wizard when restarting the client.
5085
- MGR: If the client exits unexpectedly, auto-restart it on Windows (and Mac)
5086
even if it was installed as a service / daemon.
5087
- MGR: Display an alert if we auto-restart the client due to unexpected exits
5088
3 times within CLIENT_3_CRASH_MAX_TIME minutes (currently 30 minutes.)
5092
BOINCClientManager.cpp, .h
5095
- user web: translation fixes
5104
- WINBUILD: Fix project files so that there isn't any C Runtime Library
5105
collisions between types.
5106
- WINBUILD: Remove old cruft.
5113
- MGR: Fix build break.
5114
- MGR: Change the crash detect dialog target to 'crash_detection'
5117
BOINCClientManager.cpp
5120
- client/manager/GUI RPC: add optional "translatable" arg
5121
to get_messages() RPC; if absent or false,
5122
client will strip _( ) from messages.
5126
gui_rpc_server_ops.cpp
5132
gui_rpc_client_ops.cpp
5135
- MGR: Tweak text in crash alert.
5138
BOINCClientManager.cpp
5141
- client: bug fix in message code
5147
- user web: don't cache XML version of show_user.php
5153
- Tag for 6.11.1 release, all platforms
5154
boinc_core_release_6_11_1
5161
- scheduler: fix and restore fpops scaling for anonymous platform jobs
5169
- client: fix crashing bug on VC 2008/10;
5170
don't memset(0,) structures containing vectors.
5176
- validator, assimilator: added --help and --version
5183
- MGR: Better solution to prevent a race condition which could erroneously
5184
invoke the Attach Wizard when restarting the client, fix serious bug
5185
in Simple View I introduced with my previous fix of 14 July.
5192
- Tag for 6.11.2 release, all platforms
5193
boinc_core_release_6_11_2
5200
- MGR: Bug fix: event log text was not dimmed if event log was opened after
5201
Client was disconnected.
5207
- feeder: error out if an ordering option (e.g. --priority)
5208
is used in combination with homogeneous redundancy.
5209
HR requires a cyclic scan of all sendable results.
5217
- client: fix bug with --abort_jobs_on_exit that caused the client
5218
to request new work on exit
5219
- client: change "unparsed tag" to "unrecognized tag" in msgs
5220
- client: get rid of unused var work_fetch_no_new_work
5232
- Added Linux screensaver from Nils Brause.
5233
Note: I can't get this to build because if requires
5234
a package (xcb-atom) that I can't find.
5235
Need to resolve this.
5241
screensaver_x11.cpp (new)
5244
- WINSETUP: Update validate install procedure to account for the
5245
removal of boinc.dll and addition of boinclog.exe.
5246
- MGR: Move auto-proxy detection code into its own thread.
5247
- client: Isolate the auto-proxy detection code to its own thread.
5252
win_build/installerv2/
5255
win_build/installerv2/redist/Windows/src/boinccas/
5256
CAValidateInstall.cpp
5257
win_build/installerv2/redist/Windows/Win32/
5260
win_build/installerv2/redist/Windows/x64/
5265
- client: entity-encode client-generated notices
5266
(e.g. they may contain XML tags)
5272
- lib: XML_PARSER::parse_str(): if text is enclosed in ![CDATA[,
5273
don't entity-unescape it
5279
- client: init gstate.now early so that initial msgs have timestamps
5280
- lib: fix the above
5290
- lib: fix compiler warnings.
5296
- client: don't archive system notices,
5297
so they don't persist across client restarts.
5298
These notices are for transient conditions.
5299
If the user has fixed the condition,
5300
there's no reason to keep showing the notice.
5301
If they haven't fixed it, the notice will be regenerated soon.
5302
- manager: fix spelling error in simple GUI.
5308
gui_rpc_server_ops.cpp
5312
- Unix build: don't error out if xcb or xcb-atom aren't found;
5313
just don't build the screensaver
5319
- client: don't do two RSS fetches at once
5320
- manager: WxWidget's HTML renderer doesn't seem to like \n's.
5321
For example, if you try to render
5325
all it shows is foo.
5326
Work around this by replacing \n's with <br>
5334
- manager: in simple view, where it says Elapsed time,
5335
show elapsed rather than CPU time
5343
- Tag for 6.11.3 release, all platforms
5344
boinc_core_release_6_11_3
5351
- WINSETUP: Update validate install procedure to account for the
5352
removal of boinclog.exe.
5354
win_build/installerv2/
5357
win_build/installerv2/redist/Windows/src/boinccas/
5358
CAValidateInstall.cpp
5359
win_build/installerv2/redist/Windows/Win32/
5362
win_build/installerv2/redist/Windows/x64/
5367
- MGR: Make the simple GUI messages dialog display notices instead.
5370
sg_BoincSimpleGUI.cpp
5371
sg_DlgMessages.cpp, .h
5372
sg_SGUIListControl.cpp, .h (deleted)
5377
- client/manager: add the ability to associate URLs with
5378
client-generated notices.
5379
Use this as appropriate: e.g., for errors about cc_config.xml syntax,
5380
direct user to the web page describing this syntax.
5395
- MGR: Mark all notices as having been read if either Simple GUI
5396
messages dialog or Advanced GUI Notices tab is open.
5402
- Mac: Delete source files sg_SGUIListControl.cpp,.h from XCode project.
5409
- MGR: If Event Log was open on Manager exit, open it on manager launch.
5410
- MGR: Clicking main window's close box when Event Log is open also
5411
hides the Event Log; show Event Log again if "Open BOINC Manager" is
5412
selected from task bar icon menu. Clicking main window's Minimize
5413
box does not affect Event Log window.
5422
- MGR: Don't save bogus window dimensions when iconized.
5429
- server: compile warning fixes
5438
- client: have project update fetch RSS feeds as well as doing
5440
This is to facilitate debugging, and is probably temporary.
5444
gui_rpc_server_ops.cpp
5447
- client: the client shouldn't check for a physical connection
5448
(contacting google.com and possibly alerting the user)
5449
for "background" HTTP ops. These include:
5450
- periodic account manager requests
5451
- periodic notice RSS feed fetches
5452
- periodic fetch of project list
5453
- periodic fetch of current client version
5464
- rename cal.h to cal_boinc.h to avoid name conflict
5467
- MGR: If the simple GUI received a notification event,
5468
display the messages dialog.
5469
- MGR: The simple GUI wasn't restoring state properly
5470
thereby causing the reminder frequency to be set to
5471
zero and preventing any reminders from being displayed.
5472
- MGR: Rework the notices code so the document doesn't
5473
make any assumtions about the UI.
5474
- MGR: Fix a bug in the Linux notification window code.
5475
Synchronize event behavior with Windows.
5478
AdvancedFrame.cpp, .h
5480
BOINCTaskBar.cpp, .h
5481
MainDocument.cpp, .h
5482
sg_BoincSimpleGUI.cpp, .h
5484
sg_ProjectsComponent.cpp, .h
5490
- rename cal.h to cal_boinc.h
5496
- MGR: Add some padding to each notice.
5502
- user web: put RSS item titles in CDATA
5503
- sched: get rid of unused config items
5504
- manager: msg tweak
5515
- MGR: for saving / restoring arrival time of last read notice,
5516
extract the host name from host.domain_name, to avoid future
5517
problems if we ever set host.domain_name to a fully-qualified
5518
domain name in the future.
5524
- MGR: If Event Log was open, show it in front of main window when
5525
"opening" Manager after it was hidden.
5531
- MGR: Don't update the notice tab text unless the unread notice
5533
- MGR: Don't update the last arrival time for the host unless
5534
it has changed from the last time it was saved.
5535
- MGR: Opps, forgot to move some code before commiting yesterday,
5536
don't update the last save arrival time unless the user
5537
clicks on the balloon.
5538
- MGR: Stop the simple GUI from blinking the messages button
5539
when the balloon is clicked.
5546
sg_BoincSimpleGUI.cpp
5547
sg_ProjectsComponent.h
5550
- client/scheduler: fix a group of bugs related to the new mechanism
5551
where the client tells the scheduler which app versions
5553
(this is needed, e.g., to enforce per-app or per-resource job limits).
5554
In this mechanism, the client sends an array of <app_version>s,
5555
and each <other_result> includes an index into this array.
5557
- The wrong index was being sent (client).
5558
- If an <app_version> had a non-existent app name
5559
(e.g. because that app had been deprecated)
5560
it wasn't getting put in the array, invalidating array indices
5561
Furthermore, an erroneous message was being sent to the user
5563
Fix: if parse error for <app_version>,
5564
put it in the array anyway, but with cav.app = NULL,
5565
meaning that it's a place-holder.
5566
Send a message to user only if anon platform.
5568
- manager: increase notice buffers to 64K
5580
- MGR: Enable the manager to be able to deal with any size notice.
5584
MainDocument.cpp, .h
5588
- MGR: Take another stab at the z-order problem when both the event log
5589
and main window are open.
5590
- MGR: Don't replace control characters for regular messages.
5595
MainDocument.cpp, .h
5599
- MGR: I had it backwards: if Event Log was open, show it behind main
5600
window when "opening" Manager after it was hidden.
5607
- MGR: remove my code for extracting host name from host.domain_name;
5614
- Tag for 6.11.4 release, all platforms
5615
boinc_core_release_6_11_4
5622
- client: fix typo that prevented the correct link to be used for going
5623
to the log flag configuration wiki page.
5629
- MGR: Fix a bug that hid the Event Log when switching between Advanced and
5636
- client: Kick off an auto proxy detection pass on any http error, only
5637
attempt a follow-up reference site check if the proxy server name
5638
changes. This may mean that'll it will be the second or third connection
5639
attempt before the CC starts using the new proxy information.
5646
- API: add result name to APP_INFO_DATA structure (for Volpex)
5647
- scheduler: add max_download_urls_per_file config option
5648
(to limit the length of workunit.xml_doc,
5649
which is currently capped at 64KB).
5661
- file deleter: if we're configured to generate cached MD5 checksums,
5662
delete those files too.
5663
- scheduler: add log messages (conditioned by debug_credit)
5664
if result.fpops_cumulative or result.fpops_per_cpu_sec is present
5671
- manager: change "Attach to project" to "Add project";
5672
change "Detach from" to "remove"
5677
- scheduler: fix bug that crashed if app_info.xml
5678
refers to nonexistent app
5684
- MGR: Fix bugs saving and restoring info on which notices have been read:
5685
saving as a double reduces precision, so save arrival time as string;
5686
to avoid problems caused by rounding in save & restore operation, test in
5687
reverse order (oldest first) and for arrival time <= dLastReadNoticeTime
5693
- MGR: Remove any remaining hints that there were two wizards at one time.
5694
- MGR: Save the username and email address in different places in the
5695
registry/config file
5698
<Various Wizard Files>
5701
- MGR: Remove connection needed type sys tray notifications from the manager,
5702
lets the CC inform via a notice instead.
5705
BOINCDialupManager.cpp, .h
5708
- MGR: Use the account manager name provided by the project config RPC instead
5709
of the skin name on the CompletionPage in the wizard.
5715
- client: wait until after the proxy check completes before attempting to
5716
check on the reference site.
5726
- MGR: fix crash bug on non-Windows computers.
5729
BOINCDialupManager.cpp
5732
- Mac: XCode project: delete source files WizardAttachProject.cpp,.h and
5733
BOINCWizards.h; add files WizardAttach.cpp,.h.
5740
- MGR: clear notices display when selecting a different host to force display
5741
of new host's notices.
5748
- MGR: fix compiler warnings, some of which predict incorrect operation.
5755
- client: Fix autoproxy detection so that it doesn't break platforms that
5756
currently do not support proxy detection.
5765
- client/scheduler: tweak translatable messages
5775
- MGR: Remove EVT_END_SESSION event handler for now. It was causing a
5776
recursive call to itself on shutdown thereby halting the Windows
5777
shutdown procedure on Windows XP and older systems. It would
5778
eventually crash the process with a stack overflow error.
5784
- MGR: Remove useless Notices button.
5790
- client: tweak translatable msg
5794
- client/scheduler: tweak translatable messages
5797
- admin web: fixed undefined var.
5798
Maybe there's some version of PHP where $self means something.
5804
- client: don't extra jobs for backup (resource share = 0) projects
5810
- MGR: Modeless top level windows should not have the context help
5811
button in the upper right-hand corner of the dialog. Use the
5812
standard control there.
5818
- MGR: Fix a bug which shut down local client even though Manager didn't launch it
5819
when Manager was connected to a remote host.
5823
BOINCClientManager.h
5828
- web: right-align bbcode images
5837
- MGR: Add command-line parameters for automatic connection to remote host:
5838
-n --namehost Host name or IP address
5839
-g --gui_rpc_port GUI RPC port number
5840
-p --password Password
5841
- MGR: If currently connected host name is empty string, don't autorestart
5849
- MGR: Possible fix for vtable reference issue.
5855
- user web: add platform names and elapsed-time info
5856
(represented as "average processing rate")
5857
to host application details page.
5860
host_app_versions.php
5863
- scheduler: add <primary_platform_only> config option:
5864
send only 64-bit app versions to 64-bit hosts
5865
(the default is to send whatever app version is fastest)
5872
- MGR: preserve message filtering by project if Event Log is closed and
5873
reopened, but not when selecting a different host or exiting Manager.
5879
- MGR: Check whether another instance of BOINC Manager is already running;
5880
if so, show Select Computer dialog with extra text saying another
5881
instance is running; if user cancels dialog, exit Manager.
5885
BOINCBaseFrame.cpp, .h
5887
MainDocument.cpp, .h
5888
DlgSelectComputer.cpp, .h
5891
- MGR: Adjust control positions and resize controls after a text change.
5897
- lib: Make procinfo_win.cpp Unicode compatible.
5903
- MGR: Don't allow the Create function of the Wizard to be called twice,
5904
it'll basically lead to both an assert and a memory leak.
5905
- MGR: Don't create the wizard unless we are going to use it.
5909
sg_BoincSimpleGUI.cpp
5913
- WIN_BUILD: Remove references to crypto.cpp, and .h from
5914
libboinc_staticcrt so that projects who use it won't need to
5915
worry about pulling in OpenSSL.
5918
libboinc_staticcrt.vcproj
5921
- admin: add script for deleting results with no workunit.
5922
There were ~1,400 of these on SETI@home,
5923
presumably because of a bug at some point in the past.
5926
delete_orphan_results.php
5927
profile_screen_form.php
5935
- admin: fix bug with "upgrade --server_only".
5936
It wasn't copying html/ops/db_update.php,
5937
so it wasn't doing necessary DB updates.
5938
Fixed this by always copying html/ops/*.
5940
Even with this fix, there is a problem when using
5941
the --server_only or --web_only options of upgrade:
5942
if any DB updates are done, they may affect the
5943
server code that's not being updated, resulting in crashes.
5945
I added a warning message in this case,
5946
recommending that a full upgrade be done.
5949
delete_orphan_result.php
5957
- lib: fix crash if you close and reopen an MFILE
5963
- API: remove deprected stuff related to:
5964
1) old-style apps with graphics in main program.
5965
No one should be using these anymore.
5966
2) writing init_data.xml in boinc_finish().
5967
This was used by deprecated "compound app" scheme
5968
- scheduler: if request reports results that were previously reported,
5969
that's evidence that the previous reply was not received by client.
5970
It may have contained results.
5971
So set a "resend lost results" flag.
5977
- client: fix a bug that caused GPU apps to fail on startup
5978
in the following situation.
5979
Suppose GPU job A is running,
5980
and GPU job B (which has never run before) preempts it.
5982
1) an ACTIVE_TASK and slot dir are allocated for B (slot dir is empty)
5983
2) A is told to quit; B isn't started until A exits
5984
(because they're GPU jobs)
5985
3) before A exits, B is suspended
5986
4) eventually B is started.
5987
Its scheduler state is SUSPENDED rather than UNINITIALIZED,
5988
so the scheduler thinks it slot dir has already been populated.
5989
But it hasn't, and when the app starts it fails immediately
5990
because no files are there.
5992
Fix: decide whether a slot dir needs to be populated by
5993
seeing whether it's empty,
5994
rather than looking at the scheduler state of the task.
6003
- MGR: revert Rom's change #22191; calling Fit() after a text change
6004
redraws the dialog at its minimum size, making it impossible to
6011
- MGR: "Another instance" message in Select Computer dialog gets Manager name
6015
DlgSelectComputer.cpp
6018
- MGR: Adjust control positions and resize controls after a text change,
6019
using Layout(); don't use Fit() or FitInside(), which resize the window.
6020
Remove the messy logic I used before to ensure the filter button is long
6021
enough to fit the longer text.
6022
NOTE: we should add this logic everywhere we have a control whose label
6023
text changes with status, since we cannot predict which label will be
6024
longer in every language translation.
6030
- lib: Prevent category information from being lost in notices.
6036
- Tag for 6.11.5 release, all platforms
6037
boinc_core_release_6_11_5
6044
- lib: prevent crash on startup if slot directories have been deleted.
6050
- client: fix bug in my last checkin
6056
- web: remove align=right on BBcode images
6062
- lib: removed unneeded include. Fixes #1004
6068
- MGR: Fix build break on Mac.
6074
- feeder: don't error out when an ordering option is used with HR;
6075
if some apps don't use HR the ordering option will apply to them.
6081
- scheduler: message tweak
6087
- MGR: Allow Notices tab to scroll smoothly, disallow selection of
6088
items in Notices tab.
6091
BOINCHtmlListBox.cpp, .h (new)
6092
BOINCVListBox.cpp, .h (new)
6094
NoticeListCtrl.cpp, .h
6103
- Tag for 6.11.6 release, all platforms
6104
boinc_core_release_6_11_6
6111
- MGR: In the future I need to be more careful when I flatten a
6112
class hierarchy. I broke the ability to get the latest
6113
project configuration from account managers. Fix that.
6119
- MGR: Fix build issue on Linux (Sqlite3 needed to be added to the
6120
list of libs and header directories to be included)
6126
- MGR: Remove copyright claims to wxWidgets code.
6129
BOINCHtmlLBox.cpp, .h
6130
BOINCVListBox.cpp, .h
6133
- client: check whether anonymous-app files exist
6134
- client: parse (and ignore) <anonymous_platform> element in state file
6141
- MGR: Remove unused WXDLL* declarations to improve Linux compatibility.
6144
BOINCHtmlLBox.cpp, .h
6145
BOINCVListBox.cpp, .h
6148
- MGR: Set the email text box validator to a simple text validator when
6149
the project in question only supports usernames.
6155
- client: Only error out of the CPU version check if the call to CPUID(0)
6162
- MGR: Try and clean up all the undefined reference errors for the GCC
6166
BOINCHtmlLBox.cpp, .h
6167
BOINCVListBox.cpp, .h
6171
- MGR: Finish implementing the use of Usernames in the account manager part
6172
of the wizard. I must have been asleep at the wheel on that one.
6176
AccountManagerProcessingPage.cpp
6177
ProjectProcessingPage.cpp
6180
- scheduler: change the "primary_platform_only" config option
6181
to "prefer_primary_platform".
6182
If an app has only only 32-bit versions, use the for 64-bit clients.
6189
- client: maintain "gpu_active_frac" in addition to "active_frac"
6190
(which really means CPU active)
6200
- MGR: Further refinements to Client shutdown logic on Manager Exit:
6201
Old: Manager shut down Client only if it started the Client.
6203
Don't show exit dialog if connected Client is not on localhost.
6204
Mac: Manager shuts down Client only if it started the Client
6205
and if the Client is on localhost.
6206
Windows, Linux: Manager shuts down Client, whether or not the
6207
Manager started the Client, but only if the Client is on
6208
localhost and the user requests Client shutdown in the exit
6209
dialog, even if running as a service on Windows. As before,
6210
it skips the exit dialog and uses the saved behavior if the
6211
user previously set "Remember this decision and do not show
6215
BOINCClientManager.cpp
6220
- MGR: On Mac only, Close Window menu item (or its shortcut Command-w)
6221
closes the Event Log if it is the front window.
6227
- client: treat notices from schedulers a little differently.
6228
Ignore duplicate notices unless they're at least 24 hours
6229
newer than the previous one.
6239
- client: ignore case in names of "exclusive apps"
6240
and exclusive GPU apps
6241
- client: fix bug that caused GPU apps to not be
6242
suspended or resumed immediately after
6243
exclusive GPU app transition
6244
- client: in log message, instead of saying
6245
"fetching tasks for GPU", say which kind of GPU
6247
TODO: GPU suspend/resume works by setting or clearing
6248
gpu_suspend_reason, then calling request_schedule_cpus().
6249
There's no explicit suspending or resuming.
6250
CPU suspend/resume should work the same way.
6260
- web: check the "next URL" passed to login and account
6261
creation scripts to ensure they refer only to local pages
6262
(i.e. they don't contain "://").
6263
This prevents cross-site scripting attacks (I think).
6270
create_account_action.php
6273
- client: back out changeset [21086],
6274
which cleaned out project dir on reset.
6275
The semantics of reset are to not delete sticky files.
6281
- client: fix "boinc_temporary_exit()" support.
6282
This is critical for GPU support.
6297
- web: if SECURE_URL_BASE is defined in html/project/project.inc,
6298
use it a prefix for forms that include passwords,
6299
namely login_form.php and create_account.php.
6300
Typically SECURE_URL_BASE would start with "https://".
6308
create_account_form.php
6309
create_account_action.php
6312
- client: fix problems with exclusive_gpu_app feature.
6321
- web: finish the above
6326
edit_passwd_form.php
6330
- fix various XSS vulnerabilities reported by the
6331
Acunetix Web Vulnerability Scanner (free edition)
6337
projects_specific_prefs.inc
6344
create_account_form.php
6345
create_account_action.php
6353
- web: make some strings translatable, fixes #1006, from Simek
6360
- MGR: Properly display which components have trouble loading when
6362
- MGR: A new new skin which will become the new default skin.
6366
clientgui/skin/BOINC
6370
- web: make strings translatable. From Simek, fixes #1007
6381
- server (job submission): allow input templates to specify the
6382
URL, size, and MD5 of input files.
6383
This supports "non-local" input files,
6384
i.e. files not present on the project server.
6386
NOTE: as implemented,
6387
this requires a separate input template for each job.
6388
It would be slightly better to let you specify the
6389
URL/size/MD5 in the create_work() call.
6391
From Zoltan Farkas (SZTAKI)
6397
- Tag for 6.11.7 release, all platforms
6398
boinc_core_release_6_11_7
6405
- client: support notice feeds from account managers.
6406
Implementation: create a base class PROJ_AM,
6407
from which both PROJECT and ACCT_MGR_INFO are derived,
6408
with basic stuff like name, URL, and RSS feed list
6415
gui_rpc_server_ops.cpp
6425
- debug the above. It now successfully displays an
6426
RSS feed of news items from Google,
6427
linked from a project manager
6436
- user web: fix division by zero in host app versions page.
6439
host_app_versions.php
6442
- scheduler: fix "prefer_primary_platform" logic (I hope).
6448
- client: remove duplicate notices based on GUID as well as text
6449
(Google RSS feeds, e.g., change random strings in URLs
6450
in the item description, but leave the GUID the same)
6456
- client: if a client has no jobs for a resource, decay its STD
6457
for that resource by a factor of e every day
6462
Charlie 10 Sept 2010
6463
- MGR: Statistics tab: add scroll bar to project list, replace
6464
hidden double-click function with new "Hide / Show Project
6465
List" button, enable & disable buttons appropriately.
6469
ViewStatistics.cpp, .h
6472
- boinc_cmd: don't crash if can't connect to local client
6478
- user web: filter results by application.
6487
- WINSCR: Set the screen saver log directory to the data directory.
6488
- WINSCR: Already create a log file, even on release builds, just don't
6489
write trace messages.
6490
- WINSCR: Be a bit more paranoid about not being able to detect keyboard
6491
and mouse activity. If the function fails for whatever reason
6492
shutdown the screensaver.
6498
- client: remove spurious msgs about deleting files while in use
6499
- scheduler: add log messages related to max jobs in progress
6508
- back end: compile fixes
6514
Charlie 14 Sept 2010
6515
- MGR: Statistics tab: add graph showing sum of selected projects, rename
6516
other mode buttons "All projects (separate)", "All projects (together)".
6517
Minor bug fix: call UpdateSelection() from OnRestoreState().
6521
ViewStatistics.cpp, .h
6524
- lib: check for malloc() NULL return; fixes #921
6528
Charlie 15 Sept 2010
6529
- MGR: Statistics tab: optimize and fix bugs in new graph showing sum of
6533
ViewStatistics.cpp, .h
6536
- client: a bit of IPv6 compatibility
6537
- use "sockaddr_storage" to store network addresses
6538
(which may be IPv4 or IPv6)
6539
rather than assuming they fit in an int.
6540
- the entries in remote_hosts.cfg may now be IPv6 addresses
6541
(a:b:c::e:f:g format),
6542
or domain names of hosts that support only IPv6
6543
Note: GUI RPCs are still constrained to use IPv4,
6544
but this should be easy to change if it's every needed
6546
Also: replace deprecated gethostbyname() with getaddrinfo().
6550
gui_rpc_server.cpp,h
6551
hostinfo_network.cpp
6553
gui_rpc_client.cpp,h
6557
- client: revert to old network functions (gethostbyname() etc.) on Win:
6558
- inet_ntop() etc. exist only on Vista+
6559
- the other functions are declared in winsock2.h.
6560
This breaks the Manager build, since wxwidgets includes winsock.h.
6562
- windows build: manager doesn't depend on client
6566
hostinfo_network.cpp
6568
gui_rpc_client.cpp,h
6574
- web: improve server status page, and make it translatable
6578
sample_server_status.php
6581
- web: move server status page from ops/ to user/.
6582
Remove funky file-writing stuff - just use caching.
6584
- web: include link to server status page on sample front page
6588
sample_server_status (removed)
6591
server_status.php (new)
6594
- compile fix for Mac
6600
- API and sample apps: pass buf length arg to boinc_msg_prefix()
6601
and use snprintf() to avoid overrun.
6602
Can't see why this could ever happen.
6603
Attempt to fix crash in E@h apps.
6614
- client (Win): use MoveFileEx() to rename file.
6615
More atomic than delete/rename.
6621
- client: if we successfully did CPU benchmarks,
6622
don't keep doing them every 5 days unless restart the client
6629
- web: don't require that SECURE_URL_BASE be set,
6630
or that it end with a /
6637
create_account_form.php
6642
- web: don't call filter_var() if it doesn't exist (PHP version < 5.2)
6658
- web: server_status.php is not an ops page
6664
- client: fix boinc_temporary_exit() handling on Unix (from Hien)
6670
- client: improve "wrong URL" messages
6671
- client: add title to client/server messages: "Notice from BOINC"
6678
- scheduler: message tweak
6685
- client: when computing non-BOINC CPU usage,
6686
allow for the possibility that suspended BOINC apps
6687
aren't really suspended
6688
(e.g. multithread apps that don't use boinc_init_parallel())
6689
- client: message tweak
6696
- scheduler: fix crashing bug when client reports a large # (1000+)
6697
of results (256KB not enough for query in this case)
6703
- web: appearance tweaks from Simek; fixes #1012
6715
edit_user_info_form.php
6716
edit_forum_preferences_form.php
6718
Charlie 20 Sept 2010
6719
- Mac: Update XCode project for XCode 3.2.4.
6726
- client/web: change RSS feed mechanism a little.
6727
If <use_since_time> is included in feed description,
6728
the client will append &since_time=x to the URL,
6729
where x is the lastBuildDate of the previous reply.
6730
This notices handler (notices.php) sends only notices
6732
- client: discard old notices as they arrive
6740
- web: authenticate notices request
6752
- MGR: Display the default action in the system tray menu in bold again.
6753
- MGR: If connected to the localhost, don't display the computer name
6754
in the window title.
6755
- MGR: Change the exit menu item text to be a little more specific about
6756
what is being shutdown. Use the same scheme as the exit text in the
6757
status bar so that it'll automatically be localized.
6758
- SCR: Remove some old Win9x code.
6764
screensaver_win.cpp, .h
6767
- client: write GPU info to client_state.xml,
6768
so that it can be input file to the client simulator.
6773
gui_rpc_server_ops.cpp
6779
Charlie 24 Sept 2010
6780
Mac: add Mac executables of wrapper application.
6789
wrapper_macOSX_x86_64
6792
- client simulator: major remodel and upgrade.
6793
Insteady of using its own XML input files,
6794
the simulator now takes a client_state.xml file as input.
6795
The simulator generates a synthetic workload based on the
6796
projects, apps, app versions, WUs, and result it finds there.
6798
This means that a user seeing aberrant behavior
6799
can just send their client_state.xml file
6800
and (hopefully) we can use the simulator to repro.
6802
The simulator now can model GPUs.
6804
As of this checkin, the simulator compiles but doesn't work.
6805
There should be no change in the actual client.
6814
- client: fix bug that cause wasted scheduler RPC
6815
Old: when a job finished, we cleared the backoffs for the
6816
resources it used. The idea was to get more jobs
6817
immediately in the case where the client was at
6818
a jobs-in-progress limit.
6819
Problem: this resulted in an RPC immediately,
6820
typically before the output files were uploaded.
6821
So the client is still at the limit, and doesn't get jobs.
6822
New: clear the backoffs at the point when output files
6823
have been uploaded and the job is ready to report.
6824
- client: change range in resource backoff from (0,x) to (.5, 1.5*x)
6832
- client: add <no_info_fetch> config option and --no_info_fetch
6834
Suppresses the fetch of project list and of current client version #.
6835
Use when running on grid nodes.
6836
- debugging on client simulator. Not done yet.
6852
- MGR: Make the new BOINC skin the default skin.
6857
clientgui/skins/BOINC/graphic/
6859
clientgui/skins/BOINC/
6861
clientgui/skins/People for a Smarter Planet/
6867
- Tag for 6.11.8 release, all platforms
6868
boinc_core_release_6_11_8
6875
- validator: if credit calculation returns an error,
6876
wait 6 hours before retrying
6887
- client: if we suspend apps because non-BOINC CPU is is too high,
6888
leave them in memory.
6889
Otherwise (if the CPU use is caused by launching an app,
6890
say by security software)
6891
we would get into a loop.
6896
Charlie 28 Sept 2010
6897
Mac: update release script to add new BOINC skin.
6903
- client: if a process has priority <= that of BOINC apps,
6904
don't include it in non-BOINC CPU time.
6905
Otherwise the presence of such a process could
6906
prevent BOINC from running apps.
6907
(Windows only - will do Unix/Mac later)
6916
- client: in computing non-BOINC CPU time,
6917
ignore ACTIVE_TASKs that don't have a process.
6918
- client: bug fix to previous checkin
6926
- client (unix): don't count low-priority processes towards
6928
NOTE: when you nice a process to 19,
6929
its priority in /proc is 39 (at least on Ubuntu and FC11).
6930
I can't find where this offset (20) is documented,
6931
so I just hardwired 39.
6939
Charlie 29 Sept 2010
6940
lib: Temporary work-around for unknown problem with IPV6-compatible
6944
gui_rpc_client.cpp,h
6947
- lib: make str_util.h C-compatible (from Matt Arsenault)
6952
Charlie 29 Sept 2010
6953
lib: Add test for low-priority processes to procinfo_setup() and
6959
Charlie 30 Sept 2010
6960
lib: Fix problem with IPV6-compatible code on Mac: we need to set the
6961
third argument to connect() differently for IPV4 or IPV6.
6962
NOTE: This is not yet tested with actual IPV6 addresses.
6965
gui_rpc_client.cpp,h
6968
- Tag for 6.11.9 release, all platforms
6969
boinc_core_release_6_11_9
6976
- scheduler: check whether client is reporting the same result twice
6977
in a given request message.
6978
Eliminate duplicates; they mess things up.
6979
- scheduler: fix RESULT#0 problem in message log
6980
- user web: keep credit totals when merging hosts by name
6989
- scheduler: typo in app_plan() for ATI GPUs; fixes #1016
6995
- undo recent change to str_util.h; it broke FCGI compile
7001
- scheduler: deal correctly with jobs that need > 2GB RAM.
7002
Such jobs fail on 32-bit machines, even if they have sufficient RAM,
7003
because 32-bit OSs don't support address spaces > 2GB.
7005
In general, we want to support the following scenario:
7006
- an app has a mixture of small (< 2GB) and big (> 2GB) jobs.
7007
- there are app versions for both 32b and 64b platforms
7008
- one of the 32b versions is faster than the 64b version
7009
(say, it's a 32b GPU app)
7012
If the client is 32b, send it only small jobs,
7013
using the fast 32b version if possible
7014
If the client is 64b and has sufficient RAM,
7015
send it large jobs using the 64b version;
7016
send it small jobs using the fast 32b version if possible,
7017
else the 64b version
7019
Solution: extend get_app_version() so that it detects big jobs,
7020
and uses only 64b versions for them.
7021
Add a "for_64b_jobs" field to BEST_APP_VERSION
7022
so that we maintain a separate memoized set of
7023
BEST_APP_VERSIONs for big jobs.
7025
- client: don't set report_results_immediately inappropriately
7034
- user web: typo fix. Fixes #1018. From Simek.
7040
- MGR: On Linix, minimize the main window instead of trying to hide it when
7041
close is selected on the window instead of the menu. Ideally the main
7042
window would just be hidden until the notification icon is clicked, but
7043
apparently wxWidgets/GTK/X doesn't like it when you attempt to hide the
7045
- MGR: Display what cpu architecture the manager was built for in the about
7053
- client: remove debugging code accidentally left in
7060
- client: don't fetch RSS feeds if "no_info_fetch" flag is set
7066
- web: fix bug in "email passwd" page
7072
- client: fix bug causing garbage values in ATI descriptions
7078
- web: fix login bug
7084
- crypt_prog: show cmdline options if error. Fixes #1019
7090
- client: don't show GPU suspend/resume msgs if no GPUs
7096
- ss_app: call rpc.init(NULL) not rpc.init("localhost") to work around
7097
a bug which prevented default screensaver boincscr from communicating
7098
with client on Mac (and probably other computers which support IPV6.)
7104
- MGR: Add command-line argument --multiple or -m to allow multiple
7105
instances of BOINC Manager to be run. If a second instance is
7106
launched without this argument, it will bring the original
7107
instance to the front and quit. If this argument is present,
7108
the second instance will automatically run the Selectr Computer
7110
Also add "Launch another BOINC Manager" menu item to Advanced menu.
7113
AdvancedFrame.cpp, .h
7119
- manager: remove last few instances of "detach" from messages
7127
- fix a few absolutely last messages with "attach", "detach"
7136
CompletionErrorPage.cpp
7141
create_account_form.php
7146
- Increment version to 6.12.0.
7153
- client: add <max_tasks_reported> config item:
7154
limit the # of completed tasks reported per RPC
7161
- GUI RPC: remove unneeded isIPV6 flag, factor out sizeof() logic
7164
gui_rpc_client.cpp,h
7169
- Mac: Update build scripts and documentation.
7176
HowToBuildBOINC_XCode.rtf
7185
- Mac: Update build example.
7189
UpperCase2.xcodeproj/
7193
- Mac: Update build scripts, build examples and documentation.
7201
HowToBuildBOINC_XCode.rtf
7207
UpperCase2.xcodeproj/
7213
- GUI RPC: when resolving hostnames, ask for only IPV4 addresses.
7214
No point in allowing IPV6 since the client doesn't
7215
create a listening socket for IPV6
7223
- Win/Linux: Implement the launch new manager functionality for Windows
7233
- MGR: Sanitize the event log output from the CC.
7239
- MGR: Take two of the above.
7243
MainDocument.cpp, .h
7246
- client: fix bug with the <max_tasks_reported> config option.
7247
If # of ready-to-report tasks > max_tasks_reported,
7248
then the excess ready-to-report tasks weren't getting
7249
reported to the scheduler at all (i.e. not in <other_results> either)
7250
so the scheduler would resend them
7251
(not a fatal problem, but a waste of bandwidth).
7258
- API/client: move CUdevice_attribute_enum out of lib/coproc.h
7259
to fix app build errors
7267
- client: fix compiler warning.
7273
- MGR: Check for a duplicate instance much earlier in the initialization
7274
cycle, before any window or document creation. Prevents rapid window
7275
creation and then destruction.
7281
- client: when an app exits, adjust debts before erasing ACTIVE_TASK.
7282
Otherwise the last episode won't get accounted
7289
- MGR: Complete above initialization changes for the Mac
7296
- MGR: Don't require --multiple arg to launch a new instance if both
7297
--namehost and --password args are specified.
7303
- MGR: Handle paths with spaces in them when launching new instances
7310
- Tag for 6.12.1 release, all platforms
7311
boinc_core_release_6_12_1
7318
- MGR: It turns out it was some wxWidgets parameter parsing wierdness
7319
in the newly launched application that was throwing the error. Double
7320
quotes around the parameter didn't fix the issue. For the time being
7321
just hard code 'boincmgr.exe' as argv[0] as it isn't used by the Windows
7322
client at all. wxWidgets won't find --multiple if it is argv[0].
7328
- Tag for 6.12.2 release, all platforms
7329
boinc_core_release_6_12_2
7336
- lib: Fix problems with Mac backtrace code: use atos only if present, etc.
7337
(atos is installed only if developer tools are installed.)
7341
mac_backtrace.cpp, .h
7345
- lib: Mac backtrace code (including the backtrace() API) doesn't work
7346
on PowerPC Macs running under OS 10.5.x, so display explanatory text
7347
when attempting a backtrace on those machines.
7354
- client: use project STD, rather than arrival time,
7355
as the major criterion in choosing non-EDF GPU jobs.
7356
GPU scheduling now respects resource share,
7357
and as a result STD should no longer diverge.
7358
- client simulator: various improvements, most notably
7359
that we now generate gnuplot graphs of all debt types
7361
NOTE: the client problem was found and fixed using the simulator!
7373
- client: delete a notice if it's no longer in the RSS feed.
7374
E.g., if a project deletes a news item, remove it from notices.
7382
- bug fix for the above
7388
- user web: in RSS item for private message, don't say anything
7389
about the message (sender, title, or content)
7390
- user web: don't send an RSS item for a thread with no posts (i.e., hidden)
7391
- client simulator: support global_prefs_override.xml
7400
- MGR(WIN): While it is a perfectly valid thing to use FindWindow() and
7401
ShowWindow() on an application frame to restore an application from
7402
a minimized state or a hidden state on Windows(75% of the UI test
7403
automation would fail at Microsoft without this ability), it appeartly
7404
isn't for other platforms. wxWidgets is or appears to be tracking window
7405
state internally, which leads to problems when the OS restores the window
7406
and the rest of the framework doesn't know about that change in state.
7407
Certain window events were being ignored (like WM_CLOSE, menu selection
7408
events, etc.). So replace the previous mechinism for bringing an existing
7409
instance of the BOINC Manager to the foreground by creating a new global
7410
window message which is tracked by the system tray icon. When the new
7411
global message is fired make sure the CBOINCGUIApp::SetActiveGUI() function
7412
is called to restore the window state which in turn updates all the internal
7413
framework data structures.
7418
BOINCTaskBar.cpp, .h
7423
- client: distinguish between messages to be displayed as HTML
7424
(e.g. "Download new client here" link) and others
7425
(e.g. "Bad tag in cc_config.xml: <foo>").
7426
- code cleanup; move show_message from main.cpp to client_msgs.cpp
7439
- client: on startup, generate a message and notice
7440
about new client version if needed
7448
- client: notice debugging
7454
- MGR: Add missing keyboard shortcut for the Event Log
7455
- MGR: Add missing ellipses for the new instance of BOINC Manager and
7457
- MGR: Display a simple message when saying that there are no notices
7458
to be displayed when the client reports there are zero notices.
7466
- fixed whitespace error in Makefile.mingw
7467
- build and install svn_version.h in Makefile.mingw
7468
- fixed boinc_win.h for MinGW gcc-4
7469
- not sure why "client_msgs.h" was ever included in procinfo_unix.cpp,
7470
but in current code caused a nasty trail of includes breaking the
7471
Linux build, so removed it
7480
- client: ignore exclusive apps including "boinc"
7489
- Tag for 6.12.3 release, all platforms
7490
boinc_core_release_6_12_3
7497
- Tag for 6.12.4 release, all platforms
7498
boinc_core_release_6_12_4
7505
- Mac: Update XCode project for new source files client/current_version.cpp,.h.
7506
(checked in to boinc_core_release_6_12_4)
7514
- client: update STD of ineligible projects by decay only.
7515
Not sure why, but this eliminates gradual negative drift.
7521
- client: linux compile fix
7522
- client: small fix for GPU scheduling
7523
(use anticipated debt instead of STD)
7532
- scheduler: fix logic that deals with jobs that need > 2GB RAM.
7533
My change of 1 Oct ([22440]) required that such jobs
7534
be processed with 64-bit apps,
7535
on the assumption that 32-bit apps have a 2 GB user address space limit.
7536
However, it turns out this limit applies only to Windows
7537
(kernel and user mode share the 4GB address space; each gets half).
7538
On Linux, the split is 3GB user / 1 GB kernel.
7539
On Mac OS X, user mode and kernel mode have separate address spaces,
7556
- manager: if attaching to existing account,
7557
don't check min passwd length
7563
- manager: fix non-translatable "0 bytes"
7569
- client and manager: fix notice titles
7570
- code cleanup: please use standard coding conventions
7578
- client: small initial checkin for new scheduling system.
7579
Keep track of per-project recent estimated credit
7595
- client: show --no_gpus option in --help
7602
- client: don't preempt GPU jobs in middle of time slice
7608
- client: fix problems with job scheduling policy.
7609
Old: job scheduling has 2 phases.
7610
In the first phase (schedule_cpus()) we make a list of jobs,
7611
with deadline-miss and high-STD jobs first.
7612
Keep track of the RAM used,
7613
and skip jobs that would exceed available RAM.
7614
Stop scanning when the # of CPUs used by jobs in the list
7615
exceeds the # of actual CPUs.
7617
In the 2nd phase (enforce_schedule()), we add currently running jobs
7618
(which may be in the middle of a time slice) to the list,
7619
and reorder to give priority to such jobs,
7620
and possibly also to multi-thread jobs.
7621
We then run and/or preempt jobs, keeping track of RAM used.
7624
- suppose we add an EDF 1-CPU job to the list, then a MT job.
7625
We'll stop at that point because #CPUs is exceeded.
7626
But enforce_schedule() won't run the MT job,
7627
and CPUs will be idle.
7628
- Because the list may be reordered, skipping jobs based
7629
on RAM is not correct, and may cause deadlines to be missed.
7632
- when making the job list, keep track of #CPUs used
7633
by MT jobs and non-MT jobs separately.
7634
Stop the scan only if the non-MT count exceeds #CPUs.
7635
This ensures that we have enough jobs to use all the CPUs,
7636
even if the MT jobs can't be run for whatever reason.
7637
- don't skip jobs because of RAM usage
7638
- skip MT jobs if the MT CPU count is at least #CPUs
7641
- ignoring RAM usage in phase 1 can cause idleness in some cases,
7642
e.g. suppose there are 4 GB of RAM and the list has
7643
jobs that use 3 GB, but there are also some jobs that use 1 GB.
7644
I'm not sure how to fix this.
7645
- Maybe the 2-phase approach is not a good idea.
7646
We did it this way for efficiency,
7647
so that we don't have to recompute the job list
7648
each time a job checkpoints.
7649
But this is probably not a concern,
7650
and I like the idea of a simpler approach,
7651
e.g. reducing the policy to a single comparison function.
7657
- GUI RPC: parse GPU info, FLOPS from APP_VERSION records
7658
(client already sends this info)
7661
gui_rpc_client_ops.cpp
7665
- manager: show app speed and task FLOPs estimate in task Properties
7668
DlgItemProperties.cpp
7671
- client: gpu_active_frac was being computed incorrectly,
7672
resulting in various scheduling problems
7678
- client: comment out update_rec() call
7684
- client: comment out a debug msg
7690
- MGR: Fix the event log so that it doesn't store the event log's
7691
size information when it is in a minimized state.
7692
- MGR: Fix the close dialog issue on wxGTK, apparently there is a
7693
hidden flag that governs the handling of the GTK callback
7694
function. Fixes #962 (Thanks for the patch cli)
7697
DlgAdvPreferencesBase.cpp
7699
DlgItemProperties.cpp
7702
- Tag for 6.12.5 release, all platforms
7703
boinc_core_release_6_12_5
7710
- client, scheduler, RPC protocol:
7711
- If the scheduler doesn't have any app versions for resource type X,
7712
it includes an element <no_X_apps>1</no_X_apps> in the reply msg
7713
(e.g., <no_cpu_apps>1</no_cpu_apps>)
7714
- The client parses and stores these flags,
7715
and doesn't ask a project for work for a resource
7716
if the project doesn't have app versions for it.
7717
Apparently I started this change in [19375] (October 2009)
7718
and forgot to finish it.
7727
- client: fix "Snooze GPU"
7733
- client: change scheduling policy to allow multithread jobs to coexist
7734
with GPU jobs that use significant CPU time.
7735
Old: run a MT job only if total CPU usage will be < #CPUs + 1.
7736
So if you have some GPU jobs running and their CPU usage sums to < 1,
7737
BOINC will run a MT job too.
7738
But if CPU usage > 1 BOINC won't run the MT job,
7739
and some CPUs will be idle.
7740
Note: to maximize throughput, it might be better to run
7741
either GPU jobs or MT jobs, but not both at the same time.
7742
However, volunteers don't like it when CPUs are idle. So...
7743
New: ignore the CPU usage of GPU jobs in deciding whether to run MT jobs.
7744
So we'll run a 4-core MT job (at low priority)
7745
even if GPU jobs (which run at normal priority) use > 1 CPU.
7746
(Yes, the MT job might run very slow)
7752
- manager: don't show resources redundantly on task properties page
7755
DlgItemProperties.cpp
7759
- boinccmd: --get_cc_status now prints its result
7763
gui_rpc_client_print.cpp
7769
- client: fix yesterday's checkin [22661] for anonymous platform:
7770
if project P is anonymous platform
7771
don't request work for resource R from P
7772
if there is no app version using R in P/app_info.xml
7774
don't request work for resource R from P
7775
if P tells us it has no app versions using R
7783
- Mac SS: Minor tweak for use in debugging.
7786
mac_saver_module.cpp
7789
- MGR: Disable balloons on Linux for the time being.
7795
- Tag for 6.12.6 release, all platforms
7796
boinc_core_release_6_12_6
7803
- client: fix harmless compile warning
7809
- Mac Installer: remove obsolete kludge for generating x86_64 screensaver.
7815
- Mac Installer: eliminate wrapper application around install package
7816
(was only needed for OS 10.3.x support); set our custom icon in
7817
the install package "BOINC Installer.pkg".
7828
- Mac Installer: to permit remote install via SSH, suppress dialogs if
7829
COMMAND_LINE_INSTALL environment variable was set by command-line
7830
installer; if set, recognize two additional environment variables
7831
NONADMINUSERSOK (to allow non-admin users to run Manager) and
7832
SETBOINCSAVER (to set BOINC as screensaver for all BOINC users.)
7838
- client: improve the way credit history is maintained
7839
Old: maintain list of daily records.
7840
When add a new record, delete records older than a month
7842
If there's a gap in the record (e.g. because project was down)
7843
deleting old records may result in a list that
7844
has an entry only for today.
7845
Data for the last month is lost.
7847
When appropriate, adjust the date of old records
7848
rather than deleting them
7854
- Mac Installer: It turns out that the command-line installer clears all
7855
environment variables, so instead of checking environment variables
7856
during command-line installs, we check for the existence of files
7857
/tmp/nonadminusersok.txt and /tmp/setboincsaver.txt. In normal GUI
7858
installs, these are ignored and the normal BOINC installer dialogs
7859
are used to determine these options. See the comments at the top of
7860
PostInstall.cpp for details of doing command-line installs on remote
7869
- Mac Installer: Better handling of custom installer icon.
7878
- MGR: Statistics tab: in graph showing sum of selected projects, always
7879
show statistics for the last 30 days. This is now possible due to
7880
November 20 changes to the way credit history is maintained.
7886
- client: account manager RPC:
7887
Additions to request message:
7888
<not_started_dur>X</not_started_dur>
7889
<in_progress_dur>X</in_progress_dur>
7890
The estimated remaining duration of unstarted
7891
and in-progress tasks
7892
Additions to reply message, within <project>, optional:
7893
<suspend>0|1</suspend>
7894
suspend or resume project (overrides local state)
7895
<abort_not_started>0|1</abort_not_started>
7896
if set, abort unstarted jobs
7904
gui_rpc_server_ops.cpp
7909
- client: Add support to detect VirtualBox VM software.
7918
- sched: Parse the detected virtual machine software from
7919
the scheduler request so it can be used in plan classes.
7927
- client and scheduler: a client host may have multiple VM systems installed.
7928
TODO: check for VirtualBox on Mac, Linux
7941
- client: Add support to detect VirtualBox VM software on Mac.
7947
- win_tray: Add logging support to trap crashes.
7955
- client: in account manager requests,
7956
include the following per-project attributes:
7957
suspended_via_gui, dont_request_more_work, detach_when_done, ended
7963
- client: restore code to maintain recent estimated credit
7970
- client: Add VirtualBox detection for linux
7977
- MGR: Switch to the tasks tab when a request to execute benchmarks has
7978
been requested. The messages tab no longer exists.
7984
- client: fix bug where client would ask project for work for a resource
7985
even when the project doesn't have app versions that use the resource.
7986
TODO: there are 2 functions,
7987
compute_may_have_work() and dont_fetch(),
7988
that do the same thing and both have misleading names.
7995
- client: Copy the AltiVec CPU feature to the p_features field, leave
7996
AltiVec in the host model field for backwards compatibility.
8002
- client: implement more scheduler changes that use
8003
recent estimated credit (REC) instead of debt.
8004
These changes are enabled by
8007
If this is commented out (the default) the client uses
8008
debt-based scheduling, same as before.
8009
TODO: work-fetch policy changes
8010
- client simulator: various fixes:
8011
- compute idle and wasted fraction based on all processing resources,
8013
- compute job completion times based on FLOPS, not CPU seconds
8014
- compute and use project->no_X_apps
8022
gui_rpc_server_ops.cpp
8028
- GUI RPC, client side: add error-checking for CC_STATE::parse();
8029
avoid crash if error or missing item in reply XML
8035
gui_rpc_client_ops.cpp
8038
- client: fix compiler warning.
8044
- client: work fetch fix: try to maintain GPU work all projects,
8045
since we now do round-robin for GPUs as well as CPU.
8046
NOTE: this bug was found using the client simulator!
8053
- client: do exponential backoff (from 10 min to 24 hours)
8054
on account manager RPC failures,
8055
rather than always waiting 24 hours
8063
- client: fix crash bug.
8069
- client: use <foo>0|1</foo> instead of <foo/> or "" as XML boolean.
8070
This distinguishes between "false" and "not defined"
8071
(did this in a few places, should do it everywhere)
8078
- client: send host info in account manager request message
8084
- client: on startup, generate a notice if any jobs require more RAM
8085
than is allowed by prefs
8092
- MGR: Use standard menus, even on Windows, for the Simple GUI.
8095
sg_StatImageLoader.cpp
8098
- Tag for 6.12.7 release, all platforms
8099
boinc_core_release_6_12_7
8106
- lib: The custom Mac backtrace code doesn't work on Intel Macs running
8107
under OS 10.5.x, so use newer backtrace() and backtrace_symbols()
8108
APIs under OS 10.5.x, with explanatory text suggesting alternatives.
8109
(Checked into 6.12.7 tag.)
8116
- Mac Installer: Updates for OS 10.6.5 compatibility.
8117
(Checked into 6.12.7 tag.)
8126
- client: fix major bug in job scheduling
8127
Old: scheduling has 2 phases:
8128
1) computing a list of jobs to run (a vector of RESULT*);
8129
this is done infrequently
8130
2) enforcing the schedule; this is done more frequently
8132
when we enforce the schedule,
8133
the RESULTs in the jobs-to-run list may not still be runnable,
8134
and in fact they may not still exist (dangling pointer).
8135
New: combine the 2 phases
8145
- client: slightly change detach scheme for account managers.
8152
- client, acct manager protocol:
8153
allow <no_cpu>, <no_cuda> and <no_ati> bools
8154
within <account> in reply message.
8155
They suppress work fetch for that resource type from that project.
8164
- client: fix scheduling bug.
8165
The round-robin simulation wasn't handling multithread jobs correctly.
8166
For example, given two 3-CPU jobs,
8167
it would model running them together on a 4-CPU host.
8168
This doesn't correspond with the CPU scheduler,
8169
which runs only 1 at a time.
8170
So the simulator would say that there are no idle CPUs
8171
when in fact there are, and no new CPU jobs would be fetched.
8177
- client: fix typo that broke communication with account managers
8183
- Tag for 6.12.8 release, all platforms
8184
boinc_core_release_6_12_8
8191
- Mac Installer: Fix failure to auto-launch on OS 10.4.x.
8198
- Tag for 6.12.9 release - Mac only.
8199
boinc_core_release_6_12_9
8206
- manager: fix compile warnings; from Steffen Moller
8212
- client: fix scheduling bug when a job has fraction_done = 1
8213
but it's not finished yet.
8214
ACTIVE_TASK::est_dur() was returning 0
8215
when it should have returned elapsed_time.
8221
- client: fix bug where "reread config file" didn't update
8222
the max log file sizes
8229
- client: fix scheduling problem:
8230
Old: enforce_schedule() won't run an active job if its
8231
working set size exceeds remaining available RAM.
8232
Problem: there may be a lot of similar jobs.
8233
The client starts one, finds that its working set is too large,
8234
starts the second, and so on.
8235
Solution: if J is an unstarted job,
8236
and there are started jobs using the same app version,
8237
consider J's working set size to be the largest of
8238
the working sets of those jobs.
8239
- client: fix an apparent bug that could oversaturate
8240
the CPUs with single-thread jobsk
8247
- client: work fetch: if the chosen project is currently uploading a file,
8248
and an upload started in the last 5 min, don't fetch work from it.
8249
The goal is to merge the 2 scheduler RPCs
8250
(fetch work, report completed taskS) into a single RPC.
8251
Note: this may result in idleness in some cases.
8261
- client: if detect that system clock has been set backwards
8262
(either at startup or during execution)
8263
reset a number of "wait until X" variables;
8264
otherwise we might wait years to contact a project, restart a file xfer, etc.
8266
- there is no problem setting clocks forward; things just happen prematurely
8267
- some variables (e.g. task deadlines) are not reset,
8268
because it's not clear what to set them to
8278
- client: improve text of "message from server" notices
8279
- manager: change "add account manager" to "use account manager".
8280
"Add" is confusing, because you can't add multiple account managers
8281
like you add projects.
8282
- client: recognize a few new ATI GPU models
8283
from [P3D] Crashtest
8294
- client: tweak to ATI CPU recognition
8295
from [P3D] Crashtest
8301
19
- unix build: remove hardwired -ldl