forked from BOINC/boinc
-
Notifications
You must be signed in to change notification settings - Fork 1
/
checkin_notes_2005
14904 lines (12409 loc) · 449 KB
/
checkin_notes_2005
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
eavid 1 Jan 2005
- Deprecated the bad hash function used for the
upload/download directory hierarchies.
It wasn't uniform.
Use MD5 instead.
Kept the old one around for a the time being.
dir_hier_path() and dir_hier_url() take a new arg
saying whether to use new or old hash.
The file_deleter and validator try the new hash, then the old.
doc/
busy_work.php (new)
tools_work.php
lib/
util.C,h
sched/
file_deleter.C
file_upload_handler.C
make_work.C
validate_util.C
wu_check.C
tools/
backend_lib.C
dir_hier_move.C
dir_hier_path.C
David 3 Jan 2005
- split the implementation of REDUCE into 2 parts,
one for the app's main program and one for the shared library
api/
Makefile.am
reduce.C (removed)
reduce_lib.C (new)
reduce_main.C (new)
Bruce 5 Jan 2005
Bruce 6 Jan 2005
- added new directory which builds a self-extracting tar
archive (executable shell script) for installation on
unix platforms. This will only be made when building
the client GUI and installs both the boinc client and
client GUI. Written and tested by Bernd Machenschalk.
- next day revision, name shell script with appropriate
version/release number from configure.ac
Makefile.am
sea/ [New Directory]
make-sea.sh
Makefile.in
BOINC/ [THIS DIRECTORY IS SPURIOUS: NO LONGER NEEDED]
Janus 6 Jan 2005
- Added support for an "Ignore" function in the forums
Users can now ignore a list of other users. The ignored
posts will appear as filtered.
To use this the forum_preferences table needs a new
column:
ALTER TABLE `forum_preferences` ADD `ignorelist` VARCHAR( 254 ) NOT NULL ;
- Added thread name to page title in forums (from Athlonrob)
- Round scores and ratings in forum to avoid a rating of
for instance 2.999999999
/html/user
edit_forum_preferences_form.php
edit_forum_preferences_action.php
forum_thread.php
/html/inc
forum.inc
Rom 6 Jan 2005
- Bug Fix: fix crashing bug when running the old gui and new gui
side by side
- Bug Fix: Fix sync bug in new gui related to how the number of
rows were being calculated
- Bug Fix: Remove the explict call to freeze/thaw which was causing
the messages tab to flicker even when the data has not changed.
- Bug Fix: On Windows systems that support tooltip bubbles, don't
populate the regular tooltip field as it will appear before
the bubble request and makes the taskbar applet appear
ugly
- Bug Fix: The new gui should enforce closing down the core client
when it launches the core client, we were using the wxWidget
framework to do this, but the call to wxProcess::Exists causes
an assert on Windows if the process doesn't exist. And sometimes
crashes in a release build.
- Bug Fix: When syncing the views cache make sure there is at least
one item to syncronize, otherwise we'll reference a NULL pointer
and blow up. This fixes the crashing bug when you startup and
shutdown the core client in the background.
client/win/
wingui_mainwindow.cpp
clientgui/
BOINCGUIApp.cpp, .h
BOINCBaseView.cpp
ViewMessages.cpp
ViewProjects.cpp
ViewResources.cpp
ViewTransfers.cpp
ViewWork.cpp
clientgui/msw/
taskbarex.cpp
Rom 6 Jan 2005
- Bug Fix: On Windows 2000 machines or better use the GetLastInputInfo
API to determine if the system is idle or not instead of hooking
into each process space. This will fix the possible warnings
that key logging detection tools throw with BOINC is started up.
For older platforms we'll hook into the process space.
- Bug Fix: Detect system idle properties across the terminal services
boundry. Thanks to Eric Youngdale for the patch.
- Bug Fix: Detect the condition where the system tick count may have
looped back to zero.
client/
main.C
client/win/
hostinfo_win.cpp
win_idle_tracker.cpp, .h, .def
clientgui/
BOINCGUIApp.cpp, .h
BOINCTaskBar.cpp, .h
MainFrame.cpp, .h
Rom 7 Jan 2005
- Bug Fix: Provide better visuals during the connect and disconnected
states for the BOINC Manager
- Bug Fix: Provide written text describing the BOINC Manager state
- Bug Fix: Add new strings to language files
clientgui/
MainFrame.cpp, .h
stdwx.h
clientgui/res/
connect.xpm
disconnect.xpm
clientgui/locale/
< All PO files >
Janus 7 Jan 2005
- Bug fix: Don't show icon column in helpdesk - icons are not used here
- Bug fix: Filtering can now be turned off in helpdesk
- Ignored userlist is now unique and sorted by userid
(patches from Christian Beer - thanks!)
- More score rounding to avoid float inaccuracy
/html/user
edit_forum_preferences_action.php
/html/inc
forum_show.inc
forum.inc
David 7 Jan 2005
- drop the indices on mod_time.
(result: app_mod_time, workunit: wu_filedel)
For SETI@home they were too much of a performance hit.
They're needed only for db_purge and result_summary.php,
which will have to do a sequential scan instead
- db_dump: try several times to remove old stats directory
db/
constraints.sql
html/ops/
db_update.php
sched/
db_dump.C
sched_locality.C
David 7 Jan 2005
- User web: show "external" version of cross-project ID
(i.e. hashed with email_addr) in the My Account page.
It will now match what's in the XML dump files
html/inc
user.inc
Rom 7 Jan 2005
- Bug Fix: Fix compile error on Unix platforms for the BOINC Manager
- Bug Fix: Don't blow out of the core client when running as a service/daemon
and adding a project fails. Thanks to Sebastian Masch for tracking
down the bug.
client/
client_state.C, .h
cs_cmdline.C
main.C
clientgui/
BOINCGUIApp.cpp
David 7 Jan 2005
- fixes from Christian Beer to avoid undefined PHP vars
html/
inc/
db_ops.inc
ops/
db_action.php
db_form.ph
Bruce 7 Jan 2005
- Reinhard has done a substantial amount of work in the past
couple of weeks to fix a number of bugs and problems in the
X-windows and/or Mac graphics event loop, and with lockfile
handling problems seen on a number of Unix file systems. A
brief summary of the changes is:
lockfile: replace calls to exit() by boinc_finish() + make
boinc_finish() remove the lockfile
graphics-eventloop: some re-structuring and simplification to
make handling of glut-exits/abort-signals more robust. Eric,
if you could test this under Solaris we'd be very grateful.
api/
boinc_api.C
graphics_impl.C
x_opengl.C
diagnostics.C
filesys.C
Rom 7 Jan 2005
- Bug Fix: The screensaver doesn't really need to update every second. change
it to update once a minute.
- Bug Fix: The screensaver only needs to detect if BOINC is running once,
if it doesn't detect it display the not detected message.
client/win/
win_screensaver.cpp
David 7 Jan 2005
- off-by-1 error caused trivial validator to not work
sched/
validate_util.C
David 7 Jan 2005
- moved dir hierarchy code from lib/util.C to sched/sched_util.C
- buffer was too small by 1 byte in md5_file.C
lib/
md5_file.C
util.C,h
sched/
file_deleter.C
sched_util.C,h
David 7 Jan 2005
- Changed Makefile.am's to use libraries (libboinc.a, libsched.a)
instead of listing separate .o files
Makefile.incl
sched/
Makefile.am
wu_check.C
tools/
Makefile.am
backend_lib.C
dir_hier_move.C
dir_hier_path.C
David 7 Jan 2005
- Win compile fix
api/
boinc_api.C
David 7 Jan 2005
- add "ignorelist" field to forum_preferences
- add script for correcting team.nusers
(can drift away from correct value for some reason)
- User web mods:
- improve result field explanations
- user date_str() instead of time_str() when showing signup date
db/
schema.sql
html/
inc/
result.inc
team.inc
user.inc
util.inc
ops/
db_update.php
team_repair.php (new)
user/
explain_state.php
Bruce 8 Jan 2005
In order to coordinate better with David, I am doing a slightly
premature checkin of modifications to scheduling locality. The
basic idea is to provide a simple notification mechanism to the
project, so that if no work is currently available for a given
data file, there is an opportunity to make such work. This is
controlled by an additional tag in config.xml, of the form:
<locality_scheduling_wait_period> N </locality_scheduling_wait_period>
where N is some number of seconds. If this new tag is absent,
then the locality scheduler behaves as before.
The modification to behavior happens in send_results_for_file().
This is the function that queries the database to see if there are
unsent results available for a given (large) data file on the
host. Previously, if such results are not found the scheduler
gives up and tries sending other results. With this modification,
if N is nonzero, then if no results are found the scheduler
touches a file with the same name as the host's data file, in a
directory
PROJECT_ROOT/locality_scheduling/need_work/
The scheduler then sleeps for N seconds, and makes one additional
attempt to find suitable unsent results. The idea is that in this
interval, the project has an opportunity to make additional WU for
this file, which the transitioner can convert to unsent
results. [Note, the transaction for the first query is completed
before the sleep(N), and a new transaction is initiated
afterwards. So there is no 'sleep within a transaction'.] This
delay allows the project to make additional workunits suitable for
the host's existing data files.
In addition, if the project determines that NO further workunits
can be made for a given data file, then the project can touch a
file with the same name as the input data file, in a directory
PROJECT_ROOT/locality_scheduling/no_work_available/
If the scheduler finds this warning then it assumes that the
project can not manufacture additional WU for this data file and
skips the 'notify, sleep, query again' sequence above. Of course
it still does the initial query, so if the transitioner has made
some new results for an existing (old) WU, they will get picked
up.
This mechanism is robust in the sense that if the signals fail for
any reason, or (say) the WU are not converted into unsent results
quickly enough by the transitioner, or if they are snapped up by
some other host, then the scheduler simply proceeds as with its
current unmodified behavior and nothing goes wrong. In other
words, the signals can be ignored at any time and for any time
without adverse consequences.
TODO: further testing.
sched/
sched_locality.C
David 8 Jan 2005
Some changes related to locality scheduling:
- Factored Bruce's new code into a separate function,
make_more_work_for_file()
- Remove the 'id>X' stuff from queries.
Assuming that work is fairly homogeneous
(i.e. no results are rejected because of resource requirements)
this is not needed.
If a result has already been sent,
it won't qualify for the select anyway.
- Add a 'workunitid<>X' clause to the queries.
This is to make the process of enforcing the
one_result_per_wu_per_user rule more efficient.
If the rule is not in effect, X is zero (so always true)
- If two consecutive select queries return the same result,
break out of the loop (avoid undesired looping)
- Use a for i=1,100 loop instead of a while(1) loop
around the work-sending logic,
to avoid infinite loops just in case
sched/
sched_locality.C
David 8 Jan 2005
- Implement the <locality_scheduling_wait_period> element in config.xml
If present, this tells the scheduler how long to sleep
between requesting more work for a file
and looking for it (and giving up if it's not there)
If absent, the scheduler doesn't request more work unit generation.
sched/
sched_config.C,h
sched_locality.C
David 9 Jan 2005
- fix memory leak in get_insert_id()
db/
db_base.C
David 9 Jan 2005
- user profile fixes
- disallow thread titles consisting only of HTML tags
html/inc/
forum.inc
profile.inc
David 9 Jan 2005
- message board fixes - show thread titles using htmlspecialchars()
prevent invisible titles
html/
inc/
forum.inc
forum_show.inc
user/
forum_thread.php
Rom 9 Jan 2005 (boinc)
- Tag for 4.58 release, all platforms
boinc_core_release_4_58
David 9 Jan 2005
- fix a buffer overrun problem by using std::string
in DB_BASE::insert_batch()
db/
db_base.C,h
sched/
transitioner.C
David 10 Jan 2005
- client: fix bug where "requesting more work" messages
are generate every second when all projects are suspended
client/
client_types.h
cs_scheduler.C
David 10 Jan 2005
- locality scheduling changes:
Changed the algorithms a bit to avoid lots of DB queries
Invariant: for a given file/user pair,
results are sent in order of increasing ID
(i.e. the result sent is that with the smallest ID
among all those that CAN be sent).
This ensures that:
- the result for given WU will be sent around the same time
send_results_for_file():
1) of results for this file sent to this user,
find the one R with largest ID
2) find unsent result R2 for this file with next ID greater than R,
and (if one result per user per WU) different workunitid than
ALL previous results sent to this user.
3) if need more results, set R = R2 and go to 2)
send_new_file_work():
min_id = 0
while need more work
find unsent result R with id>min_id of least ID
min_id = R.id
(Note: this is necessary to preserve the invariant)
Changed make_more_work_for_file() to return zero for success
(BOINC convention)
db/
db_base.C,h
sched/
sched_locality.C
David 11 Jan 2005
more locality sched changes (with Bruce Allen)
- Added a notion of "working set" of files.
If a host doesn't have a file, the scheduler picks a
random entry from the working set and tries to send it
work from that file.
The project must supply a daemon program that maintains the working set
(could be the same as the work generator)
- Added config.locality_scheduling_send_timeout.
If any unsent result is older than this,
send it to the first eligible host
- If a host already has files, randomize their order
- Integrate work-generator invocation in send_results_for_file()
- If can't send a result because of no app_version, give up
lib/
error_numbers.h
sched/
sched_locality.C
Janus 12 Jan 2005
- Removed check for $user->disabled_filtering which no longer exists.
- Added output of CVS version information if available.
Someone with time on their hands should add the following line to all
the PHP and include files (right after the inital <php
(remove the star! - inserted to avoid having CVS generate the info...):
$cvs_version_tracker[]="\$I*d$"; //Generated automatically - do not edit
(bug and idea found by Bruce Allen)
html/inc
util.inc
forum_show.inc
Bruce 12 Jan 2005
more locality sched changes.
- bug fix 1, trivial, n % 0 generates FPE if no files.
- bug fix 2, subtle. In the deterministic hunt to find
the next unsent result, the comparison of the result name must be
done with the lexically maximum result name constructed from the
given filename. Eg, if one needs name>FILE_ZZZZ...Z where
Z=0xff (is this charset independent??) and the total name length
is 255 (or is it 254??).
- David, I'll clean out some of the debugging scaffolding in a few
more days, when I get some confidence that there are not other
problems to fix! Please read embedded comments/questions in code.
- Some more comemnts added later. We do sometimes get non-zero
return values from possibly_send_result(). I think that this is
because you've failed to match up the start_transaction and
commit_transaction pairs. Be careful: sleeps AND modifies the
DB. Right now I am too tired to fix this without making it worse.
Your turn.
- A few other comments. Currently, I am 'advertising' filenames
returned by get_working_set_filename() for TWO types of files:
(1) those for which I can make more work
(2) those for which I can NOT make more work, but where you have
not flagged with flag_for_possible_removal().
I am not sure that I understand the intent of
flag_for_possible_removal(). You surely are not guaranteeing
that no results will ever appear in the future for these files
(outstanding results might fail). So what is my WU generator
supposed to do with flag_for_possible_removal? Is (2) above
correct?
- Finally, I have not yet seen a SINGLE instance of a
flag_for_possible_removal. Is the logic right?
sched/
sched_locality.C
David 12 Jan 2005
- xml_escape() and xml_unescape(): handle non-ASCII characters
lib/
parse.C
Rom 12 Jan 2005
- Bug Fix: Fix the bug where the screensaver wasn't saving the
configuration settings to the registry without the prep
work done by the previous installer.
client/win/
win_screensaver.cpp, .h
Bruce 13 Jan 2005
- Various efforts to fix CVS 'loginfo' file so that we get auto
mailings of changes to the top level directory. The main problem
is that one can't use "^boinc[ ]" or "^boinc\ " or
"^boinc\#20" as a regex to try and match the name of the top
level directory with no trailing slash. What a mess!
- More work on sched_locality.C. Note that the 'wacky' warning is
actually not impossible. Consider the following scenario: WU A
has result 1 and WU B has result 2. These are both sent to a
host. Some time later, result 1 fails and the transitioner
creates a new result, result 3 for WU A. Then the host requests
a new result. The maximum result already sent to the host is 2.
The next unsent result (sorted by ID) is #3. But since it is
for WU A, and since the host has already gotten a result for WU
A, it's infeasible. So I think this is only wacky if
!one_wu_per_result_per_host.
- David, I simplified the inner part of send_results_for_file()
somewhat. I can't see the need/use for the bool bool
in_working_set argument. If I have really screwed the pooch
please revert.
sched/
sched_locality.C
David 13 Jan 2005
- Core client: when get a workunit from scheduler,
clear errors (e.g. download failures)
for all files associated with this WU
(this is down in a new function WORKUNIT::clear_errors())
Without this, if a file common to multiple WUs had a download
failure, all WUs would fail until user resets project!!
- Giant bug in HTTP file transfer:
If a network connection failed in the middle,
it wasn't being distinguished from a completed download;
the file size would be checked at the PERS_FILE_XFER level,
and it would get a "bad file size" fatal error.
Fix: when get EOF from a network connection reading HTTP reply,
compare the bytes transferred with the content-length
from HTTP header.
If not equal, classify it as an error.
This will cause higher levels to view it as a transient error,
and restart the download later.
- PERS_FILE_XFER::poll():
the check for actual file size == desired file size
was inexplicably being done even for file uploads,
and even in cases where another error had occurred.
Do it only for download success cases.
client/
client_types.C,h
cs_scheduler.C
http.C
pers_file_xfer.C
Rom 13 Jan 2005 (boinc)
- Tag for 4.59 release, all platforms
boinc_core_release_4_59
David 13 Jan 2005
- user web: in thread page, show numbered lists of pages correctly
Also get rid of goofy big/bold stuff
- page_tail(): use the current year (not necessarily 2004) for copyright
- add warning about CPU overheating to Rules/Policies page
- use tables for result state explanations
html/
inc/
forum_show.inc
util.inc
user/
explain_state.php
info.php
David 13 Jan 2005
- add "hidden" fields to thread and post tables,
in preparation for message board moderation features
NOTE TO PROJECTS: apply this update if you're using current PHP.
It doesn't hurt to apply it anyway.
db/
schema.sql
html/ops/
db_update.php
Rom 13 Jan 2005
- Checkin the changes necessary to hide threads in the forum code.
By: Rob Ogilvie
- Hidden threads should not be visible through a direct call
html/inc/
forum.inc
html/user/
forum_thread.php
David 13 Jan 2005
- modified DB_BASE::enumerate() so that it returns:
- zero if returning a row
- ERR_DB_NOT_FOUND if reached end of result set
- other values indicated DB errors (e.g. lost connection to server)
Strange as it may seem, until now we didn't have a way of
knowing that enumerate() had errored out.
As a result, e.g., db_dump would happily generate
a zero-entry user or host file
if the DB happened to disconnect during the select.
- changed db_dump.C to check error returns from enumerate(),
and exit() on DB failure
- changed xml_escape() to completely remove
control characters except for 9, 10, 13
db/
db_base.C
lib/
error_numbers.h
parse.C
sched/
db_dump.C
David 14 Jan 2005
- Fix problems with backslashes in forum titles;
also kludge display so old titles with extraneous backslashes
are shown without them
html/inc/
forum.inc
David 14 Jan 2005
- fix to fix in msg board code
html/inc/
forum_show.inc
Rom 14 Jan 2005
- Bug Fix: The screensaver was passing the raw blank time (number of
minutes) instead of when in unix time format the screen should go
blank (number of seconds).
client/win/
win_screensaver.cpp
Karl 2005-01-16
- Added support for specifying db_{user,passwd} when creating projects
tools/
make_project
py/Boinc/
setup_project.py
Bruce 17 Jan 2005
- Additional work on locality scheduling.
(a) make DB queries more efficient using name>'FILE__' and
name<'FILE__~' rather than name like 'FILE__%'
(b) Set 'no remaining work for this file' flag correctly
by making a DB scan if needed.
One can show that this is the 'cheapest'
reliable place to put this scan.
(c) Modify deterministic algorithm for finding unsent results
so that instead of starting with FILE="" and scanning forward
over all files, it starts at a random place in file space,
scans cyclicly to the end, and then from "" to the start point.
(d) Satisfy work request if possible.
Don't terminate sending work until none left that is feasible,
or request satisfed.
(e) If a new file is needed, first pick file associated with unsent
results which are more than 2 hours old.
Note: need to make this a user-configurable option,
and add some random +- slack.
For the record, here is the current locality scheduler logic.
I will update the docs once this is a bit better tested and
stable.
(1) If there is an (one) unsent result which is older than
(1) config.locality_scheduling_send_timeout (7 days) and is
(1) feasible for the host, sent it.
(2) If we did send a result in the previous step, then send any
(2) additional results that are feasible for the same input file.
(3) If additional results are needed, step through input files on
(3) the host. For each, if there are results that are feasible for
(3) the host, send them. If there are no results that are feasible
(3) for the host, delete the input file from the host.
(4) If additional results are needed, and there is (one) unsent
(4) result which is older than 2 hours and is feasible for the
(4) host, send it.
(5) If we did send a result in the previous step, then send any
(5) additional results that are feasible for the same input file.
(6) If additional results are needed, select an input file name at
(6) random from the current input file working set advertised by
(6) the WU generator. If there are results for this input file
(6) that are feasible for this host, send them.
(7) If additional results are needed, carry out an expensive,
(7) deterministic search for ANY results that are feasible for the
(7) host. This search starts from a random filename advertised by
(7) the WU generator, but continues cyclicly to cover ALL results
(7) for ALL files. If a feasible result is found, send it. Then
(7) send any additional results that use the same input file. If
(7) there are no feasible results for the host, we are finished:
(7) exit.
(8) If addtional results are needed, return to step 4 above.
sched/
sched_locality.C
David 17 Jan 2005
- don't start apps until after benchmark
(may work around CPDN bug)
client/
client_state.C
Rom 17 Jan 2005
- Bug Fix: Remove the ability for the CC to exit when a project fails to
attach. This now keeps the CC from exiting for te Single and Shared
install types as well.
- Bug Fix: Remove the readme options from setup.
- Bug Fix: Enable the checkboxes in setup by default.
client/
main.C
win_build/installerv2/
BOINC.ism
win_build/installerv2/redist/0409
readme.txt
win_build/installerv2/redist/windows
BOINC.vbs
Janus 18 Jan 2005
- Initial test-version of the moderation system
Please test the current features (deleting posts, moving posts) and see
if this is how it should be done.
The rest is mostly copy-paste work as the same design can be used for
threads as well.
This update includes:
- Deleting posts
- Moving posts
- Sending email notice to post author
- Users cannot edit their posts more than 1 hour after creating them
- Deleted posts are only shown to moderators
- Inversion of $filter_on in getThreads and getPosts (!)
Now the bit means "show deleted posts/threads" and defaults to off
- New special user bitfield
Due to the new special user bitfield you must redefine who is who in your
project. Currently this is done manually (idea for the ops page, anyone?)
This is how the bitfield is used:
1st bit = Moderator
2nd bit = Project Admin
3rd bit = Project dev
4th bit = Project tester
5th bit = Volunteer dev
6th bit = Volunteer tester
7th bit = Project Scientist
So if I'm a project admin and want to be moderator as well, I would
do the following SQL query:
Update forum_preferences set special_user = '1100000' where userid=42
html/
user/
forum_edit.php
+forum_moderate_post.php (new)
+forum_moderate_post_action.php (new)
inc/
forum.inc
email.inc
+forum_moderators.inc (new)
ops/
update_db.php
David 18 Jan 2005
- user web: general code cleanup,
and increased use of stylesheets for formatting
rather than hard-wired HTML
- use tables for profiles
- change way profiles are rated
html/
inc/
forum.inc
prefs.inc
profile.inc
util.inc
user/
forum_edit.php
forum_help_desk.php
forum_sample_index.php
forum_thread.php
profile_rate.php (new)
profile_search_action.php
view_profile.php
white.css
sched/
db_dump.C
David 18 Jan 2005
- fix "added clauses" feature of admin web DB interface
html/inc/
db_ops.inc
David 18 Jan 2005
- added --cron-tasks option to start
(does periodic tasks but doesn't start daemons)
From David Hammer.
This should arguably be used instead of --cron
because if daemons are crashing you'll find out about it sooner.
sched/
start
David 18 Jan 2005
- added <min_core_client_version> element to SCHED_CONFIG.
Lets the scheduler turn away clients below a certain version
without doing a lot of work
(especially important for locality scheduling)
doc/
configuration.php
sched/
sched_config.C,h
handle_request.C
David 18 Jan 2005
- initial checkin of RPCs for account management systems: see
http://boinc.berkeley.edu/acct_mgt.php
NOTE: to use this feature, you'll need to update your DB
using update_1_19_2005()
html/
ops/
db_update.php
user/
am_confirm.php
am_create.php
am_query.php
Bruce 19 Jan 2005
- Patches from Reinhard Prix to fix several problems.
(1) apps being suspended would call boinc_finish(nonzero) and
core client would treat this as app failure. Introduce
a new function boinc_exit() and call that instead.
(2) improvements to GUI build with wxWidgets
(3) improved X event handling loop now ensures that X window
is taken away when window killed.
configure.ac
clientgui/
Makefile.am
api/
boinc_api.h
boinc_api.C
x_opengl.C
lib/
filesys.C
David 19 Jan 2005
- don't show rating buttons when user looks at their own profile
html/inc/
profile.inc
uotd.inc
David 19 Jan 2005
- Change the logic in CLIENT_STATE::do_something to
avoid unsuspending activities before starting them
- change CLIENT_STATE::check_suspend_activities() from int to void
Checked these changes into boinc_public also
client/
client_state.C,h
cs_prefs.C
David 19 Jan 2005
- db_dump: deleting the old stats dir with /bin/rm -rf
fails sometimes ("dir is not empty").
If this happens, try renaming it.
sched/
db_dump.C
Bruce 20 Jan 2005
- From Reinhard Prix. At Rom's request, this builds the
Linux client and clientgui using static rather than
dynamic linking to the gcc C++ lib. Note that modifying
this to do the same whenever gcc is used (not just under
Linux) might be desirable.
configure.ac
client/
Makefile.am
clientgui/
Makefile.am
David 20 Jan 2005
- Added cross-project IDs for hosts.
This lets statistics sites show work per host, summed over projects.
Implementation:
Hosts generate their own "internal" CPIDs,
using an MD5 of time/domain/IP/disk_free.
This should be unique across that user's hosts.
It's stored in the HOST_INFO structure and sent to server.
The server hashes the internal CPID with the user's email address
and stores the resulting "external" CPID in the host table.
It is included by db_dump in <host> elements.
PROJECT NOTE: if you use this server code you will need
to apply update_1_20_2005() from html/ops/db_update.php to existing DBs
client/
client_stats.h
hostinfo_unix.C
win/
hostinfo_win.cpp
db/
boinc_db.C,h
schema.sql
html/ops/
db_update.php
lib/
hostinfo.C,h
sched/
db_dump.C
handle_request.C
server_types.C
start
David 20 Jan 2005
- scheduler compile fix for Solaris
sched/
sched_locality.C