(1) Put core client version number into wreq BEFORE searching for
an app version. Problem is that reply.wreq.core_client_version was only being set in
send_work(), which was too late for the resend_lost_work() part
of the code. You might want to move all the initialization of reply.wreq
out of send_work(). The core client version is needed to see if the
app is compatible with it when calling get_app_version().
(2) In retransmitting lost work, do NOT set the deadline to new
values. Else the result will never time out! But DO reset
the sent_time, to indicate that result was resent.
transitioner:
In the transitioner, make the next WU transition time be the min
of deadlines of the in progress results, NOT the min of the
sent_time+delay bound. Unless a project wants to do dynamic
adjustment of delay bounds for in progress results this should be OK.
CPDN people: I don't think this does any harm for trickles but
you might want to give it a quick look to be 100% sure.
svn path=/trunk/boinc/; revision=6870
than 24 hours away, to prevent thrashing. But this delayed
reissuing of new results. For example if two results were
issued a hours 17 and 18, and both timed out (no reply). At
time 17+deadline the first would time out and a new result
would be issued. But then instead of setting the transition
time to 18+deadline it would be set to 18+deadline+1 day.
To prevent thrashing I have fixed this so that if a transition
time is in the past, I advance it by TWICE the amount it is late,
but never less than 1 minute or more than 1 day.
- Ops pages: show unsent/in-progress results in purple. For
unsent results show create time rather than deadline.
svn path=/trunk/boinc/; revision=6637
E@H specific is now included (but protected by
#ifdef EINSTEIN_AT_HOME
to make it simpler for me to maintain consistency with BOINC cvs.
- Added project-specific unacceptable_os() function for rejecting hosts.
- Transitioner and scheduler now initalize host.max_results_day correctly
in database under all circumstances.
- Browser requests are now correctly identifed (REQUEST_METHO=="GET") and
properly redirected. This was broken. David, please see comment near
one of the probable_user_browser=true in handle_request.C. I think
something is wrong here (or I am missing the point!).
- More info about requests is logged
- If the scheduler hangs (incoming request incomplete) it will normally be
killed by Apache after a timeout. But this happens silently. So I now
install a signal handler and catch this SIGTERM. In this case an
error message is logged and all open files are flushed before exit(1)ing.
- If IO is passed through files, check that request length and content length
agree and log a message if they do NOT.
- active_frac not correctly reported by 4.19 and earlier core clients.
Adjust for this in estimating wallclock execution times.
- Added a small block into validator code to attach a debugger.
svn path=/trunk/boinc/; revision=5688
of gcc to try and force them to not complain with -Wall but to always
include this, I decided to take a simpler approach. All these strings
now have global linkage. To prevent namespace conflicts they all
have different names. For the record, the variable extension is a hash made of the first ten characters of the md5sum of the file path, eg:
md5hash=`boinc/api/x_opengl.C | md5sum | cut -c 1-10`
svn path=/trunk/boinc/; revision=4979
- Added logging of remaining result.outcome==OVER states to logging
output of transitioner.
- Fixed nasty bug in ops pages where top two WU error mask bits were
not being shown in WU summary/detail pages.
svn path=/trunk/boinc/; revision=4713
the top of all .C files. This means that 'string' or 'ident'
run on an executable will tell you the exact file versions used
in building it, since CVS replaces $Id$ with a complete version ID
string. Declaration is volatile so that the compiler won't remove
it even under agressive optimizations.
svn path=/trunk/boinc/; revision=4610