There is a serious problem with the way LTD is accumulated for projects which are starved of work on the client and have no work available on the server.
A project starts accumulating LTD as soon as its communication deferral timeout expires and continues to do so until you send a scheduler request asking for more work and the request times out or receives a no work scheduler reply. There are 2 conditions under which the effect is amplified:
- the deferral timeout expires while networking is disabled. This causes the project to accumulate LTD until networking is re-enabled and the request/reply sequence is performed.
- the work load on other projects means your scheduler request doesn't request more work. In this case LTD will continue to accumulate for all of the next deferral period.
This can result in work starved projects accumulating a massive positive LTD. I was up to 1.5 million LTD on APS 5 months ago when I first spotted this (realised the wider significance from this thread on the BOINC message board). All other projects (MCDN, CPDN, CPDN beta) had negative LTD and wouldn't request more work until their LTD had increased to -3600.
I can easily envisage this leading to a situation where the client work queue for all projects with work available on the server has been run down and they all have LTD less than -3600. When this happens no work can be downloaded for those projects until the other project has worked off enough of its LTD.
If a project is work starved on the client it should stop accumulating LTD at the expense of projects which do until the server gives it some work.